Lesson
IPv6 Fundamentals
Learning objective
Read and shorten IPv6 addresses and explain prefixes, link-local/global addresses, multicast, Neighbor Discovery, SLAAC, and default-router discovery.
Learning objective
Read, classify, shorten, and troubleshoot IPv6 addresses, then explain how a host forms an address, discovers neighbours, and chooses local delivery or a router.
Why IPv6 exists
IPv6 provides a vastly larger address space than IPv4 and restores room for end-to-end addressing. It also replaces several familiar IPv4 mechanisms: hosts use Neighbor Discovery rather than ARP, routers advertise network information, and multicast replaces broadcast. Examples here use 2001:db8::/32, which is reserved for documentation and must not be treated as a deployable allocation.
Address structure and hexadecimal
Where the address sits in an IPv6 packet
Swipe sideways to see all fields
| Version · 4 bits | Traffic class · 8 bits | Flow label · 20 bits | |||||||||
| Payload length · 16 bits | Next header · 8 bits | Hop limit · 8 bits | |||||||||
| Source IPv6 address · 128 bits | |||||||||||
| Destination IPv6 address · 128 bits | |||||||||||
| Extension headers · optional | |||||||||||
| Upper-layer payload · variable | |||||||||||
An IPv6 address contains 128 bits written as eight 16-bit hextets. Each hexadecimal digit represents four bits, so one hextet contains four hexadecimal digits. Colons separate hextets; they do not mark packet or subnet boundaries by themselves.
Expand and shorten addresses safely
Leading zeroes may be removed from each hextet. One longest consecutive run of all-zero hextets may be replaced by ::; use it only once. Thus 2001:0db8:0000:0000:0000:0000:0000:0001 becomes 2001:db8::1. Expansion reverses both rules until exactly eight hextets are visible.
Interactive IPv6 address explorer
Use the player to unfold an address, identify its prefix and interface portions, and compare its type and scope. The visual conclusion always remains visible: shortening changes notation, never the 128-bit value.
Explore an IPv6 address
2001:db8:0:0:20c:29ff:fe9c:409/64
Step 1 of 7: Validate the address
20010db800000000020c29fffe9c04092001:db8::20c:29ff:fe9c:409
64 network bits · 64 interface bits
global-unicast · global
Identifies one interface in globally routed IPv6 space.
Prefixes and interface identifiers
A prefix length states how many leading bits identify the network prefix. /64 is common on SLAAC LANs, leaving 64 interface-identifier bits, but IPv6 supports other prefix lengths. A device compares the destination with its configured on-link prefixes before selecting a next hop.
Address types and scopes
- Global unicast addresses are globally scoped; this lesson represents them with documentation block
2001:db8::/32. - Link-local addresses use
fe80::/10and remain on the local link. - Unique-local addresses use
fc00::/7and are intended for private internal use, not public Internet routing. - Multicast addresses use
ff00::/8; their scope field limits where the group is meaningful. ::1is loopback, while::is the unspecified address and is not assigned to an interface.
IPv6 has no broadcast
IPv6 has no broadcast address. A sender uses a specific multicast group when multiple listeners must receive a packet. The Ethernet switch can still forward the multicast frame across eligible ports, but only nodes listening for that IPv6 group accept and process it.
Neighbor Discovery and ICMPv6
Neighbor Discovery Protocol uses ICMPv6 messages. Router Solicitation and Router Advertisement reveal routers and prefixes; Neighbor Solicitation and Neighbor Advertisement resolve neighbours and verify reachability. Duplicate Address Detection sends a Neighbor Solicitation with the unspecified source :: before a tentative address is used.
Interactive NDP and SLAAC journey
Follow address formation, DAD, router discovery, neighbour resolution, and delivery. Inspect each hop: ICMPv6 control messages build the information the host needs before normal traffic can move.
Watch IPv6 configure and find the next hop
Build an address, prove uniqueness, discover a router, resolve a neighbour, and deliver the packet.
- Host: Host eth0Switch: Switch Gi0/1
- Switch: Switch Gi0/2Router: Router Gi0/0
- Switch: Switch Gi0/3Peer: Peer eth0
Active: Host
Step 1 of 8
1. Form a link-local address
The host forms a tentative fe80::/10 address before it has a globally scoped address.
Packet inspector
Inside the packet
Host or device decision
No frame is crossing a link during this step.
- ICMPv6
- Local address formation
- IPv6 source
- ::
- IPv6 destination
- fe80::20c:29ff:fe9c:409
Technical packet details
- Ethernet handling
- Multicast is forwarded on eligible VLAN links; only group members accept it.
Local delivery or the default router
For an on-link destination, the host resolves the destination's link-layer address and sends directly. For an off-link destination, it resolves the default router's link-layer address; the IPv6 packet keeps the remote destination address while the first Ethernet frame targets the router.
Inspect IPv6 evidence
On Windows, use ipconfig /all, Get-NetIPAddress -AddressFamily IPv6, Get-NetRoute -AddressFamily IPv6, and Get-NetNeighbor -AddressFamily IPv6. On Linux, use ip -6 address, ip -6 route, and ip -6 neighbour. In Wireshark, start broadly with ipv6, then isolate Neighbor Discovery with icmpv6 or message filters such as icmpv6.type == 135.
Basic Wireshark check
Display filter: icmpv6
Find an NS/NA exchange. Compare the solicited-node multicast destination, ICMPv6 target address, Ethernet destination, and the neighbour-cache result.
Practise IPv6 interpretation
For each supplied address, expand all eight hextets, apply canonical shortening, classify its type and scope, split the prefix at the stated length, and derive the solicited-node multicast address. Then decide whether the first hop targets the neighbour or the default router.
Troubleshoot IPv6 methodically
- Confirm the interface has a usable link-local address and is not stuck tentative after DAD.
- Verify the prefix length and on-link route instead of judging by similar-looking text.
- Check Router Advertisements for prefix, lifetime, and default-router information.
- Inspect the neighbour cache and NS/NA exchange for the selected next hop.
- Check ICMPv6 filtering; blocking essential control messages can break IPv6 even when addresses look correct.