I’m not an IPv6 guru or a professional network engineer, but after years of working with IPv4 in home and small business networks, I’ve been trying to understand IPv6 myself. This post is my attempt to break things down in plain English and share a few notes that helped me — hopefully it helps others make sense of IPv6 too. In this article I’ve also provide a quick guide to setting up a Lab scenario to test and practice on.
Why IPv6 Exists
IPv4 has around 4.3 billion unique addresses. That seemed huge in the 1980s, but with every smartphone, IoT device, and server needing an IP, we’ve been running out. IPv6 was designed to fix this, expanding from 32-bit addresses (IPv4) to 128-bit addresses. That’s about 340 undecillion addresses — enough to give every grain of sand on Earth billions of IPs.
IPv6 Address Basics
IPv6 addresses are written in hexadecimal, separated by colons. For example:
2001:db8:abcd:1::1
A few rules:
- You can drop leading zeros in each block.
- You can replace one stretch of all-zero blocks with
::. - Every IPv6 address, when expanded, is still 8 groups of 16 bits each.
Example:2001:db8:abcd:1::1 =2001:0db8:abcd:0001:0000:0000:0000:0001
Common IPv6 Address Types
- Global Unicast (
2000::/3) → public Internet addresses. - Unique Local Address (ULA
fc00::/7) → like private IPv4 ranges (192.168.x.x, 10.x.x.x). - Link-Local (
fe80::/10) → auto-assigned per interface, used inside a single subnet; required for IPv6 to function. - Multicast (
ff00::/8) → replaces IPv4 broadcast. - Loopback (
::1) → same as IPv4’s 127.0.0.1.
Subnetting in IPv6
IPv4 subnetting often felt like squeezing addresses out of a small pool. IPv6 flips that: the standard subnet size is /64 (that’s ~18 quintillion addresses per LAN).
- ISPs typically delegate you a /56 or /48.
- Each LAN gets its own
/64. - Convention: router =
::1, servers =::100, clients = autoconfigured via SLAAC.
Example:
2001:db8:abcd:1::/64→ Subnet 1 (LAN)2001:db8:abcd:2::/64→ Subnet 2 (Wi-Fi)2001:db8:abcd:3::/64→ Subnet 3 (servers)
DNS with IPv6
DNS works the same way, with a few twists:
- AAAA records map names to IPv6 addresses.
server.example.com IN AAAA 2001:db8:abcd:1::100 - PTR records for reverse lookups are longer (based on nibbles in
ip6.arpa). - Clients try both IPv4 and IPv6 (a method called Happy Eyeballs) and connect with whichever responds first.
Protocol Differences
- Neighbor Discovery Protocol (NDP) replaces ARP.
- SLAAC lets hosts self-configure addresses from router advertisements.
- DHCPv6 is optional, often used for DNS assignment.
- ICMPv6 is critical (can’t just block it like in IPv4 firewalls).
Useful IPv6 Addresses to Know
::1→ loopback.::→ unspecified (like 0.0.0.0).ff02::1→ all nodes on a subnet.ff02::2→ all routers on a subnet.fe80::/10→ link-local (mandatory, per interface).
Troubleshooting Commands
Windows
ipconfig /all # Show IPv6 addresses
ping -6 hostname # Force IPv6 ping
tracert -6 hostname # IPv6 traceroute
nslookup -q=AAAA host # Query AAAA record
Linux
ip -6 addr show # Show IPv6 addresses
ping6 fd00::1 # IPv6 ping
traceroute6 host # IPv6 traceroute
dig AAAA host # Query AAAA record
Hands-On Lab Idea
If you want to practice IPv6 in a homelab, try this:
- Give your router a ULA prefix (e.g.,
fd00:abcd::/48). - Split into
/64subnets (wired, Wi-Fi, servers). - Use SLAAC so clients auto-configure addresses.
- Add a Linux VM running DNS (
bind9) with both A and AAAA records. - Spin up a web server (
python3 -m http.server --bind :: 8080). - From a Windows client, browse to
http://server.lab.local:8080via its AAAA record.
You’ll see name resolution, dual-stack preference, and how IPv6 works in practice.
Closing Thoughts
IPv6 looks intimidating at first because of the long hex strings, but in reality:
- You don’t need to memorize full addresses.
- You think in prefixes and subnets.
- You let clients auto-configure.
- DNS + firewalls do most of the heavy lifting.
If you’re comfortable with IPv4, IPv6 is really just a bigger toolbox with some new defaults. Hopefully this helps make the transition a little less mysterious.
Check out some of my other Networking articles here.