Introduction
IPv6 is not IPv4 with a bigger address field. That mental model will get you into trouble.
The biggest mistake I see with IPv6 is treating it as something that can be ignored until the day somebody finally says, “We need IPv6.” By then, IPv6 is already sitting in operating systems, cloud platforms, mobile networks, applications and security policies.
The good news is that the fundamentals are not difficult. The bad news is that IPv6 changes some assumptions that have been baked into networking for decades.
If you understand addressing, Neighbor Discovery, Router Advertisements, SLAAC, routing and the role of ICMPv6, you already understand most of what matters.
The address space
IPv4 gives us roughly 4.3 billion addresses. That sounded enormous until the internet decided to connect practically everything.
IPv6 uses 128-bit addresses. Written in hexadecimal, they look intimidating:
2001:db8:1234:5678:abcd:ef01:2345:6789
The notation becomes much easier once you understand the compression rules. Leading zeros inside each 16-bit block can be removed, and one consecutive run of all-zero blocks can be replaced with ::.
For example:
2001:0db8:0000:0000:0000:0000:0000:0001
becomes:
2001:db8::1
The important part is not memorizing the formatting rules. It is understanding that IPv6 addressing is designed around hierarchy and aggregation.
The addresses you actually need to know
You will encounter several IPv6 address types.
Global unicast addresses are routable on the public IPv6 internet. Link-local addresses begin with fe80::/10 and are automatically present on IPv6-enabled interfaces. They are used for local communication and are extremely important for Neighbor Discovery and routing protocols.
Unique Local Addresses, from fc00::/7, are roughly the IPv6 equivalent of private addressing, although their design and operational expectations are different from RFC1918 IPv4 space.
Multicast replaces many jobs that IPv4 broadcast used to handle. IPv6 does not have broadcast in the traditional IPv4 sense. That is a major difference.
And then there is ::1, the IPv6 loopback address. Yes, IPv6 has localhost too. It just decided to make it look more complicated.
Why /64 keeps appearing everywhere
A normal IPv6 LAN is generally a /64.
That sounds wasteful if you are coming from IPv4. It is. Intentionally.
IPv6 relies heavily on the division between the network prefix and the interface identifier. SLAAC, Neighbor Discovery and many other mechanisms expect the conventional /64 structure on LANs.
Trying to conserve IPv6 addresses the way you conserved IPv4 addresses is usually the wrong optimization. The address space is not the scarce resource. Operational simplicity is.
SLAAC, DHCPv6 and Router Advertisements
IPv6 hosts can configure themselves without a traditional DHCP server.
Routers send Router Advertisement messages using ICMPv6. These advertisements tell hosts which prefixes exist and how they should configure themselves.
With SLAAC, a host can construct its own address from the advertised prefix. DHCPv6 can also provide additional configuration, depending on the deployment.
This is one reason ICMPv6 is not optional decoration. Blocking ICMPv6 because “ICMP is insecure” is a great way to create a network that technically has IPv6 but doesn't actually work.
That is not security. That is self-inflicted denial of service.
Neighbor Discovery
IPv4 uses ARP to map IP addresses to MAC addresses. IPv6 replaces ARP with Neighbor Discovery Protocol, which operates through ICMPv6.
NDP handles several jobs including neighbor discovery, address resolution, router discovery and duplicate address detection.
When troubleshooting IPv6, learn to think in terms of NDP rather than ARP. If you are looking for an IPv6 equivalent of “show me the ARP table,” you are already asking the right question, but you need the IPv6 version of the mechanism.
Dual-stack is not a migration strategy by itself
Running IPv4 and IPv6 simultaneously is called dual-stack. It is often the most practical transition strategy.
But dual-stack creates two networks to operate, secure, monitor and troubleshoot.
A host may prefer IPv6 because it resolves an AAAA record and has IPv6 connectivity. If IPv6 is broken, the user may experience delays or application failures even though IPv4 works perfectly.
That means your monitoring needs to test both stacks. “IPv4 works” is no longer enough.
IPv6 troubleshooting
Start with the basics.
Check whether the interface has a global address and a link-local address. Check the default route. Check Neighbor Discovery. Check DNS for both A and AAAA records. Then test connectivity separately over IPv4 and IPv6.
Useful commands include:
ip -6 addr
ip -6 route
ip -6 neigh
ping -6 example.com
traceroute6 example.com
dig A example.com
dig AAAA example.com
Packet captures are particularly useful. If the host never receives Router Advertisements, or NDP traffic is being filtered, the problem will not magically fix itself because you restarted the application five times.
What actually matters
You do not need to memorize every IPv6 address type to be competent with IPv6.
Understand these instead:
- • IPv6 uses 128-bit addresses and hierarchical prefixes.
- • /64 is the normal LAN prefix.
- • Link-local addresses are fundamental, not optional.
- • ICMPv6 is part of the protocol architecture.
- • NDP replaces ARP.
- • Router Advertisements drive important host configuration.
- • DNS now commonly means checking both A and AAAA.
- • Dual-stack creates two paths that need to be monitored.
IPv6 becomes much less mysterious once you stop comparing every mechanism to IPv4.