IPv6 Explained
Understanding IPv6 addresses, notation, subnetting, and how the next generation of IP addressing works.
IPv6 Address Format
Full Notation
2001:0db8:85a3:0000:0000:8a2e:0370:7334
8 groups of 4 hexadecimal digits
- • 128 bits total (16 bytes)
- • 8 groups separated by colons
- • Each group is 4 hexadecimal digits
- • 340 undecillion possible addresses
Compressed Notation
2001:db8:85a3::8a2e:370:7334
Leading zeros omitted, :: replaces consecutive zeros
- • Leading zeros can be omitted
- • :: represents consecutive zero groups
- • :: can only be used once per address
- • Much more readable in practice
Compression Examples
Full:
2001:0db8:0000:0000:0000:0000:0000:0001
Compressed:
2001:db8::1
IPv6 Subnetting: /48 to /64
Address Hierarchy
/48 - ISP Allocation
2001:db8:1234::/48
Given to organizations
/64 - Network Segment
2001:db8:1234:0001::/64
Individual networks/VLANs
/128 - Host Address
2001:db8:1234:0001::1/128
Specific device
Subnet Planning
From /48 to /64 gives you:
2^16 = 65,536 subnets
Each /64 subnet can hold 2^64 devices (18 quintillion!)
Best Practice: Always use /64 for end networks, even if you only have a few devices. This ensures compatibility with SLAAC and other IPv6 features.
Address Assignment: SLAAC vs DHCPv6
SLAAC (Stateless)
Stateless Address Auto-Configuration allows devices to automatically configure their own IPv6 addresses without a server.
How it works:
- 1. Router announces network prefix (/64)
- 2. Device creates interface identifier (usually from MAC)
- 3. Combines prefix + interface ID = full address
- 4. Tests for duplicates with DAD
✅ Simple, no server needed
✅ Works out of the box
⚠️ No control over addressing
✅ Works out of the box
⚠️ No control over addressing
DHCPv6 (Stateful)
DHCPv6 provides centralized address management, similar to DHCP in IPv4, but with additional IPv6-specific features.
Modes:
- • Stateful: DHCPv6 provides addresses
- • Stateless: SLAAC + DHCPv6 for options
- • Assisted: Router flags control behavior
✅ Centralized control
✅ Additional options (DNS, etc.)
⚠️ Requires DHCPv6 server
✅ Additional options (DNS, etc.)
⚠️ Requires DHCPv6 server
Privacy Extensions & Temporary Addresses
The Privacy Problem
Traditional SLAAC creates addresses using the device's MAC address, making devices trackable across different networks.
Example:
MAC: 00:11:22:33:44:55
→ Interface ID: 0211:22ff:fe33:4455
→ Always the same on any network
→ Interface ID: 0211:22ff:fe33:4455
→ Always the same on any network
Privacy Extensions
RFC 4941 privacy extensions generate random, temporary addresses that change over time to prevent tracking.
Benefits:
- • Random interface identifiers
- • Addresses change periodically
- • Prevents device tracking
- • Enabled by default on most OSes
Multiple Addresses
IPv6 devices typically have multiple addresses simultaneously:
- • Link-local: fe80::/10 (for local communication)
- • Stable global: Based on MAC or configured
- • Temporary global: Privacy extension addresses
- • Unique local: fc00::/7 (private addressing)
Reverse DNS (rDNS) Basics
How rDNS Works
Reverse DNS allows you to find the hostname associated with an IP address. For IPv6, this uses the ip6.arpa domain.
IPv6: 2001:db8::1
rDNS: 1.0.0.0.0.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
Setting Up rDNS
- 1.Get IPv6 delegation from your ISP or hosting provider
- 2.Configure DNS servers to handle your ip6.arpa zone
- 3.Create PTR records for your IPv6 addresses
- 4.Test with tools like dig or nslookup
Common IPv6 Address Types
Special Addresses
::/0
Default route (like 0.0.0.0/0)
::1/128
Loopback (like 127.0.0.1)
::/128
Unspecified address
fe80::/10
Link-local addresses
Global Addresses
2000::/3
Global unicast (public internet)
fc00::/7
Unique local (private networks)
ff00::/8
Multicast addresses
2001:db8::/32
Documentation/examples