
Duplicate Address Detection is performed on unicast addresses prior
to assigning them to an interface whose DupAddrDetectTransmits
variable is greater than zero.
Duplicate Address Detection MUST
take
place on all unicast addresses, regardless of whether they are
obtained through stateful, stateless or manual configuration, with
the exception of the following cases:
|
Duplicate Address Detection MUST NOT be performed on anycast addresses. | |
|
Each individual unicast address SHOULD be tested for uniqueness. However, when stateless address autoconfiguration is used, address uniqueness is determined solely by the interface identifier, assuming that subnet prefixes are assigned correctly . But if a set of addresses formed from the same interface identifier, it is sufficient to check that the link- local address generated from the identifier is unique on the link. In this cases, the link-local address MUST be tested for uniqueness, and if no duplicate address is detected, an implementation MAY choose to skip Duplicate Address Detection for additional addresses derived from the same interface identifier. |
If a
duplicate address is discovered , the address cannot be assigned to the
interface. If the address is derived from an interface identifier, a new
identifier will need to be assigned to the interface, or all IP addresses for
the interface will need to be manually configured.
An address that the duplicate Address Detection Procedure is
applied is tentative until the procedure has completed
successfully. A tentative address is not considered "assigned
to an
interface" in the traditional sense. That is, the interface must
accept Neighbor Solicitation and Advertisement messages containing
the tentative address in the Target Address field, but processes
such
packets differently from those whose Target Address matches an
address assigned to the interface. Other packets addressed to the
tentative address should be silently discarded.
It should also be noted that Duplicate Address Detection must be
performed prior to assigning an address to an interface in order to
prevent multiple nodes from using the same address simultaneously.
If a node begins using an address in parallel with Duplicate
Address
Detection, and another node is already using the address, the node
performing Duplicate Address Detection will erroneously process
traffic intended for the other node, resulting in such possible
negative consequences as the resetting of open TCP connections.
The following subsections describe specific tests a node performs
to
verify an address's uniqueness. An address is considered
unique if
none of the tests indicate the presence of a duplicate address
within
RetransTimer milliseconds after having sent DupAddrDetectTransmits
Neighbor Solicitations. Once an address is determined to be unique,
it may be assigned to an interface.