IP Version 6 Addressing Architecture
obsoletes
- rfc-3513 — Internet Protocol Version 6 (IPv6) Addressing Architecture
updated by
- rfc-5952 — A Recommendation for IPv6 Address Text Representation
- rfc-6052 — IPv6 Addressing of IPv4/IPv6 Translators
- rfc-7136 — Significance of IPv6 Interface Identifiers
- rfc-7346 — IPv6 Multicast Address Scopes
- rfc-7371 — Updates to the IPv6 Multicast Addressing Architecture
- rfc-8064 — Recommendation on Stable IPv6 Interface Identifiers
Extracted elements (31)
IPv6 over Ethernet inserts 0xFF and 0xFE bytes (not 0xFF/0xFF as literally defined for MAC-48 to EUI-64 conversion) due to a historical misunderstanding about IEEE MAC-48 vs. EUI-48 identifiers; the incorrect value is intentionally retained because IEEE EUI-48 and MAC-48 are syntactically equivalent and it causes no practical problems while preserving backward compatibility.
The 'u' bit is inverted when forming an interface identifier so that manually configured non-global identifiers take the simple form 0:0:0:1, 0:0:0:2, etc., rather than the less convenient 0200:0:0:1, 0200:0:0:2 that would result without inversion.
Site-Local addresses (FEC0::/10) are deprecated per RFC 3879; new implementations must treat this prefix as Global Unicast, while existing deployments may continue to use it.
The IPv4-Compatible IPv6 address (::d.d.d.d with 80+16 leading zero bits) is deprecated because current IPv6 transition mechanisms no longer use it; new or updated implementations are not required to support this address type.
A node is required to compute and join the associated Solicited-Node multicast address on the appropriate interface for every unicast and anycast address configured on the node's interfaces.
A router is required to recognize all addresses a host recognizes, plus the Subnet-Router anycast addresses for all configured interfaces, all other configured anycast addresses, and All-Routers multicast addresses.
All interfaces are required to have at least one Link-Local unicast address. A host must recognize its Link-Local addresses, configured unicast/anycast addresses, the loopback address, All-Nodes multicast addresses, Solicited-Node multicast addresses, and all other joined multicast groups.
All routers are required to support the Subnet-Router anycast addresses for all subnets to which they have interfaces.
For all unicast addresses except those starting with binary 000, Interface IDs are required to be 64 bits long and constructed in Modified EUI-64 format.
Multicast addresses must not be used as source addresses in IPv6 packets or appear in any Routing header. Routers must not forward multicast packets beyond the scope indicated by the scop field in the destination address.
Routers must not forward any packets with Link-Local source or destination addresses to other links.
The loopback address (::1) must not be assigned to any physical interface, must not be used as the source address in packets sent outside a single node, must never be forwarded by a router, and a packet received with a loopback destination must be dropped.
The unspecified address (::) must never be assigned to any node, must not be used as a destination address in IPv6 packets or in Routing headers, and must never be forwarded by an IPv6 router when appearing as a source address.
When a unicast address is assigned to more than one interface (turning it into an anycast address), all nodes to which the address is assigned must be explicitly configured to know it is an anycast address.
Address type is identified by high-order bits: Unspecified is ::/128, Loopback is ::1/128, Multicast is FF00::/8, Link-Local unicast is FE80::/10, and all other addresses are Global Unicast. Anycast addresses are syntactically indistinguishable from unicast.
IPv6 addresses are 128-bit identifiers assigned to interfaces, not nodes. There are three types: Unicast (single interface), Anycast (nearest of a set), and Multicast (all in a group). IPv6 eliminates broadcast; multicast supersedes that function.
Multicast scope values: 0=reserved, 1=Interface-Local, 2=Link-Local, 3=reserved, 4=Admin-Local, 5=Site-Local, 8=Organization-Local, E=Global, F=reserved. Unassigned values (6,7,9-D) are available for administrative use.
Pre-defined multicast addresses include: All Nodes (FF01::1 and FF02::1), All Routers (FF01::2, FF02::2, FF05::2), and FF00:: through FF0F:: which are reserved and must never be assigned to any multicast group.
IANA maintains the IPv6 address space registry; the 0000::/8 block is 'Reserved by IETF'. The 0000::/96 sub-block was previously the IPv4-Compatible IPv6 address prefix, now deprecated by this document and not to be reassigned.
IPv6 addressing documents do not have any direct impact on Internet infrastructure security. Authentication of IPv6 packets is defined separately in the IP Authentication Header specification (RFC 2402).
An alternative mixed IPv4/IPv6 text form x:x:x:x:x:x:d.d.d.d uses six high-order 16-bit hex groups followed by four low-order 8-bit decimal octets in standard IPv4 notation; used in transition contexts.
Global Unicast addresses have the structure: n-bit global routing prefix | m-bit subnet ID | 128-n-m-bit interface ID. For all global unicast addresses not starting with binary 000, n+m=64 and the interface ID is 64 bits in Modified EUI-64 format.
IPv6 address prefixes are written as ipv6-address/prefix-length in CIDR notation. Leading zeros within a 16-bit chunk may be dropped but trailing zeros within a chunk may not; the address left of '/' is expanded to full 128 bits before applying the prefix length.
IPv6 multicast addresses have an 8-bit all-ones prefix (0xFF), a 4-bit flags field (0|R|P|T), a 4-bit scope field, and a 112-bit group ID. The T flag distinguishes IANA-assigned permanent (T=0) from transient (T=1) addresses.
Link-Local unicast addresses use the prefix FE80::/10 (binary 1111111010 followed by 54 zero bits) and a 64-bit interface ID in the low-order bits.
Modified EUI-64 interface identifiers are formed by inverting the 'u' (universal/local) bit of an IEEE EUI-64 identifier. In the result, 'u'=1 indicates universal scope and 'u'=0 indicates local scope.
The IPv4-mapped IPv6 address encodes an IPv4 address in the low-order 32 bits, with the preceding 16 bits set to 0xFFFF and the high-order 80 bits set to zero: ::FFFF:d.d.d.d.
The '::' notation compresses one or more consecutive all-zero 16-bit groups; it may appear only once in an address and may be used to compress leading or trailing zeros.
The preferred text representation of IPv6 addresses is x:x:x:x:x:x:x:x, where each 'x' is one to four hexadecimal digits of the eight 16-bit pieces. Leading zeros within a field may be omitted but every field must have at least one numeral.
The Solicited-Node multicast address is formed by appending the low-order 24 bits of a unicast or anycast address to the prefix FF02:0:0:0:0:1:FF00::/104, yielding an address in the range FF02::1:FF00:0000 to FF02::1:FFFF:FFFF.
The Subnet-Router anycast address consists of the n-bit subnet prefix followed by 128-n zero bits; it is syntactically identical to a unicast address on that link with interface ID set to zero.