IPv6 is the successor to IPv4, using 128-bit addresses to solve exhaustion of the 32-bit IPv4 space. With 340 undecillion possible addresses, every device can have a globally routable address. This reference covers notation rules, address types, common prefixes, and the CLI commands you need when troubleshooting IPv6 on Linux, macOS, or network devices.
Structure
Abbreviation Rules
Special Notation
| Type | Prefix | Range | Scope | Notes |
|---|---|---|---|---|
| Loopback | ::1/128 | — | Host | Equivalent to 127.0.0.1 |
| Link-Local | fe80::/10 | fe80:: – febf:: | Link | Auto-configured on every interface, not routable |
| Unique Local (ULA) | fc00::/7 | fc00:: – fdff:: | Site | RFC 4193 — private use, like RFC 1918 |
| Global Unicast | 2000::/3 | 2000:: – 3fff:: | Global | Publicly routable addresses (ISP assigned) |
| Documentation | 2001:db8::/32 | — | — | RFC 3849 — examples and docs only, not routable |
| Multicast | ff00::/8 | ff00:: – ffff:: | Varies | Replaces IPv4 broadcast; ff02::1 = all nodes |
| Solicited-Node Multicast | ff02::1:ff00:0/104 | — | Link | Used by NDP (replaces ARP) |
| 6to4 | 2002::/16 | — | Global | Deprecated IPv4-to-IPv6 transition mechanism |
| Teredo | 2001::/32 | — | Global | NAT traversal tunnel, largely deprecated |
| Prefix | Addresses | Typical Use |
|---|---|---|
| /128 | 1 | Single host — loopback, router interface |
| /127 | 2 | Point-to-point links (RFC 6164) |
| /126 | 4 | Point-to-point (legacy, avoid — use /127) |
| /64 | 18,446,744,073,709,551,616 | Standard LAN subnet — required for SLAAC |
| /56 | 256 × /64 subnets | Typical residential ISP allocation |
| /48 | 65,536 × /64 subnets | Standard enterprise site allocation |
| /32 | 65,536 × /48 sites | ISP allocation to a single customer org |
| /29 | 8 × /32 allocations | LIR minimum allocation from RIR |
Note: Unlike IPv4, IPv6 /64 subnets are standard for all LAN segments regardless of host count. Never subnet smaller than /64 on a LAN — SLAAC requires it.
| Feature | IPv4 | IPv6 |
|---|---|---|
| Address length | 32-bit | 128-bit |
| Address space | ~4.3 billion | 340 undecillion |
| Notation | Dotted decimal (192.168.1.1) | Hex colon (2001:db8::1) |
| Subnetting | VLSM, any prefix | /64 standard for LANs |
| Private addresses | RFC 1918 (NAT required) | ULA fc00::/7 (NAT not needed) |
| Broadcast | Yes | No — uses multicast |
| ARP | Yes | No — replaced by NDP |
| Auto-configuration | DHCP only | SLAAC + DHCPv6 |
| Header size | 20–60 bytes (variable) | 40 bytes (fixed) |
| IPsec | Optional | Built-in (mandatory in spec) |
| Fragmentation | Routers and hosts | Hosts only (Path MTU discovery) |
| Loopback | 127.0.0.1 | ::1 |
| Default route | 0.0.0.0/0 | ::/0 |
An IPv6 address is 128 bits, conventionally split between a network prefix and a interface identifier (IID). On a standard LAN that split is right down the middle: a /64 prefix for the network, 64 bits for the IID. The /64 boundary isn't arbitrary — SLAAC (StateLess Address AutoConfiguration) requires it, and most operating systems will refuse to autoconfigure on anything narrower. Even on point-to-point links between routers where /127 is now the recommended size (RFC 6164), the LAN-facing side stays at /64.
Common allocation sizes are tiered by who's giving them to whom. An ISP typically gets a /32 from its regional registry (or larger for big carriers). The ISP delegates a /48 to enterprise sites — that's 65,536 distinct /64 subnets, easily enough for any campus. Residential customers usually get a /56 via DHCPv6 prefix delegation, giving the home router 256 /64s to slice across LAN, IoT VLAN, guest network, etc. Some ISPs are stingy and hand out a single /64; it works but defeats the point of v6's address abundance.
The four address types you'll deal with most are GUA (Global Unicast, 2000::/3 — your routable public address), ULA (Unique Local, fc00::/7 — the IPv6 equivalent of RFC 1918, useful for internal services that should never leak to the internet), link-local (fe80::/10 — auto-configured on every interface, scoped to the link, used by NDP/RA/DHCPv6), and multicast (ff00::/8 — replaces broadcast entirely; ff02::1 is all-nodes, ff02::2 is all-routers).
The interface identifier itself has evolved. Original SLAAC used EUI-64 — derive a 64-bit IID from the 48-bit MAC by inserting fffe in the middle and flipping the U/L bit. That meant your IPv6 address embedded your MAC address and tracked you across networks, which was a privacy disaster. RFC 4941 added temporary addresses (rotated periodically), and RFC 7217 added stable-but-opaque IIDs that are stable per-network but can't be correlated across networks. Modern OSes default to 7217 + 4941 together — a stable address for incoming connections, a rotating temporary for outgoing.