rfc-4429

Optimistic Duplicate Address Detection (DAD) for IPv6

N. Moore
date2006-04 streamIETF areaint wgipv6 statusPROPOSED STANDARD pages17 canonicalhttps://www.rfc-editor.org/rfc/rfc4429 doi10.17487/RFC4429 errataview
Optimistic Duplicate Address Detection is an interoperable modification of the existing IPv6 Neighbor Discovery (RFC 2461) and Stateless Address Autoconfiguration (RFC 2462) processes. The intention is to minimize address configuration delays in the successful case, to reduce disruption as far as possible in the failure case, and to remain interoperable with unmodified hosts and routers. [STANDARDS-TRACK]

updated by

Extracted elements (23)

design-rationale §2.2

Neighbor Solicitations are never sent from an Optimistic Address because NSes include a Source Link-Layer Address Option (SLLAO), which would update neighbors' Neighbor Cache entries and could disrupt the rightful owner of the address in a collision scenario. DAD NSes use the unspecified address (::) and omit the SLLAO, so they are safe.

ip, v6ops

design-rationale §2.1

Optimistic addresses are treated equivalently to Deprecated addresses by default, indicating they are available but should not be preferred. This reuse of the Deprecated semantics allows Default Address Selection (RFC 3484) to prefer other addresses without requiring a new selection rule; implementations can simply set the Deprecated flag alongside the Optimistic flag.

ip, v6ops

design-rationale §A.1

Optimistic DAD is justified by the extremely low probability of address collision when using randomly or hash-generated Interface Identifiers from a 2^62-element space. Birthday-paradox analysis shows collision probability below 5.4e-8 even for networks of 500,000 nodes, making it safe to begin using an address before DAD completes.

ip, v6ops

design-rationale §2.2

The Override flag (O=0) is cleared in all Neighbor Advertisements sent from an Optimistic Address. This prevents neighbors from overriding existing NC entries with the Optimistic Node's link-layer address; the mechanism reuses the existing Override flag already defined in RFC 2461 for Proxy Neighbor Advertisement.

ip, v6ops

design-rationale §2.3

When an Optimistic Node cannot reach a neighbor directly (because it cannot send an NS), it forwards packets via its default router and relies on the router to issue an ICMP Redirect with a Target Link-Layer Address Option (TLLAO). This populates the ON's Neighbor Cache without requiring a direct NS from the Optimistic Address.

ip, v6ops

interoperability-note §2.4

If a node with only Optimistic Addresses cannot obtain the router's link-layer address (because the RA omitted the SLLAO and the node cannot send an RS with SLLAO or an NS), the node is unable to communicate until at least one address is no longer Optimistic.

ip, v6ops

interoperability-note §4.4

Optimistic DAD behavior is dependent on router support: the router must include SLLAOs in Router Advertisements and must be willing to redirect traffic on behalf of the Optimistic Node. Where a router does not behave in this way, Optimistic DAD inherently reverts to Standard DAD behavior.

ip, v6ops

interoperability-note §4.3

Optimistic DAD is designed to be fully interoperable with Standard Nodes (compliant with RFC 2461 and RFC 2462). Once an Optimistic Address completes DAD it behaves identically to a normal address; interoperation issues only arise during the Optimistic phase itself, and the protocol ensures Standard Nodes' Neighbor Caches are not corrupted.

ip, v6ops

normative-requirement §3.3 MAY

A host MAY configure a new address as Optimistic. A host that does not know the SLLAO of its router SHOULD NOT configure a new address as Optimistic. A router SHOULD NOT configure an Optimistic Address.

ip, v6ops

normative-requirement §3.3 MUST NOT

A node MUST NOT reply to a Neighbor Solicitation for an Optimistic Address that was sent from the unspecified address (::). Receipt of such an NS indicates an address collision (another node is also performing DAD for the same address), and the address MUST be deconfigured as specified in RFC 2462 for Tentative addresses.

ip, v6ops

normative-requirement §3.2 MUST NOT

A node MUST NOT send a Router Solicitation with a Source Link-Layer Address Option (SLLAO) from an Optimistic Address. Router Solicitations SHOULD be sent from a non-Optimistic or the Unspecified Address; they MAY be sent from an Optimistic Address only if the SLLAO is omitted.

ip, v6ops

normative-requirement §3.2 MUST NOT

A node MUST NOT use an Optimistic Address as the source address of a Neighbor Solicitation. This prevents the SLLAO included in NSes from disrupting neighbors' Neighbor Cache entries for an address that may legitimately belong to another node.

ip, v6ops

normative-requirement §3.3 MUST

A node MUST reply to a Neighbor Solicitation for an Optimistic Address sent from a unicast address, but the Neighbor Advertisement reply MUST have the Override flag cleared (O=0) to prevent overriding the NC entry of the legitimate owner of the address in the case of a collision.

ip, v6ops

normative-requirement §3.2 MUST

If an Optimistic Node cannot determine the router's SLLAO without violating the rules above (no NS, no RS with SLLAO), it MUST leave the address Tentative until DAD completes rather than using it as an Optimistic Address.

ip, v6ops

normative-requirement §3.1 SHOULD

Optimistic DAD SHOULD only be used when the implementation is aware that the address is based on a most-likely-unique interface identifier, such as one derived from a hardware address (RFC 2464), generated randomly (RFC 3041), produced by a well-distributed hash (RFC 3972), or assigned by DHCPv6. Optimistic DAD SHOULD NOT be used for manually entered addresses.

ip, v6ops

normative-requirement §3.3 MUST

The host MUST join the all-nodes multicast address and the solicited-node multicast address of the Tentative address, and SHOULD NOT delay before sending Neighbor Solicitation messages, eliminating the RetransTimer delay that is the primary motivation for Optimistic DAD.

ip, v6ops

normative-requirement §3.3 MUST

The Optimistic Address is configured and available for use on the interface immediately upon beginning DAD, and MUST be flagged as 'Optimistic' to distinguish it from Preferred and Deprecated addresses.

ip, v6ops

normative-requirement §3.2 MUST NOT

When a node has a unicast packet to send from an Optimistic Address to a neighbor whose link-layer address is unknown, it MUST NOT perform Address Resolution. It SHOULD forward the packet to a default router (relying on ICMP Redirect), or otherwise SHOULD buffer the packet until DAD completes.

ip, v6ops

protocol-element §1.3

Optimistic address is a new address state introduced by this memo: an address assigned to an interface and available for use (subject to restrictions) while its uniqueness on a link is being verified via DAD. It differs from Tentative (not usable) and Preferred (unrestricted).

ip, v6ops

security-consideration §5

An Optimistic Node can inject IP packets that appear to originate from an address it does not yet legitimately own, effectively spoofing the legitimate holder. This may cause errors or operational problems at the receiving end, though upper-layer protocols are generally expected to handle such duplicate or misdirected packets robustly.

security, ip

security-consideration §5

Optimistic DAD does not significantly increase existing Neighbor Discovery or SLAAC security concerns. Secure Neighbor Discovery (SEND, RFC 3971) provides protection against ND threats and introduces no additional attack surface when combined with Optimistic DAD.

security, ip

security-consideration §5

There are scenarios where Optimistic DAD can transiently create incorrect Neighbor Cache entries. For example, if a router sends an NS for an address and the Optimistic Node responds before the legitimate owner, the router may forward queued packets to the wrong host. These conditions are expected to be short-lived.

security, ip

state-machine §3.3

An address transitions through states: Tentative (DAD in progress, not usable) → Optimistic (DAD in progress, usable with restrictions, entered by choice at DAD start) → Preferred or Deprecated (DAD complete, per RFC 2462 lifetime rules). If a collision is detected (NS from :: received, or NA received from collidee), the Optimistic address is immediately deconfigured.

ip, v6ops