The IPv6 address taxonomy

IPv6 addresses are 128 bits, written as eight 16-bit groups separated by colons. Unlike IPv4, the value of the first few bits tells you what kind of address it is.

PrefixTypeUse
::1/128LoopbackLocalhost. IPv6 equivalent of 127.0.0.1.
::/128Unspecified"No address." Used as source before DHCPv6 assigns one.
fe80::/10Link-localAuto-configured on every IPv6 interface. Only valid on the local link.
fc00::/7Unique Local (ULA)Private internal use. IPv6 equivalent of RFC 1918. fd00::/8 in practice.
2000::/3Global UnicastPublic, internet-routable addresses.
2001:db8::/32DocumentationReserved for examples and docs. Like 192.0.2.0/24 in v4.
::ffff:0:0/96IPv4-mappedHow v6 sockets represent v4 connections (::ffff:192.0.2.1).
64:ff9b::/96NAT64NAT64 prefix translation (v6-only client โ†’ v4 server).
ff00::/8MulticastReplaces both v4 broadcast and multicast.

Link-local โ€” present on every interface

Every IPv6-enabled interface gets a link-local address (fe80:: + interface ID) automatically. DHCPv6, neighbor discovery, and router advertisements all use link-local. Because link-local isn't unique across links, you must specify the interface โ€” usually with a zone ID like fe80::1%eth0.

Multicast scopes

ScopeReach
1 โ€” Interface-localSame machine
2 โ€” Link-localSame network segment
5 โ€” Site-localSite / corporate network
8 โ€” Organization-localMultiple sites of one organization
14 (e) โ€” GlobalThe entire internet

Well-known multicast addresses

AddressUsed for
ff02::1All nodes on the link
ff02::2All routers on the link
ff02::5OSPFv3 routers
ff02::1:2DHCPv6 servers and relay agents
ff02::fbmDNS / Bonjour

ULA โ€” Unique Local Addresses (fc00::/7)

Private internal networks. Format: fd + 40 random bits + 16-bit subnet ID + 64-bit interface ID. The 40 random bits make collisions vanishingly unlikely if two ULAs ever meet. Always use fd00::/8, never fc00::/8 (reserved).

Don't NAT IPv6

One of the design goals of IPv6 is end-to-end connectivity. There's enough address space that you should never need NAT. Use ULA only for things that should be unreachable from outside; for everything else, give devices real global IPv6 addresses and let the firewall control what's allowed in.

Privacy: don't leak your MAC

Older systems derived the last 64 bits from the MAC address (EUI-64). This leaked your MAC to every server. Modern systems use random "Privacy Extensions" (RFC 4941) that rotate frequently. On Windows: enabled by default. macOS/iOS: enabled by default. Linux: echo 2 > /proc/sys/net/ipv6/conf/all/use_tempaddr.