Files

93 lines
3.4 KiB
Markdown

# `add_v6_net` Command
## Name
`add_v6_net`
## Synopsis
```
add_v6_net ${card} ${vlan} ${group} [{no_ula|isp=abc|no_isp}...] [<IPv6 /64 prefix>]...
```
## Description
Adds an internal network segment with the specified vlan on the specified
card. The created vlan-adaptor is put into the specified group. It is setup
for only IPv6.
If `${vlan}` is 0, then no tagged VLAN interfaces will be created; however,
the subnet address computations will still be performed as-if the vlan
were created. This means that `xy0` will use `00` for its subnet
computations in IPv6. If you don't intend to use
VLANs for subnets, just use VLAN ID 0 when declaring networks.
The IPv6 network will make `$(( ${vlan}/10 + ${vlan}%10 ))` into hex digits
to be appended to the ISP's IPv6 prefix. This makes it compatible with the
most common case of `/56` for most ISPs. If `no_ula` is specified in the
optional arguments, then a ULA for this network segment will not be created.
Otherwise, the `${rc_router_network_name}` variable will be hashed and an
ISP-like prefix of `/48` will be created to which the SLA for the specified
network will be appended. The `${rc_router_ula_prefix_size}` can be set to
`56` to specify a ULA prefix length of 56. (No other lengths are supported
at this time.)
The `isp=...` flag can be used to assign the specified subnet to be part
of the `IA_PD` list for the specified ISP. The `no_isp` flag can be used to
skip provisioning the specified network with any ISP's DHCPv6 `IA_PD` request.
Any desired explicit `/64` static prefixes can be configured on this network
segment, after all other options. The router will provision itself as `...::1`
on those prefixes.
Internally, this will call [`add_vlan`](add_vlan.md), passing it `${card}` and
`${vlan}`.
## Subnet Calculation
(It is strongly recommended that the 10s digit and 1000s digit of the VLAN ID be
kept as `0`, as those digits are reserved for future improvements. While this
limits the system to 100 vlans, it provides 1:1 visual alignment between
IPv6 and VLAN ID. Each can be visually compared to the other.)
|VLAN|IPv6 suffix (hex)|Example IPv6 |
|---:|----------------:|----------------------:|
| 0| 0 |2001:db8:abcd:ef00::/64|
| 7| 7 |2001:db8:abcd:ef07::/64|
| 101| 11 |2001:db8:abcd:ef11::/64|
| 205| 25 |2001:db8:abcd:ef25::/64|
| 900| 90 |2001:db8:abcd:ef90::/64|
## Options
- `no_ula` - Do not create a Unique Local Address for this network.
- `isp=${NAME}` - Attach this network to a specified ISP's configuration
- `no_isp` - This network should not be associated with any ISP (declines to
add network to DHCPv6 PD, among other things).
## Examples
#### Basic home LAN
`add_v6_net abc2 100 main`
#### Guest network with no ULA
`add_v6_net xy2 102 guest no_ula`
#### IoT network with no ULA and no ISP prefix delegation
`add_v6_net xy2 103 iot no_ula no_isp`
#### Management network on a different ISP PD
`add_v6_net xy2 402 mgmt isp=fios_1`
#### Servers network with no ULA and no ISP prefix delegation and a dedicated static prefix
`add_v6_net xy2 402 hosting no_ula no_isp 2001:db8:1ab:42::`
(This form is useful if you have your own `/48` or similar for your self-hosted
services, and that prefix gets routed to you over tunnels.)
## See Also
- [`add_net`](add_net.md)
- [`add_v4_net`](add_v4_net.md)
- [`add_vlan`](add_vlan.md)