diff --git a/man/systemd.network.xml b/man/systemd.network.xml index d61e3472c1..a88b6a447d 100644 --- a/man/systemd.network.xml +++ b/man/systemd.network.xml @@ -308,18 +308,38 @@ IPv6Token= - Specifies an optional address generation mechanism and an optional address prefix. If - the mechanism is present, the two parts must be separated with a colon - type:prefix. The - address generation mechanism may be either prefixstable or - static. If not specified, static is assumed. When - set to prefixstable a method for generating IPv6 Interface Identifiers to - be used with IPv6 Stateless Address Autocon figuration (SLAAC). See - RFC 7217. When IPv6 address is set, - indicates the 64-bit interface part of SLAAC IPv6 addresses for this link. + Specifies an optional address generation mode and a required IPv6 address. If + the mode is present, the two parts must be separated with a colon + mode:address. The + address generation mode may be either prefixstable or + static. If not specified, static is assumed. + + When the mode is set to static, or unspecified, the lower bits of + the supplied address are combined with the upper bits of a prefix received in a Router Advertisement + message to form a complete address. Note that if multiple prefixes are received in an RA message, or in + multiple RA messages, addresses will be formed from each of them using the supplied address. This + mode implements SLAAC but uses a static interface identifier instead of an identifier generated + using the EUI-64 algorithm. Because the interface identifier is static, if Duplicate Address Detection + detects that the computed address is a duplicate (in use by another node on the link), then this + mode will fail to provide an address for that prefix. - Note that the token is only ever used for SLAAC, and not for DHCPv6 addresses, even in - the case DHCP is requested by router advertisement. By default, the token is autogenerated. + Note that if multiple static IPv6Token variables are supplied, only the first + one will be used to generate addresses. + + When the mode is set to prefixstable the RFC 7217 algorithm for generating + interface identifiers will be used, but only when a prefix received in an RA message matches the supplied address. + See RFC 7217. Prefix matching will be attempted + against each prefixstable IPv6Token variable provided in the configuration; if a received + prefix does not match any of the provided addresses, then the EUI-64 algorithm will be used to form + an interface identifier for that prefix. This mode is also SLAAC, but with a potentially stable interface + identifier which does not directly map to the interface's hardware address. + + Note that the prefixstable algorithm includes both the interface's name and + MAC address in the hash used to compute the interface identifier, so if either of those are changed the resulting + interface identifier (and address) will change, even if the prefix received in the RA message has not changed. + + Note that if multiple prefixstable IPv6Token variables are supplied with addresses that + match a prefix received in an RA message, only the first one will be used to generate addresses.