Duplicate Address Detection (DAD) is an IPv6 process that uses the Neighbor Discovery Protocol to verify that a newly generated address is unique before a device begins using it. This topic is examined through live Wireshark packet captures showing exactly how DAD operates at both Layer 2 and Layer 3.
Duplicate Address Detection
We're going to talk about duplicate address detection, and take a look at Wireshark to see what duplicate address detection looks like with these packets that go back and forth. It uses a neighbor discovery protocol to discover if there is a duplicate address out there on the network. It needs this because your machine will come up with a random IPv6 address, but it does need to be unique, and it can't be a duplicate of some other device that's on the network. So let's look at this process and see how it comes up with an address and then verifies that there are no other devices out there on the network that have that same address.
I'm going to start out by taking Wireshark and monitoring the Ethernet connection. This Ethernet connection doesn't have any traffic across it because it's not live right now. What I'm going to do is plug this in, and then we will see the traffic that goes across this interface. Then we'll take a look at it and see how it detects whether there is another device on the network that has the same address. It's come up with a random link local address on this machine, and now it needs to test to see if any other devices have that same link local address.
Now that this device has been plugged in, we've got some traffic. I'm going to go ahead and stop the capture. It's probably going to be much further up here, going to be one of the first things that comes up with this communication.
So we scroll up and we see right here, the fifth packet that comes from this is the neighbor solicitation. We see two different neighbor solicitations here when we look at this. We see one that's for this interface, that's fe80, that's the link local address, and then one for this fc00:1::14, which is the static address that we assigned to them.
If I wanted to verify that information, I could pull up a command prompt and type the ipconfig and see that, when I look at the Ethernet connection, it does in fact have this statically assigned address to it, and this fe80 address to it, and 3 4 f a. And if we take a look at this one right here, that ends in the same one. So these two addresses are the same. It's doing a neighbor solicitation for these devices right here, one for this device and one for this device. The idea is that if it sends it out there and does a neighbor solicitation for these two devices, if it doesn't get a response back, it probably is not taken, right? And if it does get a response back, then it's going to need to choose something different.
So let's take a look at these packets that we have here. First of all, we see that the source layer 3 address is colon colon. That's because it can't accept the address yet, it needs to show that the address is not taken, so it's unspecified. This is the unspecified address right here.
And then where it's heading to is going to be the solicited node multicast address that's associated with each one of these interfaces. They both start with ff02::1:ff. They both start with those because they're both the solicited node multicast address. Now, the last part of these, you can see that they line up very nicely with the actual IPv6 addresses that they're associated with, and it's that same process that we've already talked about to configure the solicited node multicast address.
The other thing we could do is take a look at each one of these and take a look at the layer two. So we've taken a look at the layer three addresses. What do the layer two addresses have in them? The source is the MAC address of the Dell laptop, my demo laptop, so that makes sense right there. And then the destination is the MAC address that's associated with the solicited node multicast address. So 3333 ff: immediately we think that's associated with that solicited node multicast address. And then the last digits, d734 fa, line up with the MAC address, or the solicited node multicast address, and in fact it also lines up with the actual IPv6 addresses of those.
So it's reaching out there, and then we can scroll through and see that there are no other devices with those IP addresses, so there's no response, and then it starts taking on those responses. You see the fe8 4 900, so there it is, it's actually using it at this point in time. So packets five and six: it's requesting to see if anybody responds out there, and then it assumes, once it doesn't get a response, then it starts using it. As long as there are no responses, then it can start using those IP addresses. So that's duplicate address detection.
TechKnowSurge builds IT and cybersecurity professionals through hands-on, concept-first training built around real understanding — not memorization. Free interactive tools, structured programs, and 25+ years of real-world experience, all in one place.
Explore free tools and programs →