IPv6 addresses have 128 bits, and notated as hexadecimals in 8 colon seperated groups. In each group leading zero’s can be skipped and once in an address a sequence of groups only containing zero’s can be replaced by a double colon (::).
2001:4b98:0041:0000:0000:bc7c:0124 => 2001:4b98:41::bc7c:124
2001:0000:0000:0041:0000:0000:0124 => 2001::41:0:0:0124 or 2001:0:0:41::124
IPv4 addresses can be written in IPv6 format by using only the last 2 groups, and there the decimal notation may be used.
10:0.0.1 => ::FF:A00:1 or ::FF:10.0.0.1
Subnetting
IPv6 subnets are always 64 bits wide, like 2001:1:2:3::/64
The idea is to give every IPv6 user a 48 bits prefix, like 2001:1:2::/48
This leaves 16 bits for user subnetting, this is 65536 subnets to play with.
Address Assignment
The IPv6 address assignment is handled by IANA. Most important prefixes are:
2000::/3 | Global Unicast | Global scope |
FC00::/7 | Unique Local Unicast | Local Unicast. For intranets, not routed, like IPv4 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16 |
FE80::/10 | Link Local Unicast | Link Identification, addresses often contain the MAC address. MAC 00:16:3e:31:c4:a0 => fe80::216:3eff:fe31:c4a0/64 |
FF00::/8 | Multicast |
Local Unicast
Uses are advised to generate a 40 bits Global ID for their intranets. It is advised to calculate the Global Id using a specified procedure to maximize the probability of an unique address.
Local Unicast Address | ||||
---|---|---|---|---|
Prefix | L | Global ID | Subnet ID | Interface ID |
7 bits FC00::/7 |
1 bit Locally assigned |
40 bits Randomly generated |
16 bits Local subnet |
64 bits From MAC address |
1111110 | 1 |
The Interface ID is in the so-called ‘Modified EUI-64 Format’. How to go from a MAC address to Modified EUI-64 format is described in appendix A of RFC 4291.The Routing Advertising Daemon radvd provides ‘Stateless Autoconfiguration’ e.g. by assigning IPv6 addresses and routing information to nodes on the LAN.