IPv6 Stateless Address Autoconfiguration
obsoleted by
- rfc-2462 — IPv6 Stateless Address Autoconfiguration
Extracted elements (26)
A host may generate its link-local address (and verify uniqueness) in parallel with waiting for a Router Advertisement, because a router may delay responding to a Router Solicitation for a few seconds. Performing the two steps serially would significantly increase total autoconfiguration time.
Address leasing with preferred and deprecated lifetime states facilitates graceful site renumbering. Dividing valid addresses into preferred and deprecated categories signals to upper layers that an address may become invalid soon, allowing applications to transition to new addresses without breaking existing TCP connections.
For addresses generated via stateless autoconfiguration from the same interface token, it is sufficient to test only the link-local address for uniqueness. Because uniqueness is determined by the interface token portion and prefixes are assumed correctly assigned, all or none of the addresses from the same token will be duplicates.
Stateless autoconfiguration is designed to require no manual configuration of hosts and minimal router configuration, with no additional servers. Small sites can achieve plug-and-play connectivity using link-local addresses formed by appending the interface token to the well-known link-local prefix, without any infrastructure.
The initial Neighbor Solicitation during DAD SHOULD be delayed by a random interval between 0 and MAX_RTR_SOLICITATION_DELAY to alleviate congestion when many nodes start simultaneously (e.g., after a power failure) and to avoid race conditions when multiple nodes solicit for the same address.
If an interface suppresses received multicast packets whose link-layer source address matches the interface's own address (a common loopback suppression heuristic), DAD will fail when another node shares the same link-layer address. The implementation must not filter packets solely on matching link-layer source address during DAD.
When both stateless and stateful autoconfiguration are active simultaneously, configuration parameters such as MTU and hop limit may be received from multiple sources with inconsistent values. Hosts accept the union of all information; the most recently obtained values always take precedence. Inconsistency is not a fatal error.
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 flag changes from FALSE to TRUE again.
A node MUST allow the DupAddrDetectTransmits variable to be configured by system management for each multicast interface. Autoconfiguration applies to multicast-capable interfaces only.
A node MUST NOT respond to a Neighbor Solicitation for a tentative address. If a Neighbor Solicitation for a tentative address is received before one has been sent, or if more solicitations are received than expected given loopback semantics, the tentative address is a duplicate.
A node MUST silently discard any Neighbor Solicitation or Advertisement that does not pass the validity checks specified in the Neighbor Discovery specification (RFC 1970).
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 duplicate is a link-local address formed from an interface token, the interface SHOULD be disabled.
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. The solicitation uses the unspecified address as IP source and the solicited-node multicast address as destination.
Duplicate Address Detection MUST be performed on all unicast addresses prior to assigning them to an interface when DupAddrDetectTransmits is greater than zero, regardless of whether the address was obtained via stateful, stateless, or manual configuration.
Duplicate Address Detection MUST NOT be performed on anycast addresses.
If a link has no routers, a host MUST attempt stateful autoconfiguration to obtain addresses and other configuration information. The invocation of stateful autoconfiguration in this case MAY be disabled by implementation, but SHOULD be enabled by default.
If the sum of the prefix length and interface token length from a Prefix Information option does not equal 128 bits, the option MUST be ignored. An implementation MAY log a system management error.
The IP layer MUST continue to accept datagrams destined to a deprecated address, as it remains a valid address. An invalid address MUST NOT be used as a source in outgoing communications and MUST NOT be recognized as a destination on a receiving interface.
A link-local address is formed by prepending the well-known link-local prefix FE80::0 to the interface token. The interface token replaces the right-most N zero bits of the prefix; if the token exceeds 118 bits, autoconfiguration fails. Link-local addresses have infinite preferred and valid lifetimes.
A tentative address is one undergoing Duplicate Address Detection. An interface must accept Neighbor Solicitation and Advertisement messages targeting a tentative address but silently discard all other packets addressed to it. A tentative address is not considered assigned to the interface.
DupAddrDetectTransmits is a per-interface node configuration variable specifying the number of consecutive Neighbor Solicitations sent during Duplicate Address Detection. A value of zero disables DAD; the default is 1, but may be overridden by a link-type specific document.
Global and site-local addresses are formed by appending the N-bit interface token to the (128-N)-bit link prefix obtained from a Prefix Information option in a Router Advertisement. The sum of prefix length and interface token length must equal exactly 128 bits.
ManagedFlag and OtherConfigFlag are per-interface host variables copied from the M and O bits of the most recently received Router Advertisement. ManagedFlag controls whether addresses are obtained via stateful autoconfiguration; OtherConfigFlag controls whether other configuration parameters are obtained statefully. Both start FALSE.
Duplicate Address Detection is vulnerable to denial-of-service attacks: any node can respond to Neighbor Solicitations for a tentative address, causing the legitimate node to reject the address as a duplicate. This attack is analogous to Neighbor Discovery spoofing and can be mitigated by authenticating Neighbor Discovery packets per RFC 1826.
Stateless address autoconfiguration allows a host to connect, configure an address, and communicate without registering or authenticating with the local site. While this permits unauthorized users to join the network, the threat is inherent in the Internet architecture since any node with physical attachment can generate a usable address.
IPv6 addresses progress through states: tentative (DAD in progress) → preferred (unrestricted use) → deprecated (discouraged for new communications, preferred lifetime expired) → invalid (valid lifetime expired, must not be used). A preferred address becomes deprecated when its preferred lifetime expires; a deprecated address becomes invalid when its valid lifetime expires.