How to configure IPv6 on FreeBSD host and jail
As Internet grows so does the need for more addresses. IPv4 with 32 bit addressing is meant to be replaced by IPv6 with 128 bit addressing. The address space is not the only thing that changed and some of the naming in IPv4 is not used in IPv6, so it can be somewhat puzzling how the new protocol works.
For example, what we often refer as "private range" in IPv4 is called "unique local address" in IPv6. That means that 192.168.0.0/24, 172.16.0.0/16 and 10.0.0.0/8 subnets in IPv4 become "fd12:aaaa:bbbb:cccc" prefix in IPv6. Or in other words, private addresses are the ones starting with "fd". If address starts with "fe80" it means it is "link local", which is in some regards similar to MAC address. From IPv4 terminology there are also loopback and multicast addresses, too, and now deprecated "site local" replaced by unique local or ULA. Everything else is global unicast address in IPv6 world. In IPv4 we got used to talking about networks and subnets, where IPv6 term is prefix. Both use CIDR notation to specify network/prefix like 192.168.0.0/24 or fd12:aaaa:bbbb:cccc::/64.
There is something weird in IPv6 addresses from IPv4 perspective and that is seeing :: which means that everything between two columns are zeros, so just don't write them to save us from writing otherwise very long address.
fd12:aaaa:bbbb:cccc::1 is fd12:aaaa:bbbb:cccc:0000:0000:0000:0001
Addresses sometimes have suffix like %igb0. It is used for routing telling your operating system to find the address using igb0 as physical interface connected to it (via switch, for example).
For practical examples check out IPv6 on FreeBSD host and IPv6 on FreeBSD container where host and container already have IPv4 and are extended to support IPv6.
Polyglot
3 年Thanks for the sharing knowledge with rest of us. Looking forward to read more great articles from you.