Note: Kindly refer to Page 364 for the explanation of address space usage calculation.
IPv6 Unique-Local Unicast Address Format
The 40-bit Global ID is chosen in pseudorandom manner and hope that the addresses will be unique throughout the universe. Take note that pseudorandom numbers appear random but they are deterministic! The 16-bit Subnet field and 64-bit Interface ID work just like with global unicast addresses – identifying different subnets and hosts.
Note: The IPv6 Site-Local Unicast Address which defined in original IPv6 RFCs has been deprecated and replaced with IPv6 Unique-Local Unicast Address as defined in RFC 4193 – Unique Local IPv6 Unicast Addresses!
Reference: RFC 3879 – Deprecating Site-Local Addresses.
The IPv6 Link-Local Unicast Address is an IPv6 address that are automatically configured on an IPv6 interface with a prefix of FE80::/10 (1111111010) and the Interface ID in the EUI-64 format. Its scope is confined to a single link and hence is not routable off the link. Link-local addresses are often being used in the neighbor discovery and stateless autoconfiguration processes that communicate only on a single local link; this allow devices that reside on the same local link to create IPv6 addresses which allow them to communicate among each other without the need of a router, a global routing prefix, or a site-local address. The IPv6 Link-Local Unicast address range uses 1/1024 (210) of the total IPv6 address space.
Note: All IPv6 addresses begin with FE80, FE90, FEA0, and FEB0 are IPv6 link-local addresses.
Kindly refer to the IPv6 Autoconfiguration section below for more information.
The IPv4-Compatible IPv6 Address is used for IPv4-IPv6 coexistence and transition by tunneling IPv6 packets in IPv4 networks. It is a type of IPv6 unicast address that embeds an IPv4 address in the last 32 bits with 0s in the first 96 bits of an IPv6 address. The format of the address is 0:0:0:0:0:0:A.B.C.D/96 or ::A.B.C.D/96, with A.B.C.D as the IPv4 address in hexadecimal. Why /96? Because 32 out of 128 bits IPv6 addressing space are used to represent IPv4 nodes. Therefore a /96 prefix has enough address space to represent the entire IPv4 Internet. IPv4-compatible IPv6 addresses are assigned to dual-stack nodes that support both IPv4 and IPv6 protocol stacks, and are being used when implementing automatic tunnels. A dual-stack node configured with an IPv4-compatible address use the complete address as its IPv6 address, and use the embedded IPv4 address as its IPv4 address.
Ex: 172.16.0.1 in IPv4 = 0:0:0:0:0:0:172.16.0.1/96 = ::172.16.0.1/96 = ::AC10:1/96 in IPv6.
6to4 tunneling using embedded IPv4 addresses called unicast 6to4 addresses (2002::/16) in which the IPv4 address is encoded in hexadecimal instead of dotted-decimal.
Ex: 172.16.0.1 in hexadecimal is AC10:0001. A 6to4 prefix with 172.16.0.1 embedded would be 2002:AC10:1::/48.
Note: The format of unicast 6to4 address is 2002:AABB:CCDD::/48, where AABB:CCDD is the colon-hexadecimal representation of A.B.C.D, an IPv4 address in dotted-decimal format.
The IPv6 All-zeroes Address (::/0) is used as the default address when configuration default routes. Its prefix length is 0.
The IPv6 Unspecified Address (::/128) is another all-zeroes IPv6 address used in the neighbor discovery process; when a node does not have an assigned unicast address and request an address via DHCP upon system startup; or when sending a duplicate address detection packet. The unspecified address is differentiated from a default address by its prefix length.
The IPv6 Loopback Address (::1/128) is used to identify the local interface of the IP stack. It cannot be assigned to a physical interface. It can be used for basic IP stack troubleshooting.
Both the IPv6 unspecified and loopback addresses cannot be assigned to physical interfaces.