LearnNetwork
IPv6 essentials

IPv6 — the address space that doesn't run out

12 min

IPv4 has 4.3 billion addresses. The world has 30 billion connected devices. The math doesn't work. IPv6 is the fix: 128-bit addresses (3.4 × 10^38 of them) plus a redesign that removes some of IPv4's biggest pain points. Every modern device is dual-stack today — you need both.

The address

128 bits, written as eight groups of 4 hex digits separated by colons:

2001:0db8:0001:0000:0000:0000:0000:0001

Two compression rules make this less awful:

  1. Leading zeros in a group can be dropped: 2001:db8:1:0:0:0:0:1.
  2. One run of consecutive all-zero groups can collapse to ::: 2001:db8:1::1.

Only one :: per address (else ambiguous).

| IPv6 | IPv4 equivalent | |---|---| | ::1 | 127.0.0.1 loopback | | :: | 0.0.0.0 unspecified | | fe80::/10 | 169.254/16 link-local | | 2000::/3 | Global unicast (public) | | fc00::/7 | Unique local (private, RFC 4193) | | ff00::/8 | Multicast — replaces broadcast |

What's gone, what's new

Gone: broadcast (replaced by all-nodes multicast ff02::1), ARP (replaced by Neighbor Discovery Protocol on ICMPv6), NAT (mostly — every device gets its own public address).

New:

  • SLAAC (Stateless Address Auto-Configuration) — host listens to a router advertisement, learns the /64 prefix, generates the host portion itself, gets a working public address with no DHCP server.
  • NDP (Neighbor Discovery) — combines ARP + router solicitation + autoconfig in a single ICMPv6-based protocol.
  • Mandatory link-local — every interface has a fe80::/10 address automatically, even without any other config.

The /64 rule

Every IPv6 subnet is /64. Always. Not because the protocol requires it, but because SLAAC requires it. The lower 64 bits are the interface identifier, generated either by EUI-64 (from the MAC) or by random (modern privacy-preserving default).

This means you don't carve subnets by host count anymore. Even a point-to-point link gets a /64. It feels wasteful — until you realize a /64 has 18 quintillion addresses and you have several quintillion /64s available.

Address types per scope

| Type | Scope | When to use | |---|---|---| | Link-local fe80::/10 | One link | Automatic; required; used by NDP, RA, OSPFv3 | | Unique local fc00::/7 | Private — your org | Internal traffic that should not leak to the internet | | Global unicast 2000::/3 | Whole internet | Public-facing services | | Multicast ff00::/8 | Group | All-nodes, all-routers, MLD | | Anycast | One of many | Identical address on multiple servers; routed to nearest |

Dual stack — the practical reality

Every modern OS, router, and switch runs both IPv4 and IPv6 simultaneously. A host with two stacks tries IPv6 first (per RFC 8305 "Happy Eyeballs"), falls back to IPv4 if needed. Network operators must:

  1. Configure IPv6 on every interface alongside IPv4.
  2. Run a routing protocol that supports both (OSPFv3 / IS-IS / BGP).
  3. Update ACLs, firewall rules, monitoring, DNS to know both.

Cisco IOS:

Cisco IOSEnable IPv6 on a router
[object Object]

What to remember

  • 128-bit addresses; compress with leading-zero strip and one ::.
  • Every subnet is a /64. Always.
  • No broadcast (use multicast), no ARP (use NDP), often no NAT.
  • SLAAC lets hosts auto-configure from a router advertisement.
  • Dual-stack is the norm. Run both, prefer IPv6 with IPv4 fallback.