Duplicate Address Detection (DAD)

This mechanism is used to determine if a proposed (TENTATIVE) address is already owned by some other node in the local link. Both hosts and routers perform DAD on all unicast addresses, regardless of how they are obtained (automatic generation, SLAAC, DHCPv6 stateful mode, or manual assignment). The only real difference in unicast and anycast messages is that DAD is not done for anycast addresses (and they can be assigned to multiple nodes in a single network). DAD is accomplished using Neighbor Solicitation and Neighbor Advertisement messages.

In IPv4 duplicate addresses would be accomplished by sending a Gratuitous ARP request.

There are two steps in IPv6 Duplicate Address Detection:

Step 1 – the node owning the TENTATIVE address sends several Neighbor Solicitation messages. The Retrans value from the Router Advertisement message specifies how many milliseconds to wait between the sent Neighbor Solicitation messages. The source address of these packets is the unspecified address (::). The Destination address is the solicited node multicast address for the TENTATIVE address. The Target address is the TENTATIVE address itself.

Step 2 – If any node on the local link is already using the TENTATIVE address, it will receive the multicast transmission (the any such node would have generated the right solicited node multicast address). Any such node will respond with a Neighbor Advertisement to the all nodes on local link multicast address (ff02::1). If no such response is seen within a reasonable time interval, then the TENTATIVE address is consider to be unique on the link and is assigned.