RFC 9462
Discovery of Designated Resolvers
Discovery of Designated Resolvers π
Okay bestie, let's talk about RFC 9462 π β¨
Title block (the vibe check): This one is a Standards Track document πΈ from the IETF, dated November 2023, and its ISSN is 2070-1721. The authors are T. Pauly, E. Kinnear (Apple Inc.), C. A. Wood (Cloudflare), P. McManus (Fastly), and T. Jensen (Microsoft). It doesn't say it obsoletes or updates anything, so it's its own main character π
It's officially called "Discovery of Designated Resolvers" (aka DDR) π¦ and it's all about how DNS clients can use DNS records to find a resolver's encrypted DNS setup π.
Abstract
This document defines Discovery of Designated Resolvers (DDR) π§, a whole bundle of mechanisms that let DNS clients use DNS records to discover a resolver's encrypted DNS configuration. An Encrypted DNS Resolver found this way is called a "Designated Resolver" π. The point is to help you go from unencrypted DNS to encrypted DNS when all you know is the resolver's IP address π. These mechanisms are meant to stay limited to cases where Unencrypted DNS Resolvers and their Designated Resolvers are run by the same entity or by entities that cooperate, so nobody's crashing the party π. They can also check whether encrypted DNS protocols are supported when you already know the name of an Encrypted DNS Resolver π«Ά.
Status of This Memo
This is an Internet Standards Track document π.
It's a product of the Internet Engineering Task Force (IETF) π and represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG) β¨. If you want more on Internet Standards, check out Section 2 of RFC 7841 π.
Info about the current status of this document, any errata, and how to give feedback can be found at https://www.rfc-editor.org/info/rfc9462 π.
Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved π.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the date of publication π. Please read these carefully, because they spell out your rights and restrictions for this document π§Ύ. Code Components pulled out of this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Revised BSD License βοΈ.
Table of Contents
- Introduction 1.1. Specification of Requirements
- Terminology
- DNS Service Binding Records
- Discovery Using Resolver IP Addresses 4.1. Use of Designated Resolvers 4.1.1. Use of Designated Resolvers across Network Changes 4.2. Verified Discovery 4.3. Opportunistic Discovery
- Discovery Using Resolver Names
- Deployment Considerations 6.1. Caching Forwarders 6.2. Certificate Management 6.3. Server Name Handling 6.4. Handling Non-DDR Queries for resolver.arpa 6.5. Interaction with Network-Designated Resolvers
- Security Considerations
- IANA Considerations 8.1. Special-Use Domain Name "resolver.arpa" 8.2. Domain Name Reservation Considerations
- References 9.1. Normative References 9.2. Informative References Appendix A. Rationale for Using a Special-Use Domain Name Appendix B. Rationale for Using SVCB Records Authors' Addresses
1. Introduction π·
Okay so when DNS clients want to use encrypted DNS protocols like DNS over TLS (DoT) [RFC7858], DNS over QUIC (DoQ) [RFC9250], or DNS over HTTPS (DoH) [RFC8484] π, they might need extra info beyond the DNS server's IP address. Think the resolver's hostname, alternate IP addresses, non-standard ports, or URI Templates π§©. The problem is that the usual configuration mechanisms only hand over the resolver's IP address during setup π. That includes network provisioning protocols like DHCP [RFC2132] [RFC8415] and IPv6 Router Advertisement (RA) options [RFC8106], plus manual configuration π οΈ.
This document defines two ways for clients to discover Designated Resolvers that support these encrypted protocols, using DNS server Service Binding (SVCB) records [RFC9460] π :
- When all you know is the IP address of an Unencrypted DNS Resolver, the client queries a Special-Use Domain Name (SUDN) [RFC6761] to find the DNS SVCB records tied to one or more Encrypted DNS Resolvers that the Unencrypted DNS Resolver has designated for use when DNS encryption is requested (Section 4) π¦.
- When the hostname of an Encrypted DNS Resolver is known, the client asks for details by sending a query for a DNS SVCB record. This can find alternate encrypted DNS protocols that a known server supports, or fill in details when a network provisions a resolver name (Section 5) π.
Both approaches let clients confirm that a discovered Encrypted DNS Resolver is designated by the resolver that was originally provisioned π«Ά. "Designated" here means the resolvers are run by the same entity or cooperating entities. For example, the resolvers are reachable on the same IP address, or there's a certificate that includes the IP address of the original designating resolver π.
1.1. Specification of Requirements
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here π.
2. Terminology π
This document defines the following terms π:
- DDR: Discovery of Designated Resolvers. "DDR" refers to the mechanisms defined in this document π¦.
- Designated Resolver: A resolver, presumably an Encrypted DNS Resolver, that another resolver has designated to stand in for it π. This designation can be verified with TLS certificates π.
- Encrypted DNS Resolver: A DNS resolver using any encrypted DNS transport. That includes current mechanisms like DoH, DoT, and DoQ, plus future ones πΈ.
- Unencrypted DNS Resolver: A DNS resolver using a transport without encryption, historically TCP or UDP port 53 π.
3. DNS Service Binding Records π
DNS resolvers can advertise one or more Designated Resolvers that may offer support over encrypted channels and are controlled by the same entity π§.
When a client discovers Designated Resolvers, it learns stuff like the supported protocols and ports π. This info comes in ServiceMode SVCB records for DNS servers, though AliasMode SVCB records can point clients to the ServiceMode SVCB record they need, per [RFC9460] β¨. The formatting of these records, including DNS-unique parameters like "dohpath", is defined by [RFC9461] π.
Here's an example of an SVCB record describing a DoH server discovered by querying for _dns.example.net:
_dns.example.net. 7200 IN SVCB 1 example.net. (
alpn=h2 dohpath=/dns-query{?dns} )
Here's an example of an SVCB record describing a DoT server discovered by querying for _dns.example.net:
_dns.example.net. 7200 IN SVCB 1 dot.example.net (
alpn=dot port=8530 )
And here's one describing a DoQ server discovered by querying for _dns.example.net:
_dns.example.net. 7200 IN SVCB 1 doq.example.net (
alpn=doq port=8530 )
If there are multiple Designated Resolvers available, using one or more encrypted DNS protocols, the resolver deployment can show a preference using the priority fields in each SVCB record [RFC9460] π.
If the client runs into a mandatory parameter in a SVCB record that it doesn't understand, it MUST NOT use that record to discover a Designated Resolver, following Section 8 of [RFC9460] π«. The client can still use other records in the same response as long as it understands all of their mandatory parameters π . This lets future encrypted deployments support multiple protocols at once, even if a given client doesn't know about all of them π«Ά. For example, say the Unencrypted DNS Resolver returns three SVCB records: one for DoH, one for DoT, and one for a yet-to-exist protocol. A client that only supports DoH and DoT should be able to use those two while safely ignoring the third π₯°.
To avoid name lookup deadlock π, clients that use Designated Resolvers need to make sure that a specific Encrypted DNS Resolver isn't used for any queries needed to resolve the name of the resolver itself, or to do certificate revocation checks for the resolver, as described in Section 10 of [RFC8484] π€. Designated Resolvers need to make sure this deadlock is avoidable, also as described in Section 10 of [RFC8484] π.
This document focuses on discovering DoH, DoT, and DoQ Designated Resolvers π. Other protocols can use the format defined by [RFC9461] too π. But if any such protocol doesn't involve some form of certificate validation, new validation mechanisms will need to be defined to support validating designation, as defined in Section 4.2 π.
4. Discovery Using Resolver IP Addresses β¨
okay so, when a DNS client has an Unencrypted DNS Resolver IP address set up, it SHOULD ask that resolver for SVCB records of a service with a scheme of dns and an authority of resolver.arpa before it makes any other queries π«Ά. This lets the client switch over to encrypted DNS for everything else, if that's possible. π Specifically, the client sends a query for _dns.resolver.arpa. with the SVCB resource record type (64) [RFC9460] π.
The answers to that SVCB query for the resolver.arpa special-use domain name (SUDN) describe Designated Resolvers π. So different Designated Resolver setups can be told apart and matched up with the A and AAAA records for the resolver, ServiceMode SVCB responses to these queries MUST NOT use the . or resolver.arpa value for the TargetName π
ββοΈ. Also, clients MUST NOT perform A or AAAA queries for resolver.arpa π
.
here's an example of an SVCB record describing a DoH server found by querying _dns.resolver.arpa. πΈ:
_dns.resolver.arpa. 7200 IN SVCB 1 doh.example.net (
alpn=h2 dohpath=/dns-query{?dns} )
and here's one for a DoT server found the same way π¦:
_dns.resolver.arpa. 7200 IN SVCB 1 dot.example.net (
alpn=dot port=8530 )
and a DoQ server, found via that same query π§:
_dns.resolver.arpa. 7200 IN SVCB 1 doq.example.net (
alpn=doq port=8530 )
If the recursive resolver that gets this query has one or more Designated Resolvers, it will send back the matching SVCB records π. When it answers these special resolver.arpa queries, the recursive resolver SHOULD include the A and AAAA records for the name of the Designated Resolver in the Additional Answers section β¨. This saves the DNS client an extra round trip just to get the address of the Designated Resolver. See Section 5 of [RFC9460] π.
Designated Resolvers SHOULD be reachable over the IP address families that their associated Unencrypted DNS Resolvers support π. If an Unencrypted DNS Resolver can be reached over an IPv4 address, it ought to provide an A record for an IPv4 address of the Designated Resolver. Same deal for IPv6: if it's reachable over an IPv6 address, it ought to provide a AAAA record for an IPv6 address of the Designated Resolver π«§. The Designated Resolver MAY support more address families than the Unencrypted DNS Resolver, but it SHOULD NOT support fewer π. If this isn't done, clients that only have connectivity over one address family might not be able to reach the Designated Resolver at all π.
If the recursive resolver that gets this query has no Designated Resolvers, it SHOULD return NODATA for queries to the resolver.arpa zone π. That gives clients a consistent, accurate signal that it doesn't have a Designated Resolver π«Ά.
4.1. Use of Designated Resolvers
When a client discovers Designated Resolvers from an Unencrypted DNS Resolver IP address, it can choose to use them either (1) automatically or (2) based on some other policy, heuristic, or user choice π€.
This document defines two preferred ways to automatically use Designated Resolvers π:
- Verified Discovery (Section 4.2), for when a TLS certificate can be used to validate the resolver's identity π.
- Opportunistic Discovery (Section 4.3), for when a resolver's IP address is a private or local address π .
A client MAY additionally use a discovered Designated Resolver without either of these methods, based on implementation-specific policy or user input π. The details of that kind of policy are out of scope for this document π€·ββοΈ. Clients MUST NOT automatically use a Designated Resolver without some sort of validation, like the two methods defined in this document or a future mechanism π«. Using one without validation can let an attacker send traffic to an Encrypted DNS Resolver that has nothing to do with the original Unencrypted DNS Resolver, as described in Section 7 π±.
A client MUST NOT reuse a designation discovered through the IP address of one Unencrypted DNS Resolver in place of any other Unencrypted DNS Resolver π ββοΈ. Instead, the client needs to repeat the discovery process to find the Designated Resolver of the other Unencrypted DNS Resolver π. In other words, designations are per-resolver and MUST NOT be used to configure the client's universal DNS behavior π . This way, queries always go to a party that was designated by the resolver that's actually being used β¨.
4.1.1. Use of Designated Resolvers across Network Changes
If a client is configured with the same Unencrypted DNS Resolver IP address on multiple different networks, a Designated Resolver discovered on one network SHOULD NOT be reused on any of the other networks without repeating the discovery process for each network π. The reason is that the same IP address might belong to different servers on different networks π.
4.2. Verified Discovery
Verified Discovery is a mechanism that lets the client automatically use a Designated Resolver that supports DNS encryption and performs a TLS handshake πβ¨.
To be considered a verified Designated Resolver, the TLS certificate presented by the Designated Resolver has to pass the following checks made by the client π:
- The client MUST verify the chain of certificates up to a trust anchor, as described in Section 6 of [RFC5280]. The client SHOULD use the default system or application trust anchors, unless otherwise configured π‘οΈ.
- The client MUST verify that the certificate contains the IP address of the designating Unencrypted DNS Resolver in an iPAddress entry of the subjectAltName extension, as described in Section 4.2.1.6 of [RFC5280] π§.
If these checks pass, the client SHOULD use the discovered Designated Resolver for any case where it would have used the Unencrypted DNS Resolver otherwise, so it prefers encrypted DNS whenever it can ππ₯.
If these checks fail, the client MUST NOT automatically use the discovered Designated Resolver if this designation was only discovered via a _dns.resolver.arpa. query. (If the designation was advertised directly by the network, as described in Section 6.5, the server can still be used.) π Also, the client SHOULD suppress any further queries for Designated Resolvers using this Unencrypted DNS Resolver for as long as the SVCB record's Time to Live (TTL) says, so it doesn't spam queries that just keep failing validation π. The client MAY issue new queries if the SVCB record's TTL is excessively long (as determined by client policy), which keeps the window small for an intermittent attacker trying to block encrypted DNS π΅οΈββοΈ.
If the Designated Resolver and the Unencrypted DNS Resolver share an IP address, clients MAY choose to opportunistically use the Designated Resolver even without this certificate check (Section 4.3) πΈ. If the IP address isn't shared, opportunistic use lets attackers redirect queries to an unrelated Encrypted DNS Resolver, as described in Section 7 π¨.
Connections to a Designated Resolver can use a different IP address than the Unencrypted DNS Resolver's, for example if resolving the SVCB service turns up additional addresses π¦. Even when a different IP address is used for the connection, the TLS certificate checks described in this section still apply to the original IP address of the Unencrypted DNS Resolver π .
4.3. Opportunistic Discovery
Sometimes Verified Discovery of encrypted DNS configuration over unencrypted DNS just isn't possible π. For example, the identities of Unencrypted DNS Resolvers on private IP addresses [RFC1918], Unique Local Addresses (ULAs) [RFC4193], and Link-Local addresses [RFC3927] [RFC4291] can't be safely confirmed with TLS certificates under most conditions π .
An opportunistic privacy profile is defined for DoT in Section 4.1 of [RFC7858]. In this mode, clients don't validate the name of the resolver presented in the certificate π«£. This opportunistic privacy profile applies to DoQ [RFC9250] in the same way π§. For this profile, Section 4.1 of [RFC7858] explains that clients might or might not validate the resolver. Even if clients choose to do some certificate validation checks, they won't be able to validate the names in the SubjectAltName (SAN) field of the certificate for private and local IP addresses π.
A client MAY use information from the SVCB record for _dns.resolver.arpa. with this opportunistic privacy profile, as long as the IP address of the Encrypted DNS Resolver doesn't differ from the IP address of the Unencrypted DNS Resolver π. Clients SHOULD use this mode only for resolvers using private or local IP addresses, since resolvers using other addresses are able to get TLS certificates provisioned for their addresses π₯.
5. Discovery Using Resolver Names β¨
okay bestie, so a DNS client that already knows the name of an Encrypted DNS Resolver can use DDR to find out about every encrypted DNS protocol that resolver supports π. This can happen if a client was set up to use a specific Encrypted DNS Resolver, or if a network provisioning protocol (like DHCP or IPv6 RAs) hands over a name alongside the resolver IP address, for example by using Discovery of Network-designated Resolvers (DNR) [RFC9463] π.
In those cases the client just sends a DNS SVCB query using the known name of the resolver π¦. That query can go to the named Encrypted DNS Resolver itself or to any other resolver, so it's giving flexibility. Unlike bootstrapping from an Unencrypted DNS Resolver (Section 4), these records SHOULD be available in the public DNS if the same domain name's A or AAAA records are available in the public DNS, so that any resolver can be used to discover another resolver's Designated Resolvers. When the name can only be resolved in private namespaces, these records SHOULD be available to the same audience as the A and AAAA records.
Here's an example, and it's giving main character energy π. If the client already knows about a DoT server resolver.example.com, it can send a SVCB query for _dns.resolver.example.com to see if there are other encrypted DNS protocols available. In the example below, the SVCB answers show that resolver.example.com supports both DoH and DoT, and that the DoH server has a higher priority than the DoT server.
_dns.resolver.example.com. 7200 IN SVCB 1 resolver.example.com. (
alpn=h2 dohpath=/dns-query{?dns} )
_dns.resolver.example.com. 7200 IN SVCB 2 resolver.example.com. (
alpn=dot )
Clients MUST validate that for any Encrypted DNS Resolver discovered using a known resolver name, the TLS certificate of the resolver contains the known name in a subjectAltName extension π. In the example above, that means both servers need certificates that cover the name resolver.example.com. Often the various supported encrypted DNS protocols are specified so that the SVCB TargetName matches the known name, which is true in the example above. Even when the TargetName is different (say the DoH server had a TargetName of doh.example.com), clients still check for the original known resolver name in the certificate π«Ά.
Note that this resolver validation is not related to the DNS resolver that provided the SVCB answer π.
And here's another one, because it's so relevant π
. Being able to discover a Designated Resolver for a known Encrypted DNS Resolver is super useful when a client has a DoT configuration for foo.resolver.example.com but is on a network that blocks DoT traffic π. The client can still send a query to any other accessible resolver (either the local network resolver or an accessible DoH server) to find out if there's a designated DoH server for foo.resolver.example.com.
6. Deployment Considerations π§
Resolver deployments that support DDR are advised to consider the following points πΈ.
6.1. Caching Forwarders
A DNS forwarder SHOULD NOT forward queries for resolver.arpa (or any subdomains) upstream. This stops a client from receiving a SVCB record that will fail to authenticate, because the forwarder's IP address isn't in the SubjectAltName (SAN) field of the upstream resolver's Designated Resolver's TLS certificate π
ββοΈ. A DNS forwarder that already acts as a completely transparent forwarder MAY choose to forward these queries when the operator expects that this doesn't apply, because the operator either knows the upstream resolver does have the forwarder's IP address in its TLS certificate's SAN field, or expects clients to validate the connection via some future mechanism.
Operators who choose to forward queries for resolver.arpa upstream should note that client behavior is never guaranteed, and that the use of DDR by a resolver does not communicate a requirement for clients to use the SVCB record when it can't be verified π€·ββοΈ.
6.2. Certificate Management
Resolver owners that support Verified Discovery will need to list valid referring IP addresses in their TLS certificates π. This may pose challenges for resolvers with a large number of referring IP addresses π₯².
6.3. Server Name Handling
Clients MUST NOT use resolver.arpa as the server name in either (1) the TLS Server Name Indication (SNI) [RFC8446] for DoT, DoQ, or DoH connections or (2) the URI host for DoH requests π«.
When performing discovery using resolver IP addresses, clients MUST use the original IP address of the Unencrypted DNS Resolver as the URI host for DoH requests π.
Note that since IP addresses aren't supported by default in the TLS SNI, resolvers that support discovery using IP addresses will need to be configured to present the appropriate TLS certificate when no SNI is present for DoT, DoQ, and DoH π.
6.4. Handling Non-DDR Queries for resolver.arpa
DNS resolvers that support DDR by responding to queries for _dns.resolver.arpa. MUST treat resolver.arpa as a locally served zone per [RFC6303] π . In practice, this means resolvers SHOULD respond to queries of any type other than SVCB for _dns.resolver.arpa. with NODATA, and queries of any type for any domain name under resolver.arpa with NODATA π§Ή.
6.5. Interaction with Network-Designated Resolvers
DNR [RFC9463] lets a network provide designation of resolvers directly through DHCP [RFC2132] [RFC8415] and through IPv6 RA options [RFC8106] π‘. When such indications are present, clients can suppress queries for resolver.arpa to the unencrypted DNS server the network indicated over DHCP or RAs, and the DNR indications SHOULD take precedence over those discovered using resolver.arpa for the same resolver if there's a conflict, since DNR is considered a more reliable source π.
The Designated Resolver information in DNR might not contain a full set of SvcParams needed to connect to an Encrypted DNS Resolver π₯Ί. In that case, the client can use a SVCB query using a resolver name, as described in Section 5, to the Authentication Domain Name (ADN) π.
7. Security Considerations ππ
okay bestie, this section is SERIOUS, so pay attention π. Please read every word, because implementers rely on it.
Since clients can receive DNS SVCB answers over unencrypted DNS, on-path attackers can prevent successful discovery by dropping SVCB queries or answers. That means they can stop clients from switching over to encrypted DNS π±. Clients should be aware that it might not be possible to tell apart resolvers that don't have any Designated Resolver from this kind of active attack. To limit the impact of discovery queries being dropped, whether maliciously or unintentionally, clients can re-send their SVCB queries periodically π.
Section 8.2 of [RFC9461] describes another type of downgrade attack, where an attacker can block connections to the encrypted DNS server π§. For DDR, clients need to validate a Designated Resolver using a connection to the server before trusting it. So attackers who can block these connections can stop clients from switching to encrypted DNS π₯.
Encrypted DNS Resolvers that allow discovery using DNS SVCB answers over unencrypted DNS MUST NOT provide differentiated behavior based solely on metadata in the SVCB record, such as the HTTP path or alternate port number. Those are parameters an attacker could modify π΅οΈββοΈ. For example, if a DoH resolver provides a filtering service for one URI path and a non-filtered service for another URI path, an attacker could choose which of those services gets used by modifying the dohpath parameter π€. These attacks can be mitigated by providing separate resolver IP addresses or hostnames π‘οΈ.
While the IP address of the Unencrypted DNS Resolver is often provisioned over insecure mechanisms, it can also be provisioned securely, such as via manual configuration, on a VPN, or on a network with protections like RA-Guard [RFC6105] π. An attacker might try to direct encrypted DNS traffic to itself by causing the client to think that a discovered Designated Resolver uses a different IP address from the Unencrypted DNS Resolver. Such a Designated Resolver might have a valid certificate, but still be operated by an attacker trying to observe or modify user queries without the knowledge of the client or network π.
If the IP address of a Designated Resolver differs from that of an Unencrypted DNS Resolver, clients applying Verified Discovery (Section 4.2) MUST validate that the IP address of the Unencrypted DNS Resolver is covered by the SubjectAltName (SAN) of the Designated Resolver's TLS certificate π§. If that validation fails, the client MUST NOT automatically use the discovered Designated Resolver π¨.
Clients using Opportunistic Discovery (Section 4.3) MUST be limited to cases where the Unencrypted DNS Resolver and Designated Resolver have the same IP address, which SHOULD be a private or local IP address π‘. Clients that don't follow Opportunistic Discovery (Section 4.3), and instead try to connect without first checking for a designation, run the possible risk of being intercepted by an attacker hosting an Encrypted DNS Resolver on the IP address of an Unencrypted DNS Resolver, where the attacker has failed to gain control of the Unencrypted DNS Resolver π¨.
The constraints on the use of Designated Resolvers specified here apply specifically to the automatic discovery mechanisms defined in this document, which are referred to as Verified Discovery and Opportunistic Discovery π. Clients MAY use some other mechanism to verify and use Designated Resolvers discovered using the DNS SVCB record π. However, the use of such an alternate mechanism needs to take into account the attack scenarios detailed here β οΈ.
8. IANA Considerations π
8.1. Special-Use Domain Name "resolver.arpa"
IANA has registered "resolver.arpa" in the "Special-Use Domain Names" registry established by [RFC6761] π.
IANA has added an entry in the "Transport-Independent Locally-Served DNS Zone Registry" for 'resolver.arpa.' with the description "DNS Resolver Special-Use Domain," and listed this document as the reference π.
8.2. Domain Name Reservation Considerations β¨
Okay, bestie, this part is all about how the name reservation works, and the RFC answers the standard questions from Section 5 of [RFC6761] about it. π Let's go one question at a time.
1. Are human users expected to recognize these names as special and use them differently? In what way?
No. π Client devices' stub resolvers use this name automatically on behalf of users, so users will never actually see it. It's giving background process energy π§
2. Are writers of application software expected to make their software recognize these names as special and treat them differently? In what way?
Also no π There's no use case where a non-DNS application (covered by the next question) would need to touch this name. Apps can chill.
3. Are writers of name resolution APIs and libraries expected to make their software recognize these names as special and treat them differently? If so, how?
Yes! π DNS client implementors are expected to query this name when they want a resolver's properties, instead of looking up records for the name itself. On the server side, DNS servers are expected to answer queries for this name with their own properties, instead of checking the matching zone the way they would for a normal domain name. Main character energy for this name, honestly. β¨
4. Are developers of caching domain name servers expected to make their implementations recognize these names as special and treat them differently? If so, how?
Yes, and this one is important π₯ Caching domain name servers should not forward queries for this name, so they don't cause validation failures from an IP address mismatch. Iconic prevention π«Ά
5. Are developers of authoritative domain name servers expected to make their implementations recognize these names as special and treat them differently? If so, how?
No πΈ DDR is designed for use by recursive resolvers. In theory, an authoritative server could choose to support this name if it wanted to advertise support for encrypted DNS protocols over plaintext DNS, but that scenario is covered by other work in the IETF DNSOP Working Group. Not our lane here, babe π
6. Does this reserved Special-Use Domain Name have any potential impact on DNS server operators? If they try to configure their authoritative DNS server as authoritative for this reserved name, will compliant name server software reject it as invalid? Do DNS server operators need to know about that and understand why? Even if the name server software doesn't prevent them from using this reserved name, are there other ways that it may not work as expected, of which the DNS server operator should be aware?
Okay, real talk, this one matters π This name is locally served, and any resolver that supports it should never forward the query. DNS server operators should be aware that clients will use records for this name to change how they connect to their resolvers. So if you run a DNS server, you need to know this one, no cap π
7. How should DNS Registries/Registrars treat requests to register this reserved domain name? Should such requests be denied? Should such requests be allowed, but only to a specially designated entity?
IANA holds the registration for this name. Non-IANA requests to register it should always be denied by DNS Registries/Registrars. π Hands off, not yours, babe.
9. References π¦
9.1. Normative References
Here's the normative reading list. These are the docs the spec actually leans on, so they're kinda required reading π
- [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. J., and E. Lear, "Address Allocation for Private Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, February 1996,
https://www.rfc-editor.org/info/rfc1918. - [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997,
https://www.rfc-editor.org/info/rfc2119. - [RFC3927] Cheshire, S., Aboba, B., and E. Guttman, "Dynamic Configuration of IPv4 Link-Local Addresses", RFC 3927, DOI 10.17487/RFC3927, May 2005,
https://www.rfc-editor.org/info/rfc3927. - [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast Addresses", RFC 4193, DOI 10.17487/RFC4193, October 2005,
https://www.rfc-editor.org/info/rfc4193. - [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, DOI 10.17487/RFC4291, February 2006,
https://www.rfc-editor.org/info/rfc4291. - [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
https://www.rfc-editor.org/info/rfc5280. - [RFC6303] Andrews, M., "Locally Served DNS Zones", BCP 163, RFC 6303, DOI 10.17487/RFC6303, July 2011,
https://www.rfc-editor.org/info/rfc6303. - [RFC6761] Cheshire, S. and M. Krochmal, "Special-Use Domain Names", RFC 6761, DOI 10.17487/RFC6761, February 2013,
https://www.rfc-editor.org/info/rfc6761. - [RFC7858] Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., and P. Hoffman, "Specification for DNS over Transport Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May 2016,
https://www.rfc-editor.org/info/rfc7858. - [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017,
https://www.rfc-editor.org/info/rfc8174. - [RFC8484] Hoffman, P. and P. McManus, "DNS Queries over HTTPS (DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018,
https://www.rfc-editor.org/info/rfc8484. - [RFC9250] Huitema, C., Dickinson, S., and A. Mankin, "DNS over Dedicated QUIC Connections", RFC 9250, DOI 10.17487/RFC9250, May 2022,
https://www.rfc-editor.org/info/rfc9250. - [RFC9460] Schwartz, B., Bishop, M., and E. Nygren, "Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)", RFC 9460, DOI 10.17487/RFC9460, November 2023,
https://www.rfc-editor.org/info/rfc9460. - [RFC9461] Schwartz, B., "Service Binding Mapping for DNS Servers", RFC 9461, DOI 10.17487/RFC9461, November 2023,
https://www.rfc-editor.org/info/rfc9461. - [RFC9463] Boucadair, M., Ed., Reddy.K, T., Ed., Wing, D., Cook, N., and T. Jensen, "DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR)", RFC 9463, DOI 10.17487/RFC9463, November 2023,
https://www.rfc-editor.org/info/rfc9463.
9.2. Informative References
These are the extra-credit reads π Good for context, not strictly required.
- [DoH-HINTS] Schinazi, D., Sullivan, N., and J. Kipp, "DoH Preference Hints for HTTP", Work in Progress, Internet-Draft, draft-schinazi-httpbis-doh-preference-hints-02, 13 July 2020,
https://datatracker.ietf.org/doc/html/draft-schinazi-httpbis-doh-preference-hints-02. - [ECH] Rescorla, E., Oku, K., Sullivan, N., and C. A. Wood, "TLS Encrypted Client Hello", Work in Progress, Internet-Draft, draft-ietf-tls-esni-17, 9 October 2023,
https://datatracker.ietf.org/doc/html/draft-ietf-tls-esni-17. - [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997,
https://www.rfc-editor.org/info/rfc2132. - [RFC6105] Levy-Abegnoli, E., Van de Velde, G., Popoviciu, C., and J. Mohacsi, "IPv6 Router Advertisement Guard", RFC 6105, DOI 10.17487/RFC6105, February 2011,
https://www.rfc-editor.org/info/rfc6105. - [RFC8106] Jeong, J., Park, S., Beloeil, L., and S. Madanapalli, "IPv6 Router Advertisement Options for DNS Configuration", RFC 8106, DOI 10.17487/RFC8106, March 2017,
https://www.rfc-editor.org/info/rfc8106. - [RFC8415] Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A., Richardson, M., Jiang, S., Lemon, T., and T. Winters, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 8415, DOI 10.17487/RFC8415, November 2018,
https://www.rfc-editor.org/info/rfc8415. - [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
https://www.rfc-editor.org/info/rfc8446. - [RFC8880] Cheshire, S. and D. Schinazi, "Special Use Domain Name 'ipv4only.arpa'", RFC 8880, DOI 10.17487/RFC8880, August 2020,
https://www.rfc-editor.org/info/rfc8880.
Appendix A. Rationale for Using a Special-Use Domain Name π
The "resolver.arpa" SUDN is kinda like "ipv4only.arpa" π― In both, the querying client isn't actually after an answer from the authoritative "arpa" name servers. The whole point of this SUDN is to let clients talk to the Unencrypted DNS Resolver, similar to how "ipv4only.arpa" lets clients talk to a middlebox. If you want the full backstory on "ipv4only.arpa", check out [RFC8880] π
Appendix B. Rationale for Using SVCB Records π§ββοΈ
These mechanisms use SVCB/HTTPS resource records [RFC9460] to say that a given domain designates a particular Designated Resolver that clients should use instead of an Unencrypted DNS Resolver (using a SUDN), or instead of another Encrypted DNS Resolver (using its domain name). π
There are other proposals that do something similar, but these mechanisms picked SVCB records for a few good reasons:
- Discovering Encrypted DNS Resolvers using DNS records keeps client logic for DNS self-contained, and it lets a DNS resolver operator define which resolver names and IP addresses are related to one another.
- Using DNS records also doesn't rely on bootstrapping with higher-level application operations (such as those discussed in [DoH-HINTS]).
- SVCB records are extensible and allow the definition of parameter keys, which makes them a superior mechanism for extensibility compared to approaches like overloading TXT records. The same keys can be used for discovering Designated Resolvers of different transport types, as well as those advertised by Unencrypted DNS Resolvers or another Encrypted DNS Resolver.
- Clients and servers that care about the privacy of names will already need to support SVCB records in order to use the TLS Encrypted ClientHello [ECH]. Without encrypting names in TLS, the value of encrypting DNS is reduced, so pairing the two solutions gives the greatest benefit. π
Authors' Addresses π
Tommy Pauly Apple Inc. One Apple Park Way Cupertino, California 95014 United States of America Email: tpauly@apple.com
Eric Kinnear Apple Inc. One Apple Park Way Cupertino, California 95014 United States of America Email: ekinnear@apple.com
Christopher A. Wood Cloudflare 101 Townsend St San Francisco, California 94107 United States of America Email: caw@heapingbits.net
Patrick McManus Fastly Email: mcmanus@ducksong.com
Tommy Jensen Microsoft Email: tojens@microsoft.com
π¦ where this page comes from
- ietf: rfc9462 2023-11
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms