IPv6 SLAAC and Neighbor Discovery Workbench

Trace link-local setup, router advertisements, SLAAC, DAD, next-hop selection, and neighbor resolution

animation
ipv6
slaac
ndp
networking-core
6lowpan
Interactive IPv6 SLAAC and Neighbor Discovery animation for learning RS, RA, NS, NA, DAD, prefix information options, next-hop resolution, and constrained 6LoWPAN ND behavior.
Interactive animation IPv6 SLAAC and NDP

IPv6 SLAAC and Neighbor Discovery Workbench

Step through how an IoT node gets from no IPv6 address to a usable address and a working next hop. Watch which ICMPv6 message changes the address state, router state, and neighbor cache.

Tentative link-localAddress state
Create IIDCurrent message
None yetNext hop
Goal
Separate link-local setup, router discovery, prefix learning, DAD, and neighbor resolution.
Try
Run normal boot, duplicate address, same-link peer, and sleepy 6LoWPAN scenarios.
Watch
Use Step to connect each ICMPv6 message to one concrete state change.
Check
Decide whether the payload needs a direct neighbor or the default router as next hop.

Address State and ICMPv6 Message Flow

A sensor joins a normal IPv6 subnet. It creates a link-local address, discovers a router, learns a /64 prefix, runs DAD, then resolves the next hop before sending data.

Ready: normal SLAAC boot loaded
Sensor
tentative
Router
RA source
On-link peer
actuator
Cloud
off-link
Start: the node has a link-layer identity but no assigned IPv6 address yet.

Address State

tentativeLink-local
not learnedGlobal or ULA
unknownDefault router
buildingCurrent result

Neighbor Cache and Diagnosis

Step through the flow to see when a tentative address becomes usable and when the node learns a link-layer next hop.

Targetnone
Entryempty
MeaningNo packet can leave until the address and next hop are ready.
Quick Reference
  • RS: Router Solicitation asks routers to advertise sooner.
  • RA: Router Advertisement can carry a Prefix Information Option; the autonomous flag lets hosts use SLAAC.
  • NS/NA: Neighbor Solicitation and Advertisement support DAD and link-layer address resolution.
  • DAD: A tentative address is not assigned if a duplicate is reported.
How To Debug

If the node has only `fe80::`, inspect RA reception and prefix flags. If the global address is tentative or failed, inspect DAD. If the address is assigned but packets do not leave, inspect the default route and neighbor cache entry for the selected next hop.

Technical Accuracy Notes
  • This animation uses documentation prefixes and simplified interface identifiers for teaching.
  • For off-link destinations, the node resolves the router as the link-layer next hop, not the cloud server.
  • Classic IPv6 ND uses multicast heavily. 6LoWPAN deployments often use ND optimizations and address registration to reduce multicast cost.
  • Modern systems do not have to expose MAC-derived EUI-64 interface identifiers; opaque or privacy-oriented identifiers are common.
Source Links