0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Length | Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value (cont.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields:
-
Code:
-
8-bit identifier of the IPv6-Only Preferred option code as assigned by IANA: 108. The client includes the Code in the Parameter Request List in DHCPDISCOVER and DHCPREQUEST messages as described in Section 3.2.
-
Length:
-
8-bit unsigned integer. The length of the option, excluding the Code and Length Fields. The server MUST set the length field to 4. The client MUST ignore the IPv6-Only Preferred option if the length field value is not 4.
-
Value:
-
32-bit unsigned integer. The number of seconds for which the client should disable DHCPv4 (V6ONLY_WAIT configuration variable). If the server pool is explicitly configured with a V6ONLY_WAIT timer, the server MUST set the field to that configured value. Otherwise, the server MUST set it to zero. The client MUST process that field as described in Section 3.2.
The client never sets this field, as it never sends the full option but includes the option code in the Parameter Request List as described in Section 3.2.
A DHCPv4 client
SHOULD allow a device administrator to configure IPv6-only capability either for a specific interface (to indicate that the device is IPv6-only capable if connected to a NAT64 network via that interface) or for all interfaces. If only a specific interface is configured as IPv6-only capable, the DHCPv4 client
MUST NOT consider the host an IPv6-only-capable host for the purpose of sending/receiving DHCPv4 packets over any other interfaces.
The DHCPv4 client on an IPv4-requiring host
MUST NOT include the IPv6-Only Preferred option code in the Parameter Request List of any DHCPv4 packets and
MUST ignore that option in packets received from DHCPv4 servers.
DHCPv4 clients running on IPv6-only-capable hosts
SHOULD include the IPv6-Only Preferred option code in the Parameter Request List in DHCPDISCOVER and DHCPREQUEST messages for interfaces so enabled and follow the processing as described below on a per-enabled-interface basis.
If the client did not include the IPv6-Only Preferred option code in the Parameter Request List in the DHCPDISCOVER or DHCPREQUEST message, it
MUST ignore the IPv6-Only Preferred option in any messages received from the server.
If the client includes the IPv6-Only Preferred option code in the Parameter Request List and the DHCPOFFER message from the server contains a valid IPv6-Only Preferred option, the client
SHOULD NOT request the IPv4 address provided in the DHCPOFFER. If the IPv6-Only Preferred option returned by the server contains a value greater than or equal to MIN_V6ONLY_WAIT, the client
SHOULD set the V6ONLY_WAIT timer to that value. Otherwise, the client
SHOULD set the V6ONLY_WAIT timer to MIN_V6ONLY_WAIT. The client
SHOULD stop the DHCPv4 configuration process for V6ONLY_WAIT seconds or until a network attachment event, whichever happens first. The host
MAY disable the IPv4 stack completely on the affected interface for V6ONLY_WAIT seconds or until the network attachment event, whichever happens first.
The IPv6-Only Preferred option
SHOULD be included in the Parameter Request List in DHCPREQUEST messages (after receiving a DHCPOFFER without this option, for an INIT-REBOOT, or when renewing or rebinding a leased address). If the DHCPv4 server responds with a DHCPACK that includes the IPv6-Only Preferred option, the client's behavior depends on the client's state. If the client is in the INIT-REBOOT state, it
SHOULD stop the DHCPv4 configuration process or disable the IPv4 stack completely for V6ONLY_WAIT seconds or until the network attachment event, whichever happens first. It also
MAY send a DHCPRELEASE message. If the client is in any other state, it
SHOULD continue to use the assigned IPv4 address until further DHCPv4 reconfiguration events.
If the client includes the IPv6-Only Preferred option code in the Parameter Request List and the server responds with a DHCPOFFER message without a valid IPv6-Only Preferred option, the client
MUST proceed as normal with a DHCPREQUEST.
If the client waits for multiple DHCPOFFER responses and selects one of them, it
MUST follow the processing for the IPv6-Only Preferred option based on the selected response. A client
MAY use the presence of the IPv6-Only Preferred option as a selection criterion.
When an IPv6-only-capable client receives the IPv6-Only Preferred option from the server, the client
MAY configure an IPv4 link-local address [
RFC 3927]. In that case, IPv6-only-capable devices might still be able to communicate over IPv4 to other devices on the link. The Auto-Configure option [
RFC 2563] can be used to control the autoconfiguration of IPv4 link-local addresses.
Section 3.3.1 discusses the interaction between the IPv6-Only Preferred option and the Auto-Configure option.
The DHCPv4 server
SHOULD be able to configure all or individual pools to include the IPv6-Only Preferred option in DHCPv4 responses if the client included the option code in the Parameter Request List. The DHCPv4 server
MAY have a configuration option to specify the V6ONLY_WAIT timer for all or individual IPv6-mostly pools.
The server
MUST NOT include the IPv6-Only Preferred option in the DHCPOFFER or DHCPACK message if the selected pool is not configured as IPv6-mostly. The server
MUST NOT include the IPv6-Only Preferred option in the DHCPOFFER or DHCPACK message if the option was not present in the Parameter Request List sent by the client.
If the IPv6-Only Preferred option is present in the Parameter Request List received from the client and the corresponding DHCPv4 pool is explicitly configured as belonging to an IPv6-mostly network segment, the server
MUST include the IPv6-Only Preferred option when responding with the DHCPOFFER or DHCPACK message. If the server responds with the IPv6-Only Preferred option and the V6ONLY_WAIT timer is configured for the pool, the server
MUST copy the configured value to the IPv6-Only Preferred option value field. Otherwise, it
MUST set the field to zero. The server
SHOULD NOT assign an address from the pool. Instead, it
SHOULD return 0.0.0.0 as the offered address. Alternatively, if offering 0.0.0.0 is not feasible -- for example, due to some limitations of the server or the network infrastructure -- the server
MAY include in the DHCPOFFER an available IPv4 address from the pool, as per recommendations in [
RFC 2131]. In this case, the offered address
MUST be a valid address that is not committed to any other client. Because the client is not ever expected to request this address, the server
SHOULD NOT reserve the address and
SHOULD NOT verify its uniqueness. If the client then issues a DHCPREQUEST for the address, the server
MUST process it per [
RFC 2131], including replying with a DHCPACK for the address if it has not been committed to another client in the meantime.
If a client includes both a Rapid Commit option [
RFC 4039] and an IPv6-Only Preferred option in the DHCPDISCOVER message, the server
SHOULD NOT honor the Rapid Commit option if the response to the client would contain the IPv6-Only Preferred option. It
SHOULD instead respond with a DHCPOFFER as indicated above.
If the server receives a DHCPREQUEST containing the IPv6-Only Preferred option for the address from a pool configured as IPv6-mostly, the server
MUST process it per [
RFC 2131].
[
RFC 2563] defines an Auto-Configure DHCPv4 option to disable IPv4 link-local address configuration for IPv4 clients. Clients can support both the IPv6-Only Preferred option and the Auto-Configure option, just one of the options, or neither option. If a client sends both the IPv6-Only Preferred option and the Auto-Configure option, the network administrator can prevent the host from configuring an IPv4 link-local address on an IPv6-mostly network. To achieve this, the server needs to send a DHCPOFFER that contains a 'yiaddr' of 0.0.0.0, and the Auto-Configure flag set to "DoNotAutoConfigure".
However, special care should be taken in a situation where a server supports both options and receives just an IPv6-Only Preferred option from a client.
Section 2.3 of
RFC 2563 states that if no address is chosen for the host (which would be the case for IPv6-only-capable clients on an IPv6-mostly network), then "If the DHCPDISCOVER does not contain the Auto-Configure option, it is not answered." Such behavior would be undesirable for clients supporting the IPv6-Only Preferred option without supporting the Auto-Configure option, as they would not receive any response from the server and would keep requesting a response instead of disabling DHCPv4 for V6ONLY_WAIT seconds. Therefore, the following update is made to
Section 2.3 of
RFC 2563.
OLD TEXT:
However, if no address is chosen for the host, a few additional steps
MUST be taken.
If the DHCPDISCOVER does not contain the Auto-Configure option, it is not answered.
NEW TEXT:
However, if no address is chosen for the host, a few additional steps
MUST be taken.
If the DHCPDISCOVER does not contain the Auto-Configure option and the IPv6-Only Preferred option is not present, it is not answered. If the DHCPDISCOVER does not contain the Auto-Configure option but contains the IPv6-Only Preferred option, the processing rules for the IPv6-Only Preferred option apply.
-
V6ONLY_WAIT:
-
The time for which the client SHOULD stop the DHCPv4 configuration process. The value MUST NOT be less than MIN_V6ONLY_WAIT seconds. Default: 1800 seconds
-
MIN_V6ONLY_WAIT:
-
The lower boundary for V6ONLY_WAIT. Value: 300 seconds