Internet Protocol Version 6 (IPv6) Addressing Architecture
obsoleted by
- rfc-4291 — IP Version 6 Addressing Architecture
obsoletes
- rfc-2373 — IP Version 6 Addressing Architecture
Extracted elements (27)
Global anycast sets with no topological locality (null prefix P) require a separate routing entry throughout the entire internet, presenting a severe scaling limit. Therefore, support for global anycast sets is expected to be unavailable or very restricted.
The 'u' bit is inverted when forming Modified EUI-64 interface identifiers so that administrators can hand-configure non-global identifiers simply as 1, 2, 3, etc. rather than the unwieldy form 0200:0:0:1, 0200:0:0:2, etc. that would result without inversion.
Addresses that start with binary 000 (including IPv4-compatible, IPv4-mapped, and NSAP addresses) are not subject to the 64-bit Modified EUI-64 interface ID requirement and have no structural constraint on the size or format of the interface ID field.
A host is required to recognize: its link-local address per interface, all configured unicast and anycast addresses, the loopback address, All-Nodes multicast addresses, Solicited-Node multicast addresses for each unicast/anycast address, and all other joined multicast group addresses. Routers additionally recognize Subnet-Router anycast, other configured anycast, and All-Routers multicast addresses.
A node is required to compute and join (on the appropriate interface) the associated Solicited-Node multicast address for every unicast and anycast address it is assigned.
All interfaces are required to have at least one link-local unicast address. Implementations must treat all addresses not matching the listed special prefixes (unspecified, loopback, multicast, link-local, site-local) as global unicast addresses.
All routers are required to support the Subnet-Router anycast addresses for the 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. The same interface identifier may be used on multiple interfaces of a single node provided they attach to different subnets.
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. Nodes must not originate packets to multicast scope 0; if received, such packets must be silently dropped.
Routers must not forward any packets with link-local source or destination addresses to other links. Routers must not forward any packets with site-local source or destination addresses outside of the site.
The loopback address (::1) must not be used as a source address in packets sent outside a single node, must never be sent outside a single node, and must never be forwarded by a router. A packet received with destination address of loopback must be dropped.
The unspecified address (::) must never be assigned to any node and must not be used as a destination address or in Routing Headers. An IPv6 router must never forward a packet with a source address of unspecified.
When a unicast address is assigned to more than one interface (making it anycast), the nodes to which it is assigned must be explicitly configured to know it is an anycast address. An anycast address must not be used as a source address of an IPv6 packet, and must not be assigned to an IPv6 host—only to routers.
Address type is identified by high-order bits: unspecified is ::/128 (all zeros), loopback is ::1/128, multicast starts with FF00::/8, link-local unicast is FE80::/10, site-local unicast is FEC0::/10, and all other addresses are treated as global unicast. Anycast addresses are syntactically indistinguishable from unicast.
IPv6 addresses are 128-bit identifiers for interfaces and sets of interfaces. There are three address types: unicast (single interface), anycast (nearest of a set), and multicast (all of a set). There are no broadcast addresses in IPv6; their function is superseded by multicast.
Modified EUI-64 format interface identifiers are formed by inverting the 'u' (universal/local) bit of an IEEE EUI-64 identifier. A 'u' bit of 1 indicates global scope; 0 indicates local scope. For IEEE 802 48-bit MACs, two octets 0xFF 0xFE are inserted between the company_id and vendor extension before inverting 'u'.
Pre-defined multicast addresses include: All Nodes (FF01::1, FF02::1), All Routers (FF01::2, FF02::2, FF05::2), and Solicited-Node addresses (FF02::1:FFxx:xxxx) formed by appending the low-order 24 bits of a unicast or anycast address to the prefix FF02::1:FF00::/104.
The 4-bit multicast scope field limits group scope: 1=interface-local, 2=link-local, 4=admin-local (must be administratively configured), 5=site-local, 8=organization-local, E=global; values 0 and F are reserved, and 3/6/7/9-D are unassigned.
The IANA IPv6 address space is partitioned by binary prefix: Global Unicast is allocated from prefix 001 (1/8 of space); Link-Local Unicast is 1111111010 (1/1024); Site-Local Unicast is 1111111011 (1/1024); Multicast is 11111111 (1/256). IANA is directed to limit unicast allocations to the 001 prefix range; the remaining ~85% of global unicast space is reserved.
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).
Global unicast addresses have the format: n-bit global routing prefix | m-bit subnet ID | (128-n-m)-bit interface ID. All global unicast addresses other than those starting with binary 000 have a 64-bit interface ID field (n+m=64) in Modified EUI-64 format.
IPv4-compatible IPv6 addresses embed a global IPv4 address in the low-order 32 bits, with 80 zero bits and 16 zero bits preceding it (format: 0000...0000 | 0000 | IPv4-address). IPv4-mapped IPv6 addresses have the same layout but use 0xFFFF as the 16-bit field, representing IPv4 node addresses as IPv6.
IPv6 address prefixes are written in CIDR notation as 'ipv6-address/prefix-length', where prefix-length is the number of leftmost contiguous bits comprising the prefix. Trailing zeros within a 16-bit chunk of the address portion left of '/' must not be dropped.
Link-local unicast addresses have a 10-bit prefix of 1111111010 (FE80::/10), 54 zero bits, and a 64-bit interface ID. Site-local unicast addresses have a 10-bit prefix of 1111111011 (FEC0::/10), a 54-bit subnet ID, and a 64-bit interface ID.
Multicast addresses are 128 bits with the format: 8-bit prefix 0xFF | 4-bit flags (high 3 reserved=0, T=0 permanent/T=1 transient) | 4-bit scope | 112-bit group ID. The leading 0xFF byte identifies the address as multicast.
The preferred text representation of an IPv6 address is x:x:x:x:x:x:x:x, where each x is a hexadecimal value of a 16-bit piece. Leading zeros in each field may be omitted, but at least one numeral must appear per field. The '::' notation may appear once to compress one or more groups of 16 zero bits.
The Subnet-Router anycast address consists of the n-bit subnet prefix followed by 128-n zero bits (interface identifier set to all zeros). It is syntactically identical to a unicast address for an interface on the link with interface identifier zero.