Neighbor Discovery Protocol (NDP) uses ICMPv6 messages to discover routers, resolve neighbors’ link-layer addresses, and check neighbor reachability. Defined in RFC 4861.
S3 introduces ARP. S4 covers the basic SLAAC exchange and Duplicate Address Detection. NDP supplies IPv6 address resolution and the messages used by these configuration procedures.
ICMPv6 Messages
| Type | Message | Purpose |
|---|---|---|
| 133 | Router Solicitation | Request a Router Advertisement. |
| 134 | Router Advertisement | Announce router availability, prefixes, and link parameters. |
| 135 | Neighbor Solicitation | Resolve a link-layer address, probe reachability, or check a tentative address. |
| 136 | Neighbor Advertisement | Respond to a solicitation or announce a changed link-layer address. |
| 137 | Redirect | Inform a host of a better first hop for a destination. |
Solicited-Node Multicast
A solicited-node multicast address combines ff02::1:ff00:0/104 with the low-order 24 bits of a unicast or anycast address.
- An interface joins the group associated with each assigned address.
- Address-resolution solicitations target this group instead of all nodes.
- Different addresses can share a group when their low-order 24 bits match.
- The solicitation’s Target Address identifies the full address being queried.
Examples:
- Target address
2001:db8::1234:5678 - Low-order 24 bits
34:56:78 - Solicited-node multicast address
ff02::1:ff34:5678
Duplicate Address Detection Details
DAD checks a tentative unicast address before normal use. It also applies to link-local addresses, not only privacy addresses. RFC 4862 defines the procedure.
- Join the all-nodes and candidate address’s solicited-node multicast groups.
- Send a Neighbor Solicitation with source
::, destination equal to the solicited-node multicast address, and Target Address equal to the candidate. - Reject the candidate if a valid Neighbor Advertisement claims it or another node’s DAD solicitation reveals a collision.
- Use the address after the configured probes and waiting period complete without detecting a duplicate.
The unspecified source prevents the tentative address from being used as an assigned source address. A DAD solicitation omits the Source Link-Layer Address option.
Router Advertisement Flags
Router Advertisements can supply a prefix, link MTU, and suggested hop limit. Their router lifetime indicates eligibility as a default router.
| Flag | Location | Effect When Set |
|---|---|---|
| M | Router Advertisement | Addresses are available through DHCPv6. |
| O | Router Advertisement | Other configuration, such as DNS information, is available through DHCPv6. |
| L | Prefix Information option | The prefix can be used for on-link determination. |
| A | Prefix Information option | The prefix can be used for SLAAC. |
- M and A can both be set, allowing DHCPv6 and SLAAC together.
- O is redundant when M is set because DHCPv6 can return the other configuration too.
- L and A are independent, separating on-link determination from address generation.
- A clear L flag does not establish that a prefix is off-link.
- Hosts learn default routers through Router Advertisements, separately from DHCPv6 address assignment.