IPv6 Fundamentals
Before you start
Who is this for?
For learners who understand IPv4 basics and want to configure and troubleshoot IPv6.
Prerequisites
- IPv4 addressing and prefixes
- Basic routing concepts
What you'll be able to do
- Expand and compress addresses
- Recognize address scopes
- Explain RA, SLAAC, DHCPv6, and Neighbor Discovery
- Inspect IPv6 routes and name resolution
Practical outcome
Explain how a host learns an IPv6 address and default route, then narrow down a reachability problem using evidence.
Read prefixes, configure address discovery, and diagnose IPv6 reachability with the right tools.
IPv6 uses 128-bit addresses and a large address space. It is not simply IPv4 with longer numbers: it changes local neighbor discovery, broadcast behavior, and the way hosts learn network configuration. IPv4 and IPv6 can operate side by side.
1. Read and compress an address
Section titled “1. Read and compress an address”IPv6 is written as eight groups of one to four hexadecimal digits separated by colons. Each group represents 16 bits. The full form of 2001:0db8:0000:0000:02aa:00ff:fe28:9c5a can be shortened by removing leading zeros in each group and replacing one longest run of zero groups with :::
Full: 2001:0db8:0000:0000:02aa:00ff:fe28:9c5aCompressed: 2001:db8::2aa:ff:fe28:9c5aUse :: at most once in an address. If two zero runs have the same length, the recommended text form compresses the leftmost run. A single zero group can be written as 0; it should not be replaced by :: unless following the standard compression rule. These recommendations are from RFC 5952.
2. Address types and scope
Section titled “2. Address types and scope”| Type | Example or prefix | Purpose |
|---|---|---|
| Global unicast | Commonly 2000::/3 |
Globally scoped unicast; actual reachability still depends on routing and policy |
| Link-local unicast | fe80::/10 |
Neighbor discovery and communication on one link; routers do not forward it |
| Unique local | fc00::/7 |
Private internal addressing; not intended for global Internet routing |
| Multicast | ff00::/8 |
Deliver a packet to members of a multicast group |
| Loopback | ::1/128 |
Refer to the local host |
| Unspecified | ::/128 |
Represent the absence of an assigned address in specific protocol situations |
IPv6 has no broadcast address. Protocols use multicast for many tasks that used broadcast in IPv4. A link-local address is expected on IPv6-enabled interfaces and is not evidence of Internet connectivity. A multicast address is not a unicast destination for an ordinary single host.
3. Prefixes and subnet planning
Section titled “3. Prefixes and subnet planning”A prefix such as 2001:db8:1200:3400::/64 identifies the first 64 bits as the network prefix. The remaining bits identify addresses within that subnet. A /64 is the usual size for a host-facing LAN because it supports common IPv6 autoconfiguration behavior, but the right prefix depends on the link and design; point-to-point and infrastructure links may use other lengths.
For example, an organisation assigned 2001:db8:1200::/48 has 16 bits available between the site prefix and a /64 LAN prefix. That allows 2^16 distinct /64 subnets in the example plan. 2001:db8::/32 is documentation space from RFC 3849; use documentation prefixes in examples, not as real Internet targets.
IPv6 subnets are generally planned on hexadecimal nibble boundaries for readability, but prefixes can end at any bit. A prefix length is not an address count to memorize: use the bits and align the allocation to the actual routed design.
4. Router Advertisements, SLAAC, and DHCPv6
Section titled “4. Router Advertisements, SLAAC, and DHCPv6”A host learns important on-link information from Router Advertisements (RAs), which routers send using ICMPv6 Neighbor Discovery. RAs can identify on-link prefixes, announce a default router, and signal whether hosts should use DHCPv6 for additional or managed configuration.
With SLAAC (Stateless Address Autoconfiguration), a host combines an advertised prefix with an interface identifier to form an address. Modern systems often use privacy-oriented or stable opaque identifiers rather than exposing a hardware MAC address in the IPv6 address.
DHCPv6 can provide addresses and/or other configuration, depending on the network design and client. DHCPv6 does not provide the IPv6 default gateway; hosts learn default routers from RAs. The RA Managed and Other Configuration flags guide host behavior, but actual client behavior can vary by operating system and configuration. See RFC 4861, RFC 4862, and RFC 8415.
5. Neighbor Discovery and ICMPv6
Section titled “5. Neighbor Discovery and ICMPv6”IPv6 Neighbor Discovery replaces IPv4 ARP on a local link. ICMPv6 messages include Router Solicitation and Advertisement, Neighbor Solicitation and Advertisement, and Redirect. Hosts use them to discover routers, resolve a local neighbor’s link-layer address, check reachability, and detect duplicate addresses.
ICMPv6 also carries error and diagnostic information. Filtering all ICMPv6 can break address configuration, path MTU discovery, or other normal network behavior. Apply policy that permits required ICMPv6 types instead of treating it as optional ping traffic. The base protocol is defined by RFC 4443.
6. IPv4 and IPv6 together
Section titled “6. IPv4 and IPv6 together”Dual-stack devices run IPv4 and IPv6 at the same time. A name can resolve to both A (IPv4) and AAAA (IPv6) records, and applications choose which connection to try. A service can therefore work over IPv4 but fail over IPv6 because of a missing route, firewall policy, or server listener.
IPv6 does not require NAT for address conservation in the way common IPv4 networks use NAT, but firewalls and access controls remain essential. IPv6 should be monitored and secured alongside IPv4; an unplanned IPv6 path can bypass assumptions based only on IPv4 firewall rules.
7. Practical checks
Section titled “7. Practical checks”Use read-only commands first. The exact output and options vary by operating system:
Windows: ipconfig /allPowerShell: Get-NetIPAddress -AddressFamily IPv6 Get-NetRoute -AddressFamily IPv6Linux: ip -6 address ip -6 route ip -6 neighLinux DNS: resolvectl query example.comReach: ping -6 example.comHTTPS: curl -6 -I https://example.com/Read fe80:: addresses together with their interface or zone identifier; link-local addresses only make sense on a particular link. Compare A and AAAA resolution, inspect the IPv6 default route, and test the destination service. A failed ping alone does not prove that an application is unreachable because ICMP may be filtered.
8. Troubleshooting sequence and common mistakes
Section titled “8. Troubleshooting sequence and common mistakes”- Confirm the interface is up and has the expected global or unique-local address plus link-local address.
- Check whether an RA arrived and whether a default route exists.
- Check DNS A and AAAA answers separately.
- Test the destination over IPv4 and IPv6 separately, then compare the application result.
- If the local link fails, inspect Neighbor Discovery and the VLAN or wireless segment.
- Check firewall policy and whether the service listens on IPv6.
Common mistakes include compressing two different zero runs with ::, assuming DHCPv6 supplies the default gateway, equating a global address with Internet reachability, and disabling ICMPv6 wholesale. For a comparison of the address-configuration processes, revisit DHCP Fundamentals.
Practical exercise
Section titled “Practical exercise”On a device you own, record its IPv6 addresses, default route, and neighbor entries. Resolve one hostname’s A and AAAA records, then compare an IPv4 and IPv6 request with curl -I -4 and curl -I -6. Write down the first test that differs and one plausible cause before changing anything.