rfc-2462

IPv6 Stateless Address Autoconfiguration

S. Thomson, T. Narten
date1998-12 streamIETF areaint wgipngwg statusDRAFT STANDARD pages25 canonicalhttps://www.rfc-editor.org/rfc/rfc2462 doi10.17487/RFC2462 errataview
This document specifies the steps a host takes in deciding how to autoconfigure its interfaces in IP version 6. [STANDARDS-TRACK]

obsoleted by

obsoletes

Extracted elements (30)

design-rationale §4

A host may generate its link-local address and verify its uniqueness in parallel with waiting for a Router Advertisement to speed up the total autoconfiguration time, since routers may delay responding to Router Solicitations.

ip, v6ops

design-rationale §4.1

Address lifetimes are divided into preferred and deprecated phases to give upper layers advance warning that an address will become invalid, allowing applications to migrate to new addresses gracefully before the valid lifetime expires—specifically designed to support site renumbering.

ip, v6ops

design-rationale §5.4

Addresses formed from the same interface identifier share a uniqueness property: if the link-local address is unique, all other addresses derived from the same identifier are also unique. This allows DAD to skip per-address checks for stateless addresses after the link-local address passes.

ip, v6ops

design-rationale §1

Autoconfiguration applies only to hosts, not routers, because routers need more controlled configuration. Routers are nonetheless expected to generate link-local addresses and run DAD on all addresses using the same mechanism.

ip, v6ops

design-rationale §5.5.3

The prefix lifetime update rules in section 5.5.3 (clamping stored lifetime to two hours when a short-lifetime advertisement is received unauthenticated) were added specifically to counter a denial-of-service attack where bogus advertisements with very short Valid Lifetimes could prematurely expire all of a node's addresses.

ip, v6ops, security

interoperability-note §5.6

If inconsistent configuration information is received from multiple sources (stateless and stateful protocols), hosts accept the union of all information; the most recently obtained values always take precedence.

ip, v6ops

interoperability-note §9

Multicast loopback suppression at the hardware level can prevent DAD from working correctly. Implementations must not discard received packets solely because the source link-layer address matches the receiving interface, as this would discard legitimate DAD messages from nodes sharing the same link-layer address.

ip, v6ops

interoperability-note §5.2

When the ManagedFlag is TRUE, OtherConfigFlag is implicitly TRUE as well. It is not valid for a host to use stateful address autoconfiguration to request addresses only without also accepting other configuration information.

ip, v6ops

normative-requirement §5.5.4 SHOULD NOT

A deprecated address SHOULD continue to be used as a source address in existing communications but SHOULD NOT be used in new communications if an alternate non-deprecated address of sufficient scope is available.

ip, v6ops

normative-requirement §5.5.3 MUST NOT

A host MUST NOT reinvoke stateful address configuration if it is already participating in the stateful protocol as a result of an earlier advertisement, even if the M or O flag value remains TRUE.

ip, v6ops

normative-requirement §5.1 MUST

A node MUST allow the DupAddrDetectTransmits variable to be configured by system management for each multicast interface. A value of zero disables Duplicate Address Detection; the default is 1.

ip, v6ops

normative-requirement §5.4.3 MUST NOT

A node MUST NOT respond to a Neighbor Solicitation for a tentative address.

ip, v6ops

normative-requirement §5.4.5 MUST NOT

A tentative address determined to be a duplicate MUST NOT be assigned to an interface, and the node SHOULD log a system management error. If the address is a link-local address formed from an interface identifier, the interface SHOULD be disabled.

ip, v6ops

normative-requirement §5.4.2 MUST

An interface MUST receive and process datagrams sent to the all-nodes multicast address or solicited-node multicast address of the tentative address while delaying transmission of the initial Neighbor Solicitation.

ip, v6ops

normative-requirement §5.5.4 MUST NOT

An invalid address MUST NOT be used as a source address in outgoing communications and MUST NOT be recognized as a destination on a receiving interface.

ip, v6ops

normative-requirement §5.4.2 MUST

Before sending a Neighbor Solicitation for DAD, an interface MUST join the all-nodes multicast address and the solicited-node multicast address of the tentative address.

ip, v6ops

normative-requirement §5.4 MUST

Duplicate Address Detection MUST take place on all unicast addresses regardless of whether they are obtained through stateful, stateless, or manual configuration. DAD MUST NOT be performed on anycast addresses.

ip, v6ops

normative-requirement §5.5.2 MUST

If a link has no routers, a host MUST attempt to use stateful autoconfiguration to obtain addresses and other configuration information; by default this invocation SHOULD be enabled.

ip, v6ops

normative-requirement §5.5.3 MUST

If the sum of the prefix length and interface identifier length does not equal 128 bits, the Prefix Information option MUST be ignored.

ip, v6ops

normative-requirement §5.5.4 MUST

IP and higher layers (e.g., TCP, UDP) MUST continue to accept datagrams destined to a deprecated address since a deprecated address is still a valid address for the interface.

ip, v6ops, tcp

protocol-element §5.3

A link-local address is formed by prepending the well-known prefix FE80::0 to the interface identifier. Link-local addresses have an infinite preferred and valid lifetime and are never timed out.

ip, v6ops

protocol-element §4

Router Advertisements carry two autoconfiguration flags: the M bit (managed address configuration) indicating whether to use stateful autoconfiguration for addresses, and the O bit (other stateful configuration) indicating whether to use it for non-address parameters.

ip, v6ops

protocol-element §4

Router Advertisements contain Prefix Information options with a subnet prefix, an autonomous address-configuration flag, and preferred/valid lifetime values used to generate and expire stateless addresses.

ip, v6ops

protocol-element §5.5.3

Stateless address autoconfiguration combines a router-advertised prefix with an interface identifier to form a 128-bit IPv6 address. The interface identifier fills the right-most N bits, and the prefix fills the remaining 128-N bits.

ip, v6ops

protocol-element §5.1

The DupAddrDetectTransmits node variable controls the number of consecutive Neighbor Solicitations sent during DAD. The RetransTimer variable (from [DISCOVERY]) controls the delay between consecutive solicitations and the wait after the last one.

ip, v6ops

security-consideration §6

DAD is vulnerable to denial-of-service attacks: any node can respond to Neighbor Solicitations for a tentative address, causing the victim to reject the address as a duplicate. This can be mitigated by authenticating Neighbor Discovery packets via IPsec [RFC2402].

ip, security, v6ops

security-consideration §5.5.3

Prefix advertisements with very short Valid Lifetimes from unauthenticated sources can cause premature expiry of node addresses. The 2-hour minimum lifetime clamping rule (section 5.5.3) mitigates this attack; authenticated advertisements via IPsec bypass the restriction.

ip, security, v6ops

security-consideration §6

Stateless autoconfiguration allows a host to configure an address and start communicating without registering or authenticating with the local site, enabling unauthorized network access; this threat is inherent to the Internet architecture.

ip, security, v6ops

state-machine §2

An address transitions through the states: tentative (DAD in progress) → preferred (DAD passed, use unrestricted) → deprecated (preferred lifetime expired, discouraged for new connections) → invalid (valid lifetime expired, must not be used). Triggered by DAD completion and lifetime expiry events.

ip, v6ops

wire-format §5.5.3

A stateless autoconfigured address is 128 bits: the high-order (128-N) bits are the advertised link prefix, and the low-order N bits are the interface identifier (typically 64 bits, EUI-64 based).

ip, v6ops