IPv6 Stateless Address Autoconfiguration
obsoleted by
- rfc-4862 — IPv6 Stateless Address Autoconfiguration
obsoletes
- rfc-1971 — IPv6 Stateless Address Autoconfiguration
Extracted elements (30)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
A node MUST NOT respond to a Neighbor Solicitation for a tentative address.
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.
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.
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.
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.
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.
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.
If the sum of the prefix length and interface identifier length does not equal 128 bits, the Prefix Information option MUST be ignored.
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.
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.
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.
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.
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.
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.
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].
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.
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.
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.
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).