In one line: IPv6 grows the address pool from 32 bits (4.3 B) to 128 bits (3.4×10³⁸) — and along the way removes NAT, broadcast, and on-path fragmentation, plus a much friendlier auto-configuration story.
What it is#
Format: 8 groups of 16-bit hex, separated by :; consecutive zeros compress to :::
2001:0db8:85a3:0000:0000:8a2e:0370:7334
↓ shortened
2001:db8:85a3::8a2e:370:7334
A modern host usually carries both IPv4 and IPv6 (dual-stack).
Analogy#
IPv4 is like an 8-digit city phone number — eventually exhausted, so people stitched together switchboard + extension (NAT). IPv6 is like a globally unique 38-digit number per device — every device, even per-process, can be globally addressable. No switchboard needed.
Key concepts#
How it works#
SLAAC + RA give hosts DHCP-like auto-config without a centralized DHCP server.
Practical notes#
ip -6 addrlists IPv6 addresses (Linux).- Check connectivity:
ping6 ipv6.google.comor test-ipv6.com. - Bind both stacks: nginx
listen [::]:443 ssl;. Log formats need[%h]to bracket v6 addresses. - Publish AAAA records. Dual-stack services must have AAAA so Happy Eyeballs can pick the fastest path.
- Firewall: don't forget ip6tables (or use nftables to manage both) — many sites are accidentally exposed because they only wrote v4 rules.
- Common myth: "internal corp doesn't need IPv6". Mobile / home broadband is mostly v6 by default — public-facing v6 support is a user-experience issue.
Easy confusions#
Causes hole-punching / P2P headaches.
Default firewall blocks inbound — **still harden it**.