Why IPv6 has so many notations
IPv6 addresses are 128 bits — 32 hex digits. Writing them out fully is unwieldy, so RFC 4291 defines two compressions:
- Leading zero suppression. Each 16-bit group can drop leading zeros, so
2001:0db8:0000:0000:0000:0000:0000:0001becomes2001:db8:0:0:0:0:0:1. - The double-colon (
::) substitution. Exactly one run of consecutive zero groups can be replaced with two colons.2001:db8:0:0:0:0:0:1→2001:db8::1.
The "canonical" form (RFC 5952) tightens this further: use lowercase, drop leading zeros, apply :: to the longest zero run (and the first such run if there are ties).
Reverse DNS in IPv6
PTR records for IPv6 live under the ip6.arpa tree. Each nibble (half-byte) becomes a label, in reverse order. So 2001:db8::1 reverses to 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. You can query that PTR with the DNS tool.
Special ranges to know
| Range | Name | Use |
|---|---|---|
::/128 | Unspecified | "No address" placeholder |
::1/128 | Loopback | Equivalent to IPv4 127.0.0.1 |
fe80::/10 | Link-local | Auto-configured per interface; never routed |
fc00::/7 | Unique local (ULA) | Private networks (IPv4 RFC 1918 equivalent) |
2000::/3 | Global unicast | The routable internet |
2001:db8::/32 | Documentation | Examples only — never routed |
ff00::/8 | Multicast | One-to-many, scoped (link / site / org / global) |
