DHCP and Router
Advertisement Options for the Discovery of Network-designated Resolvers
(DNR)OrangeRennes35000Francemohamed.boucadair@orange.comNokiaIndiakondtir@gmail.comCitrix Systems, Inc.USAdwing-ietf@fuggles.comOpen-XchangeUKneil.cook@noware.co.ukMicrosoftUSAtojens@microsoft.comADDDNSservice resolutionencryptionservice discoveryservice providernetwork providerautomationThe document specifies new DHCP and IPv6 Router Advertisement options
to discover encrypted DNS resolvers (e.g., DNS-over-HTTPS, DNS-over-TLS,
DNS-over-QUIC). Particularly, it allows a host to learn an
authentication domain name together with a list of IP addresses and a
set of service parameters to reach such encrypted DNS resolvers.This document focuses on the discovery of encrypted DNS such as
DNS-over-HTTPS (DoH) , DNS-over-TLS (DoT) , or DNS-over-QUIC (DoQ) in
local networks.In particular, the document specifies how a local encrypted DNS
resolver can be discovered by connected hosts by means of DHCPv4 , DHCPv6 , and IPv6 Router
Advertisement (RA) options. These options are
designed to convey the following information: the DNS Authentication
Domain Name (ADN), a list of IP addresses, and a set of service
parameters. This procedure is called Discovery of Network-designated
Resolvers (DNR).The options defined in this document can be deployed in a variety of
deployments (e.g., local networks with Customer Premises Equipment
(CPEs) that may or may not be managed by an Internet Service Provider
(ISP), or local networks with or without DNS forwarders). It is out of
the scope of this document to provide an inventory of such
deployments.Resolver selection considerations are out of scope. Likewise,
policies (including any interactions with users) are out of scope.The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14
when, and only when,
they appear in all capitals, as shown here.This document makes use of the terms defined in . The following additional terms are used: refers to unencrypted DNS.refers to the Discovery of Network-designated
Resolvers procedure.refers to a scheme where DNS exchanges
are transported over an encrypted channel. Examples of encrypted DNS
are DoT, DoH, or DoQ.refers to a DNS resolver that
supports any encrypted DNS scheme.refers to the options defined
in Sections , , and .refers to both DHCPv4 and DHCPv6.This document describes how a DNS client can discover local encrypted
DNS resolvers using DHCP (Sections and ) and
Neighbor Discovery protocol (): Encrypted DNS
options.These options configure an authentication domain name, a list of IP
addresses, and a set of service parameters of the encrypted DNS
resolver. More information about the design of these options is provided
in the following subsections.In order to allow for PKIX-based authentication between a DNS
client and an encrypted DNS resolver, the Encrypted DNS options are
designed to always include an authentication domain name. This ADN
is presented as a reference identifier for DNS authentication
purposes. This design accommodates the current best practices for
issuing certificates as per :To avoid adding a dependency on another server to resolve the
ADN, the Encrypted DNS options return the IP address(es) to locate
the encrypted DNS resolver. These encrypted DNS resolvers may be
hosted on the same or distinct IP addresses. Such a decision is
deployment specific.In order to optimize the size of discovery messages when all DNS
resolvers terminate on the same IP address, early versions of this
document considered relying upon the discovery mechanisms specified
in to retrieve a list of IP addresses to reach
their DNS resolvers. Nevertheless, this approach requires a client
that supports more than one encrypted DNS protocol (e.g., DoH and
DoT) to probe that list of IP addresses. To avoid such a probing,
the options defined in Sections , , and
associate an encrypted DNS
protocol with an IP address. No probing is required in such a
design.A list of IP addresses to reach an encrypted DNS resolver may be
returned in an Encrypted DNS option to accommodate current
deployments relying upon primary and backup resolvers. Also, DNR can
be used in contexts where other DNS redundancy schemes (e.g.,
anycast as in BCP 126 ) are used.Whether one or more IP addresses are returned in an Encrypted DNS
option is deployment specific. For example, a router embedding a
recursive server or a forwarder has to include one single IP address
pointing to one of its LAN-facing interfaces. Typically, this IP
address can be a private IPv4 address, a link-local address, a
Unique Local IPv6 unicast Address (ULA), or a Global Unicast Address
(GUA).If multiple IP addresses are to be returned in an Encrypted DNS
option, these addresses are ordered in the preference for use by the
client.A single option is used to convey both the ADN and IP addresses.
Otherwise a means to correlate an IP address conveyed in an option
with an ADN conveyed in another option will be required if, for
example, more than one ADN is supported by the network.Because distinct encrypted DNS protocols (e.g., DoT, DoH, and
DoQ) may be provisioned by a network and that some of these
protocols may make use of customized port numbers instead of default
ones, the Encrypted DNS options are designed to return a set of
service parameters. These parameters are encoded following the same
rules for encoding SvcParams in . This encoding approach may
increase the size of the options but it has the merit of relying
upon an existing IANA registry and, thus, accommodating new
encrypted DNS protocols and service parameters that may be defined
in the future.The following service parameters MUST be supported by a DNR
implementation:Used to indicate the set of supported
protocols ().Used to indicate the target port number for
the encrypted DNS connection ().In addition, the following service parameters are RECOMMENDED to
be supported by a DNR implementation:Used to enable Encrypted ClientHello (ECH)
().Used to supply a relative DoH URI
Template ().The provisioning mode in which an ADN, a list of IP addresses,
and a set of service parameters of the encrypted DNS resolver are
supplied to a host SHOULD be used because the Encrypted DNS options
are self-contained and do not require any additional DNS queries.
The reader may refer to for an overview of
advanced capabilities that are supported by DHCP servers to populate
configuration data (e.g., issue DNS queries).In contexts where putting additional complexity on requesting
hosts is acceptable, returning an ADN only can be considered. The
supplied ADN will be passed to a local resolution library (a DNS
client, typically) which will then issue Service Binding (SVCB)
queries . These SVCB queries
can be sent to the discovered encrypted DNS resolver itself or to
the network-designated Do53 resolver. Note that this mode may be
subject to active attacks, which can be mitigated by DNSSEC.The DHCP options defined in Sections and
follow the option ordering guidelines in .Likewise, the RA option ()
adheres to the recommendations in .On receipt of an Encrypted DNS option, the DHCP client (or IPv6
host) makes the following validation checks:The ADN is present and encoded as per .If additional data is supplied: the service parameters are encoded following the rules
specified in .the option includes at least one valid IP address and the
"alpn" service parameter.the service parameters do not include "ipv4hint" or
"ipv6hint" service parameters.If any of the checks fail, the receiver discards the received
Encrypted DNS option.The provisioning mechanisms specified in this document may not be
available in specific networks (e.g., some cellular networks
exclusively use Protocol Configuration Options (PCOs) ) or may not be suitable in some contexts (e.g.,
need for a secure discovery). Other mechanisms may be considered in
these contexts for the provisioning of encrypted DNS resolvers. It
is RECOMMENDED that at least the following DNR information is made
available to a requesting host:A service priority whenever the discovery mechanism does not
rely on implicit ordering if multiple instances of the encrypted
DNS are used.An authentication domain name. This parameter is
mandatory.A list of IP addresses to locate the encrypted DNS
resolver.A set of service parameters.If the encrypted DNS is discovered by a host using both RA and
DHCP, the rules discussed in MUST be followed.DHCP/RA options to discover encrypted DNS resolvers (including, DoH
URI Templates) takes precedence over Discovery of Designated Resolvers
(DDR) since DDR uses Do53 to an
external DNS resolver, which is susceptible to both internal and
external attacks whereas DHCP/RA is typically protected using the
mechanisms discussed in .If a client learns both Do53 and encrypted DNS resolvers from the
same network, and absent explicit configuration otherwise, it is
RECOMMENDED that the client uses the encrypted DNS resolvers for that
network. If the client cannot establish an authenticated and encrypted
connection with the encrypted DNS resolver, it may fallback to using
the Do53 resolver.This section describes a set of validation checks to confirm that
an encrypted DNS resolver matches what is provided using DNR (e.g.,
DHCP or RA). Such validation checks do not intend to validate the
security of the DNR provisioning mechanisms or the user's trust
relationship to the network.If the local DNS client supports one of the discovered encrypted
DNS protocols identified by Application Layer Protocol Negotiation
(ALPN) protocol identifiers, the DNS client establishes an encrypted
DNS session following the service priority of the discovered encrypted
resolvers.The DNS client verifies the connection based on PKIX validation
of the DNS resolver certificate and uses the
validation techniques as described in to
compare the authentication domain name conveyed in the Encrypted DNS
options to the certificate provided (see for more details). The DNS client uses the default
system or application PKI trust anchors unless configured otherwise to
use explicit trust anchors. ALPN-related considerations can be found
in .
Operation considerations to check the revocation status of the
certificate of an encrypted DNS resolver are discussed in Section 10
of .Devices may be connected to multiple networks; each providing their
own DNS configuration using the discovery mechanisms specified in this
document. Nevertheless, it is out of the scope of this specification
to discuss DNS selection of multi-interface devices. The reader may
refer to for a discussion of issues and an
example of DNS resolver selection for multi-interfaced devices. Also,
the reader may refer to for a discussion on
how DNR and Provisioning Domains (PvDs) Key "dnsZones" () can be used in Split DNS
environments ().The format of the DHCPv6 Encrypted DNS option is shown in .The fields of the option shown in are as follows:OPTION_V6_DNR (TBA1, see )Length of the enclosed data in
octets. The option length is ('ADN Length' + 4) when only an ADN
is included in the option.The priority of this OPTION_V6_DNR
instance compared to other instances. This 16-bit unsigned integer
is interpreted following the rules specified in .Length of the authentication-domain-name
field in octets.A
fully qualified domain name of the encrypted DNS resolver. This
field is formatted as specified in .An example of the
authentication-domain-name encoding is shown in . This example conveys the FQDN
"doh1.example.com.", and the resulting Option-length field is
18.Length of enclosed IPv6 addresses in
octets. When present, it MUST be a multiple of 16.Indicates one or
more IPv6 addresses to reach the encrypted DNS resolver. An
address can be link-local, ULA, or GUA. The format of this field
is shown in .Specifies
a set of service parameters that are encoded following the rules
in .
Service parameters may include, for example, a list of ALPN
protocol identifiers or alternate port numbers. This field MUST
include at least "alpn" SvcParam (). The service parameters MUST
NOT include "ipv4hint" or "ipv6hint" SvcParams as they are
superseded by the included IP addresses. If no port service parameter is included, this
indicates that default port numbers should be used. As a reminder,
the default port number is 853 for DoT, 443 for DoH, and 853 for
DoQ.The length of this field is
('Option-length' - 6 - 'ADN Length' - 'Addr Length').Note that "Addr Length", "ipv6-address(es)", and "Service
Parameters (SvcParams)" fields are not present if the ADN-only mode is
used ().To discover an encrypted DNS resolver, the DHCPv6 client MUST
include OPTION_V6_DNR in an Option Request Option (ORO), as in
Sections 18.2.1, 18.2.2, 18.2.4, 18.2.5, 18.2.6, and 21.7 of .The DHCPv6 client MUST be prepared to receive multiple instances of
the OPTION_V6_DNR option; each option is to be treated as a separate
encrypted DNS resolver. These instances MUST be processed following
their service priority (i.e., smaller service priority indicates a
higher preference).The DHCPv6 client MUST silently discard any OPTION_V6_DNR that
fails to pass the validation steps defined in .The DHCPv6 client MUST silently discard multicast and host loopback
addresses conveyed in OPTION_V6_DNR.The format of the DHCPv4 Encrypted DNS option is illustrated in
.The fields of the option shown in are
as follows:OPTION_V4_DNR (TBA2, see ).Indicates the length of the enclosed data in
octets.Includes the configuration data
of an encrypted DNS resolver. The format of this field is shown in
. When several encrypted DNS
resolvers are to be included, the "DNR Instance Data" field is
repeated.The fields shown in are as
follows:Length of all following
data in octets. This field is set to ('ADN Length' + 3) when only
an ADN is provided for a DNR instance.The priority of this instance
compared to other DNR instances. This 16-bit unsigned integer is
interpreted following the rules specified in .Length of the authentication-domain-name
in octets.The
authentication domain name of the encrypted DNS resolver. This
field is formatted as specified in . An example is provided in .Length of included IPv4 addresses in
octets. When present, it MUST be a multiple of 4.Indicates one or
more IPv4 addresses to reach the encrypted DNS resolver. Both
private and public IPv4 addresses can be included in this field.
The format of this field is shown in . This
format assumes that an IPv4 address is encoded as
a1.a2.a3.a4.Specifies
a set of service parameters that are encoded following the rules
in .
Service parameters may include, for example, a list of ALPN
protocol identifiers or alternate port numbers. This field MUST
include at least "alpn" SvcParam (). The service parameters MUST
NOT include "ipv4hint" or "ipv6hint" SvcParams as they are
superseded by the included IP addresses.If no port service parameter is included, this
indicates that default port numbers should be used. The length of this field is ('DNR Instance Data
Length' - 4 - 'ADN Length' - 'Addr Length').Note that "Addr Length", "IPv4 Address(es)", and "Service
Parameters (SvcParams)" fields are not present if the ADN-only mode is
used ().OPTION_V4_DNR is a concatenation-requiring option. As such, the
mechanism specified in MUST be used if
OPTION_V4_DNR exceeds the maximum DHCPv4 option size of 255
octets.To discover an encrypted DNS resolver, the DHCPv4 client requests
the encrypted DNS resolver by including OPTION_V4_DNR in a Parameter
Request List option .The DHCPv4 client MUST be prepared to receive multiple DNR instance
data in the OPTION_V4_DNR option; each instance is to be treated as a
separate encrypted DNS resolver. These instances MUST be processed
following their service priority (i.e., smaller service priority
indicates a higher preference).The DHCPv4 client MUST silently discard any OPTION_V4_DNR that
fails to pass the validation steps defined in .The DHCPv4 client MUST silently discard multicast and host loopback
addresses conveyed in OPTION_V4_DNR.This section defines a new Neighbor Discovery option : IPv6 RA Encrypted DNS option. This option is
useful in contexts similar to those discussed in .The format of the IPv6 RA Encrypted DNS option is illustrated in
.The fields of the option shown in are as
follows:8-bit identifier of the Encrypted DNS option
as assigned by IANA (TBA3, see ).8-bit unsigned integer. The length of the
option (including the Type and Length fields) is in units of 8
octets.16-bit unsigned integer. The
priority of this Encrypted DNS option instance compared to other
instances. This field is interpreted following the rules specified
in .32-bit unsigned integer. The maximum time
in seconds (relative to the time the packet is received) over
which the discovered Authentication Domain Name is valid. The value of Lifetime SHOULD by default be at
least 3 * MaxRtrAdvInterval, where MaxRtrAdvInterval is the
maximum RA interval as defined in .
A value of all one bits (0xffffffff)
represents infinity. A value of zero
means that this Authentication Domain Name MUST no longer be
used.16-bit unsigned integer. This field
indicates the length of the authentication-domain-name field in
octets.The
authentication domain name of the encrypted DNS resolver. This
field is formatted as specified in .16-bit unsigned integer. This field
indicates the length of enclosed IPv6 addresses in octets. When
present, it MUST be a multiple of 16.One or more IPv6
addresses of the encrypted DNS resolver. An address can be
link-local, ULA, or GUA. All of the
addresses share the same Lifetime value. Similar to , if it is desirable to have different Lifetime
values per IP address, multiple Encrypted DNS options may be
used.The format of this field is shown in
.16-bit unsigned integer. This
field indicates the length of the Service Parameters field in
octets.Specifies
a set of service parameters that are encoded following the rules
in .
Service parameters may include, for example, a list of ALPN
protocol identifiers or alternate port numbers. This field MUST
include at least "alpn" SvcParam (). The service parameters MUST
NOT include "ipv4hint" or "ipv6hint" SvcParams as they are
superseded by the included IP addresses.If no port service parameter is included, this
indicates that default port numbers should be used.Note that "Addr Length", "ipv6-address(es)", and "Service
Parameters (SvcParams)" fields are not present if the ADN-only mode is
used ().The option MUST be padded with zeros so that the full enclosed data
is a multiple of 8 octets ().The procedure for DNS configuration is the same as it is with any
other Neighbor Discovery option . In
addition, the host follows the same procedure as the one described in
for processing received
Encrypted DNS options with the formatting requirements in and validation checks in
substituted for the length and fields validation.The host MUST be prepared to receive multiple Encrypted DNS options
in RAs. These instances MUST be processed following their service
priority (i.e., smaller service priority indicates a higher
preference).The host MUST silently discard multicast and host loopback
addresses conveyed in the Encrypted DNS options.DHCP/RA messages are not encrypted or protected against
modification within the LAN. Unless mitigated (described below), the
content of DHCP and RA messages can be spoofed or modified by active
attackers, such as compromised devices within the local network. An
active attacker () can spoof
the DHCP/RA response to provide the attacker's encrypted DNS resolver.
Note that such an attacker can launch other attacks as discussed in
. The attacker can get a domain
name with a domain-validated public certificate from a CA and host an
encrypted DNS resolver.Attacks of spoofed or modified DHCP responses and RA messages by
attackers within the local network may be mitigated by making use of
the following mechanisms:DHCPv6-Shield : the network access
node (e.g., a border router, a CPE, an Access Point (AP)) discards
DHCP response messages received from any local endpoint.RA-Guard : the network access node
discards RAs messages received from any local endpoint.Source Address Validation Improvement (SAVI) solution for DHCP
: the network access node filters packets
with forged source IP addresses.The above mechanisms would ensure that the endpoint receives the
correct configuration information of the encrypted DNS resolvers
selected by the DHCP server (or RA sender), but cannot provide any
information about the DHCP server or the entity hosting the DHCP
server (or RA sender).Encrypted DNS sessions with rogue resolvers that spoof the IP
address of a DNS resolver will fail because the DNS client will fail
to authenticate that rogue resolver based upon PKIX authentication
, particularly the authentication domain name
in the Encrypted DNS Option. DNS clients that ignore authentication
failures and accept spoofed certificates will be subject to attacks
(e.g., redirect to malicious resolvers, intercept sensitive data).If the DHCP responses or RAs are dropped by the attacker, the
client can fall back to use a preconfigured encrypted DNS resolver.
However, the use of policies to select resolvers is out of the scope
of this document.Note that deletion attack is not specific to DHCP/RA.A passive attacker () can
identify a host is using DHCP/RA to discover an encrypted DNS resolver
and can infer that host is capable of using DoH/DoT/DoQ to encrypt DNS
messages. However, a passive attacker cannot spoof or modify DHCP/RA
messages.Wireless LAN (WLAN) as frequently deployed in local networks (e.g.,
home networks) is vulnerable to various attacks (e.g., , , ). Because of these attacks, only
cryptographically authenticated communications are trusted on WLANs.
This means that any information (e.g., NTP server, DNS resolver,
domain search list) provided by such networks via DHCP, DHCPv6, or RA
is untrusted because DHCP and RA messages are not authenticated.If the pre-shared key (PSK) is the same for all clients that
connect to the same WLAN (e.g., WPA-PSK), the shared key will be
available to all nodes, including attackers. As such, it is possible
to mount an active on-path attack. On-path attacks are possible within
local networks because such a WLAN authentication lacks peer entity
authentication.This leads to the need for provisioning unique credentials for
different clients. Endpoints can be provisioned with unique
credentials (username and password, typically) provided by the local
network administrator to mutually authenticate to the local WLAN AP
(e.g., 802.1x Wireless User Authentication on OpenWRT , EAP-pwd ). Not all
endpoint devices (e.g., IoT devices) support 802.1x supplicant and
need an alternate mechanism to connect to the local network. To
address this limitation, unique pre-shared keys can be created for
each such devices and WPA-PSK is used (e.g., ).Privacy considerations that are specific to DNR provisioning
mechanisms are discussed in or
. Anonymity profiles for DHCP clients are
discussed in . The mechanism defined in this
document can be used to infer that a DHCP client or IPv6 host support
encrypted DNS options, but does not explicitly reveal whether local DNS
clients are able to consume these options or infer their encryption
capabilities. Other than that, this document does not expose more
privacy information compared to Do53 discovery options.As discussed in , the use of encrypted DNS
does not reduce the data available in the DNS resolver. For example, the
reader may refer to or for a discussion on specific privacy
considerations to encrypted DNS.IANA is requested to assign the following new DHCPv6 Option Code in
the registry maintained in .ValueDescriptionClient OROSingleton OptionReferenceTBA1OPTION_V6_DNRYesNo[ThisDocument]IANA is requested to assign the following new DHCP Option Code in
the registry maintained in .TagNameData LengthMeaningReferenceTBA2OPTION_V4_DNRNEncrypted DNS Server[ThisDocument]IANA is requested to assign the following new IPv6 Neighbor
Discovery Option type in the "IPv6 Neighbor Discovery Option Formats"
sub-registry under the "Internet Control Message Protocol version 6
(ICMPv6) Parameters" registry maintained in .TypeDescriptionReferenceTBA3Encrypted DNS Option[ThisDocument]Many thanks to Christian Jacquenet and Michael Richardson for the
review.Thanks to Stephen Farrell, Martin Thomson, Vittorio Bertola, Stephane
Bortzmeyer, Ben Schwartz, Iain Sharp, and Chris Box for the
comments.Thanks to Mark Nottingham for the feedback on HTTP redirection that
was discussed in previous versions of this specification.The use of DHCP to retrieve an authentication domain name was
discussed in and .Thanks to Bernie Volz for the review of the DHCP part.Thanks to Andrew Campling for the Shepherd review and Eric Vyncke for
the AD review.Thanks to Rich Salz for the secdir review, Joe Clarke for the ops-dir
review, and Robert Sparks for the artart review.Thanks to Lars Eggert, Roman Danyliw, Erik Kline, Martin Duke, Robert
Wilton, and Paul Wouters for the IESG review.Deutsche TelekomGermanyn.leymann@telekom.deCNNICNo.4 South 4th Street, ZhongguancunBeijing100190Chinayan@cnnic.cnEvil twin (wireless networks)The Unicode ConsortiumKey Reinstallation AttacksThe Unicode ConsortiumDragonblood: Analyzing the Dragonfly Handshake of WPA3 and
EAP-pwdThe Unicode ConsortiumIdentity PSK Feature Deployment GuideCiscoBasic 802.1x Wireless User AuthenticationCiscoDHCPv6 Option CodesIPv6 Neighbor Discovery Option FormatsBOOTP Vendor Extensions and DHCP OptionsMobile radio interface Layer 3 specification; Core network
protocols; Stage 3 (Release 16)3GPP