IPv6 - NDP Neighbor Discovery Process
Neighbor solicitation is a function of the Neighbor Discovery Protocol (NDP) which is used to determine the Layer 2 address, typically the MAC address, of the destination or the next hop router. This process is the corresponding mechanism to IPv4's ARP protocol.
The neighbor discovery process uses neighbor solicitation (NS) messages to request the MAC address, and neighbor advertisement (NA) messages to respond to the NS with the appropriate information. Both of these messages use ICMP.
The NS message is sent by the host and includes the layer two address of the host sending it. In the ICMP header of this packet, you will find a type value of 135.
When one host wants to find the layer two address of another host, it will send the neighbor solicitation to the remote host’s solicited node multicast address. It can calculate the solicited-node multicast address of the remote host since it knows about the multicast group address and it knows the IPv6 address that it wants to reach.
The result will be that only the remote host will receive the neighbor solicitation. That’s far more efficient than a broadcast that everyone receives which is used by ARP.
The neighbor that receives this NS will respond with an NA message, using type 136 in the ICMP packet header.
Once R1 receives the neighbor advertisement, these two IPv6 hosts will be able to communicate with each other.