NDP Neighbor Solicitation Message – Why Sent to Solicited-Node Address?

ipipv6multicastndpprotocol-theory

As I understand it, when Host Alice knows Host Bob's IPv6 address but not its MAC, Alice sends an NDP Neighbor Solicitation (NS) message to the solicited-node multicast address for Bob.

Alice knows Bob's unicast address, so why send the NS to a multicast? What purpose is served by some other hosts possibly receiving the packet?

Best Answer

I don't think you quite understand that Alice needs Bob's MAC address before she can send anything to him. What RFC 4861, Neighbor Discovery for IP version 6 (IPv6) says:

4.3. Neighbor Solicitation Message Format

Nodes send Neighbor Solicitations to request the link-layer address of a target node while also providing their own link-layer address to the target. Neighbor Solicitations are multicast when the node needs to resolve an address and unicast when the node seeks to verify the reachability of a neighbor.

When used as the equivalent of ARP in IPv4, Alice does not know Bob's MAC address, so Alice can't send anything to Bob's IPv6 address. Alice needs to resolve Bob's IPv6 address to his MAC address in order to be able to send anything to Bob. Alice does this by sending a request to the solicited node multicast address, based on the last 24 bits of Bob's IPv6 address, so it is likely that only Bob will receive the request.

Contrast this to ARP in IPv4 where ARP requests are sent to the broadcast address, interrupting all hosts on the LAN.

Related Topic