Duplicate address detection (DAD) is used to verify that an IPv6 address is unique on the LAN before the address is assigned to a physical interface. This KB explains on how IPv6 DAD works on Junos devices.
The DAD process is as below. When an IPv6 address is configured on an interface, DAD is started.
- The whole process takes around 10 secs.
- The interface sends 3 DAD NS with an interval of 3 secs.
- The address state shall be "Tentative" during this time (check "show interfaces" output).
- If no response for all 3 NS, then DAD is complete and the IPv6 address becomes available.
If same IPv6 address is configured on both interfaces of R1 and R2, only the device where address configured second reports DAD error.
R1 ---- R2
1. IPv6 address A configured on R1.
2. IPv6 address A configured on R2.
In this scenario, only R2 reports duplicate address and it would stop using the address (the address shall be marked as duplicate and can be verified in "show interfaces" output). R1 will not report any error and it can continue functioning normally using address A.
#### Test ####
Test topology:
PTX10008 et-2/0/0 --------------- et-0/0/0 MX204
Step 0. Both interfaces become Up without IPv6 address configured.
{master}[edit]
User@PTX10008-re0# show interfaces
Dec 07 19:46:11
User@PTX10008-re0# set interfaces et-2/0/0 speed 100g
Dec 07 19:46:20
User@PTX10008-re0# show |compare
Dec 07 19:46:25
[edit]
+ interfaces {
+ et-2/0/0 {
+ speed 100g;
+ }
User@PTX10008-re0# commit
Dec 07 19:46:28
re0:
configuration check succeeds
re1:
commit complete
User@MX204# show interfaces
Dec 07 19:47:12
{master}
User@PTX10008-re0> show interfaces et-2/0/0 terse
Dec 07 19:47:29
Interface Admin Link Proto Local Remote
et-2/0/0 up up
et-2/0/0.16386 up up multiservice
User@MX204> show interfaces et-0/0/0 terse
Dec 07 19:47:44
et-0/0/0 up up
et-0/0/0.16386 up up
Step 1. IPv6 address is configured on PTX10008(first device).
User@PTX10008-re0# set interfaces et-2/0/0.0 family inet6 address 2001:db8:abe:21:1/64
Dec 07 19:48:25
Dec 07 19:49:00
[edit interfaces et-2/0/0]
+ unit 0 {
+ family inet6 {
+ address 2001:db8:abe:21::1/64;
Dec 07 19:49:04
User@PTX10008-re0> show interfaces et-2/0/0 extensive |match "Duplicate|Tentative" |refresh 2
---(refreshed at 2023-12-07 19:48:38 IST)---
---(refreshed at 2023-12-07 19:48:40 IST)---
---(refreshed at 2023-12-07 19:48:42 IST)---
---(refreshed at 2023-12-07 19:48:44 IST)---
---(refreshed at 2023-12-07 19:48:46 IST)---
---(refreshed at 2023-12-07 19:48:48 IST)---
---(refreshed at 2023-12-07 19:48:50 IST)---
---(refreshed at 2023-12-07 19:48:52 IST)---
---(refreshed at 2023-12-07 19:48:54 IST)---
---(refreshed at 2023-12-07 19:48:56 IST)---
---(refreshed at 2023-12-07 19:48:58 IST)---
---(refreshed at 2023-12-07 19:49:00 IST)---
---(refreshed at 2023-12-07 19:49:02 IST)---
---(refreshed at 2023-12-07 19:49:04 IST)---
---(refreshed at 2023-12-07 19:49:06 IST)---
---(refreshed at 2023-12-07 19:49:08 IST)---
INET6 Address Flags: Tentative
---(refreshed at 2023-12-07 19:49:10 IST)---
---(refreshed at 2023-12-07 19:49:12 IST)---
---(refreshed at 2023-12-07 19:49:14 IST)---
---(refreshed at 2023-12-07 19:49:16 IST)---
---(refreshed at 2023-12-07 19:49:18 IST)--- <<---- Tentative is over on PTX10008
---(refreshed at 2023-12-07 19:49:20 IST)---
---(refreshed at 2023-12-07 19:49:22 IST)---
User@MX204> show interfaces et-0/0/0 extensive |match "Duplicate|Tentative" |refresh 2
---(refreshed at 2023-12-07 19:49:09 IST)---
---(refreshed at 2023-12-07 19:49:11 IST)---
---(refreshed at 2023-12-07 19:49:13 IST)---
---(refreshed at 2023-12-07 19:49:15 IST)---
---(refreshed at 2023-12-07 19:49:17 IST)---
---(refreshed at 2023-12-07 19:49:19 IST)---
---(refreshed at 2023-12-07 19:49:21 IST)---
---(refreshed at 2023-12-07 19:49:23 IST)---
---(refreshed at 2023-12-07 19:49:25 IST)---
Step 2. Secondly the same IPv6 address is configured on MX204 after Tentative is over on PTX10008.
DAD is detected only on MX204(second device).
User@MX204# set interfaces et-0/0/0.0 family inet6 address 2001:db8:abe:21::1/64
Dec 07 19:52:14
User@MX204# show |compare
Dec 07 19:52:18
+ et-0/0/0 {
User@MX204# commit
Dec 07 19:52:22
---(refreshed at 2023-12-07 19:51:33 IST)---
---(refreshed at 2023-12-07 19:51:35 IST)---
---(refreshed at 2023-12-07 19:51:37 IST)---
---(refreshed at 2023-12-07 19:51:39 IST)---
---(refreshed at 2023-12-07 19:51:41 IST)---
---(refreshed at 2023-12-07 19:51:43 IST)---
---(refreshed at 2023-12-07 19:51:45 IST)---
---(refreshed at 2023-12-07 19:51:47 IST)---
---(refreshed at 2023-12-07 19:51:49 IST)---
---(refreshed at 2023-12-07 19:51:51 IST)---
---(refreshed at 2023-12-07 19:51:53 IST)---
---(refreshed at 2023-12-07 19:51:55 IST)---
---(refreshed at 2023-12-07 19:51:57 IST)---
---(refreshed at 2023-12-07 19:51:59 IST)---
---(refreshed at 2023-12-07 19:52:01 IST)---
---(refreshed at 2023-12-07 19:52:03 IST)---
---(refreshed at 2023-12-07 19:52:05 IST)---
---(refreshed at 2023-12-07 19:52:07 IST)---
---(refreshed at 2023-12-07 19:52:09 IST)---
---(refreshed at 2023-12-07 19:52:11 IST)---
---(refreshed at 2023-12-07 19:52:13 IST)---
---(refreshed at 2023-12-07 19:52:15 IST)---
---(refreshed at 2023-12-07 19:52:17 IST)---
---(refreshed at 2023-12-07 19:52:19 IST)---
---(refreshed at 2023-12-07 19:52:21 IST)---
---(refreshed at 2023-12-07 19:52:23 IST)---
---(refreshed at 2023-12-07 19:52:25 IST)---
---(refreshed at 2023-12-07 19:52:27 IST)---
---(refreshed at 2023-12-07 19:52:29 IST)---
---(refreshed at 2023-12-07 19:52:31 IST)---
---(refreshed at 2023-12-07 19:52:33 IST)---
---(refreshed at 2023-12-07 19:52:35 IST)---
---(refreshed at 2023-12-07 19:52:37 IST)---
---(refreshed at 2023-12-07 19:52:39 IST)---
---(refreshed at 2023-12-07 19:52:41 IST)---
---(refreshed at 2023-12-07 19:52:43 IST)---
---(refreshed at 2023-12-07 19:52:45 IST)---
---(refreshed at 2023-12-07 19:52:47 IST)---
---(refreshed at 2023-12-07 19:51:30 IST)---
---(refreshed at 2023-12-07 19:51:32 IST)---
---(refreshed at 2023-12-07 19:51:34 IST)---
---(refreshed at 2023-12-07 19:51:36 IST)---
---(refreshed at 2023-12-07 19:51:38 IST)---
---(refreshed at 2023-12-07 19:51:40 IST)---
---(refreshed at 2023-12-07 19:51:42 IST)---
---(refreshed at 2023-12-07 19:51:44 IST)---
---(refreshed at 2023-12-07 19:51:46 IST)---
---(refreshed at 2023-12-07 19:51:48 IST)---
---(refreshed at 2023-12-07 19:51:50 IST)---
---(refreshed at 2023-12-07 19:51:52 IST)---
---(refreshed at 2023-12-07 19:51:54 IST)---
---(refreshed at 2023-12-07 19:51:56 IST)---
---(refreshed at 2023-12-07 19:51:58 IST)---
---(refreshed at 2023-12-07 19:52:00 IST)---
---(refreshed at 2023-12-07 19:52:02 IST)---
---(refreshed at 2023-12-07 19:52:04 IST)---
---(refreshed at 2023-12-07 19:52:06 IST)---
---(refreshed at 2023-12-07 19:52:08 IST)---
---(refreshed at 2023-12-07 19:52:10 IST)---
---(refreshed at 2023-12-07 19:52:12 IST)---
---(refreshed at 2023-12-07 19:52:14 IST)---
---(refreshed at 2023-12-07 19:52:16 IST)---
---(refreshed at 2023-12-07 19:52:18 IST)---
---(refreshed at 2023-12-07 19:52:20 IST)---
---(refreshed at 2023-12-07 19:52:22 IST)---
---(refreshed at 2023-12-07 19:52:24 IST)---
---(refreshed at 2023-12-07 19:52:26 IST)---
---(refreshed at 2023-12-07 19:52:28 IST)---
Addresses, Flags: Is-Default Is-Preferred Is-Primary Duplicate
INET6 Address Flags: Duplicate
---(refreshed at 2023-12-07 19:52:30 IST)---
---(refreshed at 2023-12-07 19:52:32 IST)---
---(refreshed at 2023-12-07 19:52:34 IST)---
---(refreshed at 2023-12-07 19:52:36 IST)---
---(refreshed at 2023-12-07 19:52:38 IST)---
---(refreshed at 2023-12-07 19:52:40 IST)---
---(refreshed at 2023-12-07 19:52:42 IST)---
---(refreshed at 2023-12-07 19:52:44 IST)---
---(refreshed at 2023-12-07 19:52:46 IST)---
*** messages ***
Dec 7 19:49:02.182 PTX10008-re0 mgd[10874]: UI_CMDLINE_READ_LINE: User 'User', command 'show interfaces et-2/0/0 extensive | match "Duplicate|Tentative" | refresh 2 '
Dec 7 19:49:04.238 PTX10008-re0 mgd[10874]: UI_CMDLINE_READ_LINE: User 'User', command 'show interfaces et-2/0/0 extensive | match "Duplicate|Tentative" | refresh 2 '
Dec 7 19:49:06.283 PTX10008-re0 mgd[10874]: UI_CMDLINE_READ_LINE: User 'User', command 'show interfaces et-2/0/0 extensive | match "Duplicate|Tentative" | refresh 2 '
Dec 7 19:49:08.339 PTX10008-re0 mgd[10874]: UI_CMDLINE_READ_LINE: User 'User', command 'show interfaces et-2/0/0 extensive | match "Duplicate|Tentative" | refresh 2 '
Dec 7 19:49:10.393 PTX10008-re0 mgd[10874]: UI_CMDLINE_READ_LINE: User 'User', command 'show interfaces et-2/0/0 extensive | match "Duplicate|Tentative" | refresh 2 '
Dec 7 19:49:16.562 PTX10008-re0 mgd[10874]: UI_CMDLINE_READ_LINE: User 'User', command 'show interfaces et-2/0/0 extensive | match "Duplicate|Tentative" | refresh 2 '
Dec 7 19:49:18.614 PTX10008-re0 mgd[10874]: UI_CMDLINE_READ_LINE: User 'User', command 'show interfaces et-2/0/0 extensive | match "Duplicate|Tentative" | refresh 2 '
Dec 7 19:51:33.532 PTX10008-re0 mgd[10874]: UI_CMDLINE_READ_LINE: User 'User', command 'show interfaces et-2/0/0 extensive | match "Duplicate|Tentative" | refresh 2 '
Dec 7 19:52:03.366 PTX10008-re0 mgd[10874]: UI_CMDLINE_READ_LINE: User 'User', command 'show interfaces et-2/0/0 extensive | match "Duplicate|Tentative" | refresh 2 '
Dec 7 19:52:27 MX204 kernel: et-0/0/0: DAD detected duplicate IPv6 address 2001:db8:abe:21::1: NS in/out=0/1, NA in=1, manual intervention required.
Dec 7 19:52:27 MX204 kernel: et-0/0/0: DAD detected duplicate IPv6 address 2001:db8:abe:21::1: from NA packet, neighbor link layer address is xx:xx:xx:xx:xx:xx
We need to wait for first device (PTX10008) DAD process to be over. Configure on second device only after first device is cleared from Tentative. When both devices have DAD going on simultaneously, we cannot be sure of which device gets marked as duplicate. Whomever receives the first DAD reply will mark its address as duplicated. So, it can be 1st or 2nd device, which is expected as both have equal probability. To avoid this race condition, we have to configure first device (PTX10008), then wait until "Tentative" state is removed on PTX10008, then configure second device (MX204).
2024-01-11 : Article Created
2026-06-11 : MAC address is corrected to xx:xx:xx:xx:xx:xx
PR1775981 added duplicate IPv4 address detection error on syslog and arpd trace on Junos OS Evolved platforms.
PR1775981 - [Junos OS Evolved] Duplicate IPv4 address detection error not logged on syslog