- Notation rules
- IPv6 address types
- Address scope
We now move to the next generation of IP addressing: the IPv6 protocol, originally known as IPng (IP Next Generation). Designed to overcome the structural limitations of IPv4, this protocol introduces a vastly expanded addressing architecture, as well as numerous technical optimizations.
The motivations behind the adoption of IPv6 are varied, and address critical needs for the evolution of the Internet. Firstly, IPv6's role is to support the exponential growth in the number of connected devices (an objective unattainable with IPv4's limited address space). Secondly, the protocol aims to reduce the size of routing tables, making exchanges more efficient and reducing the workload of routers in the long term.
IPv6 also seeks to simplify certain aspects of packet handling, improving datagram flow and optimizing transfer speeds between networks. From a security standpoint, the AH/ESP headers of the IPsec protocol are included in the base specification, and all IPv6 nodes must be able to support them (RFC 6434). Their use, however, remains optional: it is up to the administrator to enable them depending on the context.
Other objectives include more precise handling of service types, notably to ensure better quality for real-time applications (VoIP, videoconferencing, etc.). IPv6 is also designed to allow more flexible mobility management: a device can change access points without changing its address in a way that is visible to its peers.
Finally, IPv6 was designed to coexist with legacy protocols. Although it is not directly binary-compatible with IPv4, it remains fully interoperable with higher-layer protocols such as TCP, UDP, ICMPv6 and DNS, as well as with routing protocols such as OSPF and BGP, subject to certain adjustments. For multicast management, IPv6 uses the MLD (Multicast Listener Discovery) protocol, which is the functional equivalent of IGMP in the IPv4 environment.
Notation rules
One of the most significant changes in IPv6 is the format of the IP address itself. To address the chronic shortage of IPv4 addresses, the length of the address has been increased from 32 bits to 128 bits, so 16 bytes. In theory, this yields a possible address space of:
This ensures virtually unlimited capacity for all current and future equipment.
IPv6 addresses are written very differently from the familiar dotted decimal notation. An IPv6 address is made up of eight 16-bit groups, written in hexadecimal and separated by colons
:.For example:
1987:0c02:0000:84c2:0000:0000:cf2a:9077
To simplify notation, leading zeros in each group can be omitted. The above example then becomes:
1987:c02:0:84c2:0:0:cf2a:9077
In addition, a single continuous sequence of zero groups can be replaced with::, further shortening the address:
1987:c02:0:84c2::cf2a:9077
Warning: this rule is strict: only one sequence of consecutive zeros can be replaced by
::. If an address contains multiple zeros sequences, only the longest one is condensed. This ensures both uniqueness and readability.Important detail: the
: characterused to separate hexadecimal blocks can cause ambiguity in URLs, since : is also used to indicate a service port. To avoid confusion, IPv6 addresses in URL must be enclosed in square brackets [ ].Example of HTTP access to a specific port for the address
2002:400:2A41:378::34A2:36:http://[2002:400:2A41:378::34A2:36]:8080
When representing an IPv4 address in an IPv6 context, you can use a mixed notation in dotted decimal form, preceded by
:::::192.168.1.5
This compatibility helps ease the transition between the two protocols by allowing IPv4 blocks to be included within the IPv6 address space.
Note: To standardize how addresses are written, RFC 5952 defines a canonical format with abbreviation rules to avoid multiple representations of the same address. Following these recommendations helps reduce misinterpretation and ensures consistent network configurations.
IPv6 address types
IPv6 differs from its predecessor through a wide range of address categories, each designed to specific uses, while allowing flexible routing and network management. As with IPv4, addresses can be global, local, reserved or specific to certain transition mechanisms.
An unspecified IPv6 address is represented by
:: or, more explicitly, ::0.0.0.0. This special form is used during address acquisition, or as a default value to indicate the absence of an address.| IPv6 Address Prefix | Description |
| ::/8 | Reserved addresses |
| 2000::/3 | Unicast addresses, routable on the Internet |
| fc00::/7 | Unique local addresses (1) |
| fe80::/10 | Link-local addresses |
| ff00::/8 | Multicast addresses |
(1): On a private LAN, the
fd00::/8 prefix is preferred for assigning internal addresses that are not routable on the Internet.Reserved addresses
Certain IPv6 ranges are explicitly reserved and must not be used as global addresses. They have specific technical purposes:
::/128: unspecified address, never permanently assigned to a device, but used as a source address by a machine awaiting configuration.::1/128: the loopback address, the direct equivalent of127.0.0.1in IPv4, which allows a machine to address itself.64:ff9b::/96: Reserved for protocol translators to enable IPv4/IPv6 interconnection, as defined in RFC 6052.::ffff:0:0/96: compatibility block for representing an IPv4 address in a specific IPv6 structure, often used internally by applications.
These blocks guarantee interoperability and facilitate migration between the two protocol version.
Global unicast addresses
Global unicast addresses make up most of the publicly routable IPv6 space, representing about 1/8th of the address space. Since 1999, IANA has allocated these blocks, such as the
2001::/16 prefix, in CIDR blocks (from /23 to /12) to regional registries, which then redistribute them to providers and organizations.Some ranges have special documented uses:
2001:2::/48: Reserved for performance and interoperability testing (RFC 5180).2001:db8::/32: Reserved for documentation and examples (RFC 3849).2002::/16: Used for the 6to4 mechanism, which allows IPv6 traffic to travel across an IPv4 infrastructure (useful during the transition phase between the two protocols).
Note: a large proportion of global addresses remain unused, serving as a reserve for future Internet growth.
Unique local addresses (ULA)
Unique local addresses (
fc00::/7) are the IPv6 equivalent of IPv4 private addresses (RFC1918). They enable the creation of isolated internal networks without risking conflicts with public addressing. In practice, the effective prefix is fd00::/8, with the 8th bit set to 1 to indicate local usage. Each ULA block includes a 40-bit pseudo-random identifier, minimizing address collisions when connecting separate private networks.Link-local addresses
Link-local addresses (
fe80::/64) are used exclusively for communication within the same Layer 2 segment (same VLAN or switch). They are never routed beyond the local link. Each network Interface automatically generates a link-local address, often derived from its MAC address using the EUI-64 scheme.Special feature: the same machine can use the same link-local address on multiple interfaces, but the interface must be specified when communicating to avoid ambiguity.
Multicast addresses
In IPv6, broadcast has been replaced by multicast, a more efficient way to deliver packets to a defined group of recipients. The multicast range is prefixed with
ff00::/8. These includes addresses like ff02::1, which targets all nodes on the local link. While convenient, this address is no longer recommended for applications, as it can generate uncontrolled broadcasts.A common use of multicast is the Neighbor Discovery Protocol (NDP), which replaces ARP in IPv6. NDP uses specific multicast addresses, such as
ff02::1:ff00:0/104, to automatically discover other hosts connected to the same link.By combining these address types, IPv6 provides a complete set of options to meet the needs of global routing, local communications, IPv4/IPv6 migration, and automatic device configuration, while improving transmission efficiency.
Address scope
The scope of an IPv6 address defines the exact domain in which it is valid and unique. Understanding this concept is key to mastering packet routing and logical organization of an IPv6 network. IPv6 addresses are generally grouped into three main categories based on their scope and usage: unicast, anycast and multicast.
Unicast addresses are the most common and include several distinct subtypes.
These include the loopback (
::1) address, whose scope is limited to the host using it, and which is used to test the network stack internally without sending traffic over the physical network.
Then there are link-local addresses (link-local), whose scope is restricted to a single network segment: they are used for direct communications between devices on the same physical or logical link (e.g. a single switch or VLAN).
Finally, unique local addresses (ULA, for Unique Local Addresses) are internal to a private network. They may be routed between multiple private segments but are never visible on the Internet.Conceptually, IPv6 addresses are often represented as a binary structure where the first half (the first 64 bits) identifies the network prefix, and the second half (also 64 bits) uniquely identifies the device's interface on that network. This split makes address autoconfiguration easier through mechanisms like SLAAC (Stateless Address Autoconfiguration), which allow machines to automatically generate a stable address based on the MAC address or a pseudo-random identifier.
| Field | Prefix | L | Global ID | Subnet | Interface ID |
| Bits | 7 | 1 | 40 | 16 | 64 |
The IPv6 architecture follows the hierarchical global routing model of today's Internet. Prefix partitioning enables regional registries and network operators to manage address allocation in a decentralized way, while ensuring global uniqueness. Within this framework the same host can simultaneously hold a global unicast address for internet communication and a link-local address for local interactions, e.g. with immediate neighborhood or for router discovery messages.
| Field | Prefix | Zero | Interface ID |
| Bits | 10 | 54 | 64 |
Anycast addresses represent an intermediate concept that builds on the unicast model but can behave like multicast in certain cases. An anycast address is, in essence, a unicast address assigned to several interfaces distributed over different network nodes. When a packet is sent to an anycast address, the IPv6 protocol aims to deliver it to one of the hosts sharing that address, typically the one closest in terms of routing topology. This approach optimizes query processing speed and improves the resilience of distributed services. A classic example is the root DNS servers, where anycast addressing automatically directs queries to the nearest point of presence.
| Field | Prefix | Subnet | Interface ID |
| Bits | 48 | 16 | 64 |
In IPv6, multicast addresses replace the broadcast mechanism, which was considered too costly and unsuitable for a global-scale network. A multicast address identifies a group of interfaces, typically across multiple hosts, that wish to receive the same packets simultaneously.
Each multicast address includes a special 4-bit scope field, which defines the geographic or logical limit of the broadcast:
- A scope of
1means the packet is for the local device only. - A scope of
2restricts the packet to the local link: all devices on the same physical or virtual segment can receive it. - A scope of
5extends the reach to a site, typically an entire corporate network. - A scope of
8extends the reach to an organization, enabling delivery across all subnets of the same entity. - A scope of
e(14 in hexadecimal) indicates a global reach, making the multicast group accessible from anywhere on the Internet if the routing infrastructure supports it.
The structure of an IPv6 multicast address includes:
- a Flag field (4 bits) specifies whether the group is permanent or temporary,
- a Scope field (4 bits) defines the scope,
- an identification field (112 bits) identifying the multicast group number.
| Field | Prefix | Flags | Scope | Group ID |
| Bits | 8 | 4 | 4 | 112 |
A well-known example of IPv6 multicast in action is the Neighbor Discovery Protocol (NDP). Rather than using ARP as in IPv4, NDP relies on multicast addresses such as
ff02::1:ff00:0/104 to broadcast neighbor discovery requests, targeting only the relevant hosts on the same link.By defining address scopes so precisely, IPv6 structures how data flows are sent, received, and routed. This granularity makes the protocol more flexible and efficient for managing both local and global communications, while avoiding the downsides of generalized broadcasting.
Quiz
Quiz1/5
net3024.1
What notation is used to insert an IPv6 address in a URL?