Table of ContentsLibraryView in Frames

How DAD works with Data ONTAP

Before assigning unicast addresses to an interface, Duplicate Address Detection (DAD) is performed on the addresses to ensure that the addresses configured on a link are unique. DAD is performed on all unicast addresses (both manually and automatically configured). When the DAD procedure fails for an address, the address is not configured.

DAD prevents multiple nodes from using the same address simultaneously. DAD is performed on all unicast addresses of a network interface, provided the value of the dad_attempts option for that interface is greater than zero.

To check the uniqueness of an address, a node sends Neighbor Solicitation messages, each separated by an interval of 1 second. The number of Neighbor Solicitation messages sent is equal to the value of the dad_attempts option for the network interface.

An address on which the DAD procedure is applied remains in the tentative state until the procedure has been successfully completed. The target address of the Neighbor Solicitation message is set to the address that is being checked and remains in the tentative state. If the node receives a valid Neighbor Advertisement message with the tentative address as target, the tentative address is not unique. The tentative address is marked duplicated and cannot be used for any data communication.

If DAD fails for a link-local address, the network interface is configured to the down status.

If a node does not receive a Neighbor Advertisement message after sending the Neighbor Solicitation messages for a tentative address, the address is considered unique. When an address is determined to be unique, it is assigned to the network interface.

Example: Duplicated unicast address

The following example shows DAD failure for a unicast address, where the address state changes from tentative to duplicated.
system1> ifconfig e0b 2001:0db8::99
system1> ifconfig e0b
e0b: flags=0x2508866<BROADCAST,RUNNING,MULTICAST,TCPCKSUM> mtu 1500
inet6 2001:0db8::99 prefixlen 64 tentative 
ether 00:a0:98:08:64:07 (auto-1000t-fd-cfg_down) flowcontrol full
system1> Wed Aug 6 09:24:44 GMT [system1:netif.linkUp:info]: Ethernet e0b: Link up.
Wed Aug 6 09:24:44 GMT [system1:netinet6.nbr.dad.dtcDupAdr:error]: e0b: DAD detected duplicate IPv6
address 2001:0db8::99: %d NS, 0 NA.
Wed Aug 6 09:24:44 GMT [system1:netinet6.nbr.dad.complete:error]: e0b: DAD complete for 2001:0db8::99- duplicate found.
Wed Aug 6 09:24:44 GMT [system1:netinet6.nbr.manl.intvtnReq:error]: e0b: Manual intervention required.
Wed Aug 6 09:24:45 GMT [system1:netinet6.nbr.dadStrc.notFnd1:error]: nd6_dad_timer: DAD structure is not found.
system1> ifconfig e0b
e0b: flags=0x2d48867<UP,BROADCAST,RUNNING,MULTICAST,TCPCKSUM,LINK_UP> mtu 1500
inet6 2001:0db8::99 prefixlen 64 duplicated 
inet6 fe80::2a0:98ff:fe08:6407 prefixlen 64 scopeid 0x2 autoconf
ether 00:a0:98:08:64:07 (auto-1000t-fd-up) flowcontrol full

Example: Duplicated link-local address

The following example shows DAD failure for a link-local address, where the network interface is configured to the down status.
system1> ifconfig e0b up
system1> Tue Jul 22 16:46:38 GMT [system1: netif.linkUp:info]: Ethernet e0b: Link up.
Tue Jul 22 16:46:39 GMT [system1: netinet6.nbr.dad.dtcDupAdr:error]: e0b: DAD detected duplicate IPv6 address fe80:0002::02a0:98ff:fe08:6407: %d NS, 0 NA.
Tue Jul 22 16:46:39 GMT [system1: netinet6.nbr.dad.complete:error]: e0b: DAD complete for fe80:0002::02a0:98ff:fe08:6407 - duplicate found.
Tue Jul 22 16:46:39 GMT [system1: netinet6.nbr.manl.intvtnReq:error]: e0b: Manual intervention required.
Tue Jul 22 16:46:39 GMT [system1: netif.linkInfo:info]: Ethernet e0b: Link configured down.
Tue Jul 22 16:46:40 GMT [system1: netinet6.nbr.dadStrc.notFnd1:error]: nd6_dad_timer: DAD structure is not found.
system1> ifconfig -a
e0a: flags=0x2508866<BROADCAST,RUNNING,MULTICAST,TCPCKSUM> mtu 1500
        ether 00:a0:98:08:64:06 (auto-1000t-fd-cfg_down) flowcontrol full
e0b: flags=0x2508866<BROADCAST,RUNNING,MULTICAST,TCPCKSUM> mtu 1500
        ether 00:a0:98:08:64:07 (auto-1000t-fd-cfg_down) flowcontrol full
e0c: flags=0x2508866<BROADCAST,RUNNING,MULTICAST,TCPCKSUM> mtu 1500
        ether 00:a0:98:08:64:08 (auto-1000t-fd-cfg_down) flowcontrol full
e0d: flags=0x2508866<BROADCAST,RUNNING,MULTICAST,TCPCKSUM> mtu 1500
        ether 00:a0:98:08:64:09 (auto-1000t-fd-cfg_down) flowcontrol full
e0e: flags=0x2508866<BROADCAST,RUNNING,MULTICAST,TCPCKSUM> mtu 1500
        ether 00:a0:98:08:64:0a (auto-1000t-fd-cfg_down) flowcontrol full
e0f: flags=0x2508866<BROADCAST,RUNNING,MULTICAST,TCPCKSUM> mtu 1500
        ether 00:a0:98:08:64:0b (auto-1000t-fd-cfg_down) flowcontrol full
lo: flags=0x1948049<UP,LOOPBACK,RUNNING,MULTICAST,TCPCKSUM,LINK_UP,UDPCKSUM> mtu 8160
        inet 127.0.0.1 netmask 0xff000000 broadcast 127.0.0.1
        inet6 fe80::1 prefixlen 64 scopeid 0x7 autoconf
        inet6 ::1 prefixlen 128
        ether 00:00:00:00:00:00 (VIA Provider)
Related tasks
Specifying the number of DAD attempts