Intermediate 5 min read Updated: Sep 09, 2026

IPv6 Addressing, SLAAC & Global Unicast Architecture

Master enterprise IPv6 fundamentals: 128-bit address representation, address scopes, Stateless Address Autoconfiguration (SLAAC), and ICMPv6 Neighbor Discovery.

The exhaustion of the 32-bit IPv4 address space—which provides only approximately 4.3 billion unique public addresses—has made modern enterprise networking increasingly complex. While Network Address Translation (NAT) extended the lifespan of IPv4 by allowing thousands of internal hosts to hide behind a single public IP, NAT breaks end-to-end network transparency, complicates peer-to-peer applications, and introduces stateful tracking overhead on firewalls.

Internet Protocol version 6 (IPv6) resolves the address exhaustion crisis with a 128-bit address space, providing 340 undecillion ($3.4 \times 10^{38}$) unique addresses. Beyond address abundance, IPv6 introduces cleaner packet headers, eliminates broadcast traffic, and features automated, stateless address configuration.

IPv6 Address Representation and Compression Rules

An IPv6 address is written as eight groups of four hexadecimal digits (16 bits per group, known as a hextet), separated by colons:

Uncompressed 128-Bit IPv6 Address
2001:0db8:0000:0000:0000:0000:0042:0001

To make addresses manageable for network administrators, RFC 5952 establishes two mandatory compression rules:

  1. Omit Leading Zeros: Within any 16-bit hextet, leading zeros can be omitted. (e.g. :0db8: becomes :db8:, and :0042: becomes :42:).
  2. Compress Consecutive Hextets of Zeros (Double Colon ::): A single contiguous sequence of one or more all-zero hextets can be replaced with a double colon (::). This rule can only be applied once per address to preserve mathematical reversibility.
Properly Compressed Representation
2001:db8::42:1

Core IPv6 Address Scopes

Unlike IPv4 where an interface typically possesses only a single IP address, an IPv6-enabled interface simultaneously maintains multiple addresses across distinct Address Scopes:

Address Scope Type Prefix / Range Scope & Operational Purpose
Global Unicast Address (GUA) 2000::/3 (typically 2001:: or 2002::) Publicly routable across the global internet (analogous to public IPv4). Every host with a GUA has direct, end-to-end connectivity without NAT.
Link-Local Address (LLA) fe80::/10 (commonly fe80::/64) Mandatory on every IPv6 interface. Used strictly for local communications on the physical link (same broadcast domain/VLAN). Never routed by routers. Used for neighbor discovery, routing protocol peering (OSPFv3, BGP), and default gateway next-hops.
Unique Local Address (ULA) fc00::/7 (commonly fd00::/8) Routable only within an enterprise organization or private VPN fabric. Analogous to RFC 1918 private IPv4 space (10.0.0.0/8). Not routable on the public internet.
Multicast ff00::/8 Used to deliver packets to multiple destinations simultaneously. Replaces IPv4 broadcast. (e.g. ff02::1 = All Nodes on link, ff02::2 = All Routers on link).
Loopback ::1/128 Local host software loopback (analogous to 127.0.0.1).

Global Unicast Address (GUA) Structure

A standard enterprise Global Unicast address conforms to a clean, hierarchical structure:

  • Global Routing Prefix (typically /48): Assigned by the upstream ISP or Regional Internet Registry (RIR) to identify the specific enterprise organization.
  • Subnet ID (16 bits, extending prefix to /64): Managed by internal network engineers to allocate up to 65,536 distinct subnets within the enterprise.
  • Interface ID (64 bits): Identifies the specific host interface on that subnet (generated via SLAAC, random generation, or manual assignment).
The Golden Rule: Always Use /64 Subnets
In IPv6, end-user subnets must always be sized as /64. While variable-length subnetting is mathematically possible, breaking the /64 boundary breaks core automated features including Stateless Address Autoconfiguration (SLAAC) and Mobile IPv6.

Stateless Address Autoconfiguration (SLAAC) & NDP

IPv6 eliminates dependency on a dedicated DHCP server through Stateless Address Autoconfiguration (SLAAC), governed by the Neighbor Discovery Protocol (NDP) running over ICMPv6:

  1. Router Solicitation (RS - ICMPv6 Type 133): Upon link initialization, the host generates its Link-Local address (fe80::...) and multicasts an RS packet to ff02::2 (All-Routers) asking local routers for subnet parameters.
  2. Router Advertisement (RA - ICMPv6 Type 134): The local router replies with an RA packet (sent to ff02::1 All-Nodes) containing:
    • The 64-bit network prefix (e.g. 2001:db8:acad:1::/64).
    • Default gateway link-local address.
    • Address lifecycle timers (Preferred and Valid lifetimes).
    • Configuration flags (e.g. M-flag for Managed DHCPv6 or O-flag for Other DNS options via Stateless DHCPv6).
  3. Interface ID Generation: The host combines the advertised /64 prefix with its own 64-bit Interface ID. This can be derived from the hardware MAC address using the legacy Modified EUI-64 process (inverting the 7th bit and inserting FF:FE into the center), or modern privacy extensions (RFC 4941 / RFC 7217) which generate stable, cryptographically randomized Interface IDs to prevent physical device tracking.
  4. Duplicate Address Detection (DAD): Before activating the new address, the host sends a Neighbor Solicitation (NS) for its own candidate address. If no Neighbor Advertisement (NA) is received within the timeout, the host confirms the address is unique and begins transmission.

Inspecting IPv6 Configuration on Hosts

Linux / macOS (Bash)
ip -6 addr show dev eth0
Example Output
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:db8:acad:1:5054:ff:fe12:3456/64 scope global dynamic mngtmpaddr 
       valid_lft 86395sec preferred_lft 14395sec
    inet6 fe80::5054:ff:fe12:3456/64 scope link 
       valid_lft forever preferred_lft forever

Summary

IPv6 is far more than an expanded address space. By structuring networks around clean /64 subnets, leveraging distinct Link-Local scopes for local router interactions, and employing ICMPv6 Neighbor Discovery for automatic SLAAC provisioning, IPv6 establishes an efficient, scalable, and NAT-free networking architecture.

Code copied to clipboard!