IPv6: DAD

Today I am going to talk about DAD which is Duplicate Address Detection. DAD is widely used in IPv6 networks to prevent multiple devices from having a duplicate address on the local link. 

When a device is assigned an IPv6 address, the device uses DAD to ensure that the IPv6 address is not already in use before the device begins using it. When an IPv6 address is first assigned that specific IPv6 address is placed in a “tentative” state. This means that the address cannot be used to send any packets using that address. When the tentative address is assigned a NS packet is then created. The source address of a DAD NS is an unspecified address (::), the destination address is the solicited-node multicast address of the tentative IPv6 address, and the target IPv6 in the payload is the tentative address again. The message is then sent, and the device will wait for a certain period called the “RetransTimer.” The Retrans Timer is usually 1 second but it can be manually configured to something else. If a device is already using the tentative address, it will send an NA within that interval. If an NA is received, that address will be marked duplicate and will not be assigned. If a NA message is not received within the Retrans Timer, then the device will move from a“tentative” state to a “preferred” state and will officially be assigned to the interface. 

DAD is performed for every single unicast address  (unless DAD is disabled), so if a device has 3 addresses (GUA, ULA, LLA) it will have to perform DAD for 3 addresses before they become active. 

Leave a Reply

Your email address will not be published. Required fields are marked *