As reported in
Section 1.7.2 of
RFC 6125:
Some certification authorities issue server certificates based on IP addresses, but preliminary evidence indicates that such certificates are a very small percentage (less than 1%) of issued certificates.
In order to allow for PKIX-based authentication between a DOTS client and server while accommodating the current best practices for issuing certificates, this document allows DOTS agents to retrieve the names of their peer DOTS agents. These names can be used for two purposes: (1) to retrieve the list of IP addresses of a peer DOTS agent or (2) to be presented as a reference identifier for authentication purposes.
Defining the option to include a list of IP addresses would avoid depending on an underlying name resolution, but that design requires also supplying a name for PKIX-based authentication purposes.
Given that DOTS gateways can be involved in a DOTS session, a peer DOTS agent can be reachable using a link-local address. Such addresses can also be discovered using the options defined in
Section 5.1.
The list of the IP addresses returned by DHCP servers is typically used to feed the DOTS server selection procedure, including when DOTS agents are provided with primary and backup IP addresses of their peer DOTS agents. An example of the DOTS server selection procedure is specified in
Section 4.3 of
RFC 8782.
The design assumes that the same peer DOTS agent is used for establishing both signal and data channels. For more customized configurations (e.g., transport-specific configuration and distinct DOTS servers for the signal and data channels), an operator can supply only a DOTS reference identifier that will be then passed to the procedure described in
Section 6.
The design allows terminating the base DOTS channels and DOTS Call Home on the same or distinct peer DOTS agents. If distinct peer DOTS agents are deployed, the DHCP option can return, for example, a list of IP addresses to a requesting DOTS agent. This list includes the IP address to be used for the base DOTS channels and the IP address for the DOTS Call Home. The DOTS client (or Call Home DOTS server) will then use the address selection procedure specified in
Section 4.3 of
RFC 8782 to identify the IP address of the peer DOTS server (or Call Home DOTS client).
For example, let's consider that the DOTS server is reachable at 2001:db8:122:300::1, while the Call Home DOTS client is reachable at 2001:db8:122:300::2. The DHCP server will then return one DOTS reference identifier and a list that includes both 2001:db8:122:300::1 and 2001:db8:122:300::2 to a requesting DHCP client. That list is passed to the DOTS client (or Call Home DOTS server), which will try to establish connections to the addresses of that list and destination port number 4646 (or the Call Home port number). As a result, the DOTS client (or Call Home DOTS server) will select 2001:db8:122:300::1 (or 2001:db8:122:300::2) as a DOTS server (or Call Home DOTS client).
The DHCPv6 DOTS Reference Identifier option is used to configure the name of the DOTS server (or the name of the Call Home DOTS client). The format of this option is shown in
Figure 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_V6_DOTS_RI | Option-length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| dots-agent-name (FQDN) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The fields of the option shown in
Figure 3 are as follows:
-
Option-code:
-
OPTION_V6_DOTS_RI (141, see Section 9.2).
-
Option-length:
-
Length of the dots-agent-name field in octets.
-
dots-agent-name:
-
A fully qualified domain name of the peer DOTS agent. This field is formatted as specified in Section 10 of RFC 8415.
An example of the dots-agent-name encoding is shown in
Figure 4. This example conveys the FQDN "dots.example.com", and the resulting Option-length field is 18.
+------+------+------+------+------+------+------+------+------+
| 0x04 | d | o | t | s | 0x07 | e | x | a |
+------+------+------+------+------+------+------+------+------+
| m | p | l | e | 0x03 | c | o | m | 0x00 |
+------+------+------+------+------+------+------+------+------+
The DHCPv6 DOTS Address option can be used to configure a list of IPv6 addresses of a DOTS server (or a Call Home DOTS client). The format of this option is shown in
Figure 5.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_V6_DOTS_ADDRESS | Option-length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| DOTS ipv6-address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| DOTS ipv6-address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The fields of the option shown in
Figure 5 are as follows:
-
Option-code:
-
OPTION_V6_DOTS_ADDRESS (142, see Section 9.2).
-
Option-length:
-
Length of the DOTS ipv6-address fields in octets. This MUST be a multiple of 16.
-
DOTS ipv6-address:
-
Includes one or more IPv6 addresses [RFC 4291] of the peer DOTS agent to be used by a DOTS agent for establishing a DOTS session. The addresses are listed in the order of preference for use by the DOTS agent.
Note that IPv4-mapped IPv6 addresses (
Section 2.5.5.2 of
RFC 4291) may be included in this option when there is no DHCPv4 server able to advertise the DHCPv4 DOTS options (
Section 5.2) and when only IPv4 connectivity is possible to the peer DOTS agent.
DHCP clients
MAY request options OPTION_V6_DOTS_RI and OPTION_V6_DOTS_ADDRESS, as defined in Sections
18.2.1,
18.2.2,
18.2.4,
18.2.5,
18.2.6, and
21.7 of [
RFC 8415]. As a convenience to the reader, it is mentioned here that the DHCP client includes the requested option codes in the Option Request option.
If the DHCP client receives more than one instance of option OPTION_V6_DOTS_RI (or OPTION_V6_DOTS_ADDRESS), it
MUST use only the first instance of that option.
The DHCP client
MUST silently discard multicast and host loopback addresses [
RFC 6890] conveyed in OPTION_V6_DOTS_ADDRESS.
If the DHCP client receives and validates both OPTION_V6_DOTS_RI and OPTION_V6_DOTS_ADDRESS, the content of OPTION_V6_DOTS_RI is used as the reference identifier for authentication purposes (e.g., PKIX [
RFC 6125]), while the valid addresses included in OPTION_V6_DOTS_ADDRESS are used to reach the peer DOTS agent. In other words, the name conveyed in OPTION_V6_DOTS_RI
MUST NOT be passed to an underlying resolution library in the presence of a valid OPTION_V6_DOTS_ADDRESS in a response.
If the DHCP client receives OPTION_V6_DOTS_RI only, but OPTION_V6_DOTS_RI contains more than one name, the DHCP client
MUST use only the first name. Once the name is validated (
Section 10 of
RFC 8415), the name is passed to a name resolution library. Moreover, that name is also used as a reference identifier for authentication purposes.
If the DHCP client receives OPTION_V6_DOTS_ADDRESS only, the address(es) included in OPTION_V6_DOTS_ADDRESS are used to reach the peer DOTS agent. In addition, these addresses can be used as identifiers for authentication.
The DHCPv4 [
RFC 2132] DOTS Reference Identifier option is used to configure a name of the peer DOTS agent. The format of this option is illustrated in
Figure 6.
Code Length Peer DOTS agent name
+-----+-----+-----+-----+-----+-----+-----+--
| 147 | n | s1 | s2 | s3 | s4 | s5 | ...
+-----+-----+-----+-----+-----+-----+-----+--
The values s1, s2, s3, etc. represent the domain name labels in the domain name encoding.
The fields of the option shown in
Figure 6 are as follows:
-
Code:
-
OPTION_V4_DOTS_RI (147, see Section 9.3).
-
Length:
-
Includes the length of the "Peer DOTS agent name" field in octets.
-
Peer DOTS agent name:
-
The domain name of the peer DOTS agent. This field is formatted as specified in Section 10 of RFC 8415.
The DHCPv4 DOTS Address option can be used to configure a list of IPv4 addresses of a peer DOTS agent. The format of this option is illustrated in
Figure 7.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code=148 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| DOTS IPv4 Address |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---
| | |
| DOTS IPv4 Address | |
| | optional
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
. ... . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---
The fields of the option shown in
Figure 7 are as follows:
-
Code:
-
OPTION_V4_DOTS_ADDRESS (148, see Section 9.3).
-
Length:
-
Set to 4*N, where N is the number of IPv4 addresses included in the option.
-
DOTS IPv4 Address(es):
-
Contains one or more IPv4 addresses of the peer DOTS agent to be used by a DOTS agent. The addresses are listed in the order of preference for use by the DOTS agent.
OPTION_V4_DOTS_ADDRESS is a concatenation-requiring option. As such, the mechanism specified in [
RFC 3396]
MUST be used if OPTION_V4_DOTS_ADDRESS exceeds the maximum DHCPv4 option size of 255 octets.
To discover a peer DOTS agent, the DHCPv4 client
MUST include both OPTION_V4_DOTS_RI and OPTION_V4_DOTS_ADDRESS in a Parameter Request List option [
RFC 2132].
If the DHCP client receives more than one instance of OPTION_V4_DOTS_RI option, it
MUST use only the first instance of that option.
The DHCP client
MUST silently discard multicast and host loopback addresses [
RFC 6890] conveyed in OPTION_V4_DOTS_ADDRESS.
If the DHCP client receives and validates both OPTION_V4_DOTS_RI and OPTION_V4_DOTS_ADDRESS, the content of OPTION_V4_DOTS_RI is used as the reference identifier for authentication purposes (e.g., PKIX [
RFC 6125]), while the valid addresses included in OPTION_V4_DOTS_ADDRESS are used to reach the peer DOTS agent. In other words, the name conveyed in OPTION_V4_DOTS_RI
MUST NOT be passed to an underlying resolution library in the presence of valid OPTION_V4_DOTS_ADDRESS in a response.
If the DHCP client receives OPTION_V4_DOTS_RI only, but OPTION_V4_DOTS_RI option contains more than one name, as distinguished by the presence of multiple root labels, the DHCP client
MUST use only the first name. Once the name is validated (
Section 10 of
RFC 8415), the name is passed to a name resolution library. Moreover, that name is also used as a reference identifier for authentication purposes.
If the DHCP client receives OPTION_V4_DOTS_ADDRESS only, the address(es) included in OPTION_V4_DOTS_ADDRESS are used to reach the peer DOTS server. In addition, these addresses can be used as identifiers for authentication.