draft-ietf-add-ddr-01.txt | draft-ietf-add-ddr-02.txt | |||
---|---|---|---|---|
ADD T. Pauly | ADD T. Pauly | |||
Internet-Draft E. Kinnear | Internet-Draft E. Kinnear | |||
Intended status: Standards Track Apple Inc. | Intended status: Standards Track Apple Inc. | |||
Expires: 16 December 2021 C.A. Wood | Expires: 9 January 2022 C.A. Wood | |||
Cloudflare | Cloudflare | |||
P. McManus | P. McManus | |||
Fastly | Fastly | |||
T. Jensen | T. Jensen | |||
Microsoft | Microsoft | |||
14 June 2021 | 8 July 2021 | |||
Discovery of Designated Resolvers | Discovery of Designated Resolvers | |||
draft-ietf-add-ddr-01 | draft-ietf-add-ddr-02 | |||
Abstract | Abstract | |||
This document defines Discovery of Designated Resolvers (DDR), a | This document defines Discovery of Designated Resolvers (DDR), a | |||
mechanism for DNS clients to use DNS records to discover a resolver's | mechanism for DNS clients to use DNS records to discover a resolver's | |||
encrypted DNS configuration. This mechanism can be used to move from | encrypted DNS configuration. This mechanism can be used to move from | |||
unencrypted DNS to encrypted DNS when only the IP address of an | unencrypted DNS to encrypted DNS when only the IP address of a | |||
encrypted resolver is known. It can also be used to discover support | resolver is known. It can also be used to discover support for | |||
for encrypted DNS protocols when the name of an encrypted resolver is | encrypted DNS protocols when the name of an encrypted resolver is | |||
known. This mechanism is designed to be limited to cases where | known. This mechanism is designed to be limited to cases where | |||
unencrypted resolvers and their designated resolvers are operated by | unencrypted resolvers and their designated resolvers are operated by | |||
the same entity or cooperating entities. | the same entity or cooperating entities. | |||
Discussion Venues | Discussion Venues | |||
This note is to be removed before publishing as an RFC. | This note is to be removed before publishing as an RFC. | |||
Discussion of this document takes place on the Adaptive DNS Discovery | Discussion of this document takes place on the Adaptive DNS Discovery | |||
Working Group mailing list (add@ietf.org), which is archived at | Working Group mailing list (add@ietf.org), which is archived at | |||
skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 16 December 2021. | This Internet-Draft will expire on 9 January 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 33 ¶ | skipping to change at page 2, line 33 ¶ | |||
as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Specification of Requirements . . . . . . . . . . . . . . 3 | 1.1. Specification of Requirements . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. DNS Service Binding Records . . . . . . . . . . . . . . . . . 4 | 3. DNS Service Binding Records . . . . . . . . . . . . . . . . . 4 | |||
4. Discovery Using Resolver IP Addresses . . . . . . . . . . . . 5 | 4. Discovery Using Resolver IP Addresses . . . . . . . . . . . . 5 | |||
4.1. Authenticated Discovery . . . . . . . . . . . . . . . . . 5 | 4.1. Authenticated Discovery . . . . . . . . . . . . . . . . . 6 | |||
4.2. Opportunistic Discovery . . . . . . . . . . . . . . . . . 6 | 4.2. Opportunistic Discovery . . . . . . . . . . . . . . . . . 6 | |||
5. Discovery Using Resolver Names . . . . . . . . . . . . . . . 6 | 5. Discovery Using Resolver Names . . . . . . . . . . . . . . . 7 | |||
6. Deployment Considerations . . . . . . . . . . . . . . . . . . 7 | 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 7 | |||
6.1. Caching Forwarders . . . . . . . . . . . . . . . . . . . 7 | 6.1. Caching Forwarders . . . . . . . . . . . . . . . . . . . 8 | |||
6.2. Certificate Management . . . . . . . . . . . . . . . . . 8 | 6.2. Certificate Management . . . . . . . . . . . . . . . . . 8 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
8.1. Special Use Domain Name "resolver.arpa" . . . . . . . . . 8 | 8.1. Special Use Domain Name "resolver.arpa" . . . . . . . . . 9 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 9 | 9.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Appendix A. Rationale for using SVCB records . . . . . . . . . . 10 | Appendix A. Rationale for using SVCB records . . . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
1. Introduction | 1. Introduction | |||
When DNS clients wish to use encrypted DNS protocols such as DNS- | When DNS clients wish to use encrypted DNS protocols such as DNS- | |||
over-TLS (DoT) [RFC7858] or DNS-over-HTTPS (DoH) [RFC8484], they | over-TLS (DoT) [RFC7858] or DNS-over-HTTPS (DoH) [RFC8484], they | |||
require additional information beyond the IP address of the DNS | require additional information beyond the IP address of the DNS | |||
server, such as the resolver's hostname, non-standard ports, or URL | server, such as the resolver's hostname, non-standard ports, or URL | |||
paths. However, common configuration mechanisms only provide the | paths. However, common configuration mechanisms only provide the | |||
resolver's IP address during configuration. Such mechanisms include | resolver's IP address during configuration. Such mechanisms include | |||
network provisioning protocols like DHCP [RFC2132] and IPv6 Router | network provisioning protocols like DHCP [RFC2132] and IPv6 Router | |||
Advertisement (RA) options [RFC8106], as well as manual | Advertisement (RA) options [RFC8106], as well as manual | |||
configuration. | configuration. | |||
This document defines two mechanisms for clients to discover | This document defines two mechanisms for clients to discover | |||
designated resolvers using DNS server Service Binding (SVCB, | designated resolvers using DNS server Service Binding (SVCB, | |||
[I-D.ietf-dnsop-svcb-https]) records: | [I-D.ietf-dnsop-svcb-https]) records: | |||
1. When only an IP address of an Unencrypted Resolver is known, the | 1. When only an IP address of an Unencrypted Resolver is known, the | |||
client queries a special use domain name to discover DNS SVCB | client queries a special use domain name to discover DNS SVCB | |||
records associated with the Unencrypted Resolver (Section 4). | records associated with one or more Encrypted Resolvers the | |||
Unencrypted Resolver has designated for use when support for DNS | ||||
encryption is requested (Section 4). | ||||
2. When the hostname of an encrypted DNS server is known, the client | 2. When the hostname of an Encrypted Resolver is known, the client | |||
requests details by sending a query for a DNS SVCB record. This | requests details by sending a query for a DNS SVCB record. This | |||
can be used to discover alternate encrypted DNS protocols | can be used to discover alternate encrypted DNS protocols | |||
supported by a known server, or to provide details if a resolver | supported by a known server, or to provide details if a resolver | |||
name is provisioned by a network (Section 5). | name is provisioned by a network (Section 5). | |||
Both of these approaches allow clients to confirm that a discovered | Both of these approaches allow clients to confirm that a discovered | |||
Encrypted Resolver is designated by the originally provisioned | Encrypted Resolver is designated by the originally provisioned | |||
resolver. "Designated" in this context means that the resolvers are | resolver. "Designated" in this context means that the resolvers are | |||
operated by the same entity or cooperating entities; for example, the | operated by the same entity or cooperating entities; for example, the | |||
resolvers are accessible on the same IP address, or there is a | resolvers are accessible on the same IP address, or there is a | |||
skipping to change at page 4, line 27 ¶ | skipping to change at page 4, line 28 ¶ | |||
DNS resolvers can advertise one or more Designated Resolvers that may | DNS resolvers can advertise one or more Designated Resolvers that may | |||
offer support over encrypted channels and are controlled by the same | offer support over encrypted channels and are controlled by the same | |||
entity. | entity. | |||
When a client discovers Designated Resolvers, it learns information | When a client discovers Designated Resolvers, it learns information | |||
such as the supported protocols, ports, and server name to use in | such as the supported protocols, ports, and server name to use in | |||
certificate validation. This information is provided in Service | certificate validation. This information is provided in Service | |||
Binding (SVCB) records for DNS Servers, defined by | Binding (SVCB) records for DNS Servers, defined by | |||
[I-D.schwartz-svcb-dns]. | [I-D.schwartz-svcb-dns]. | |||
The following is an example of an SVCB record describing a DoH | The following is an example of an SVCB record describing a DoH server | |||
server: | discovered by querying for "_dns.example.net": | |||
_dns.example.net 7200 IN SVCB 1 . ( | _dns.example.net 7200 IN SVCB 1 . ( | |||
alpn=h2 dohpath=/dns-query{?dns} ) | alpn=h2 dohpath=/dns-query{?dns} ) | |||
The following is an example of an SVCB record describing a DoT | The following is an example of an SVCB record describing a DoT server | |||
server: | discovered by querying for "_dns.example.net": | |||
_dns.example.net 7200 IN SVCB 1 dot.example.net ( | _dns.example.net 7200 IN SVCB 1 dot.example.net ( | |||
alpn=dot port=8530 ) | alpn=dot port=8530 ) | |||
If multiple Designated Resolvers are available, using one or more | If multiple Designated Resolvers are available, using one or more | |||
encrypted DNS protocols, the resolver deployment can indicate a | encrypted DNS protocols, the resolver deployment can indicate a | |||
preference using the priority fields in each SVCB record | preference using the priority fields in each SVCB record | |||
[I-D.ietf-dnsop-svcb-https]. | [I-D.ietf-dnsop-svcb-https]. | |||
To avoid name lookup deadlock, Designated Resolvers SHOULD follow the | ||||
guidance in Section 10 of [RFC8484] regarding the avoidance of DNS- | ||||
based references that block the completion of the TLS handshake. | ||||
This document focuses on discovering DoH and DoT Designated | This document focuses on discovering DoH and DoT Designated | |||
Resolvers. Other protocols can also use the format defined by | Resolvers. Other protocols can also use the format defined by | |||
[I-D.schwartz-svcb-dns]. However, if any protocol does not involve | [I-D.schwartz-svcb-dns]. However, if any protocol does not involve | |||
some form of certificate validation, new validation mechanisms will | some form of certificate validation, new validation mechanisms will | |||
need to be defined to support validating designation as defined in | need to be defined to support validating designation as defined in | |||
Section 4.1. | Section 4.1. | |||
4. Discovery Using Resolver IP Addresses | 4. Discovery Using Resolver IP Addresses | |||
When a DNS client is configured with an Unencrypted Resolver IP | When a DNS client is configured with an Unencrypted Resolver IP | |||
address, it SHOULD query the resolver for SVCB records for | address, it SHOULD query the resolver for SVCB records for | |||
"dns://resolver.arpa" before making other queries. Specifically, the | "dns://resolver.arpa" before making other queries. Specifically, the | |||
client issues a query for "_dns.resolver.arpa" with the SVCB resource | client issues a query for "_dns.resolver.arpa" with the SVCB resource | |||
record type (64) [I-D.ietf-dnsop-svcb-https]. | record type (64) [I-D.ietf-dnsop-svcb-https]. | |||
Because this query is for an SUDN, which no entity can claim | ||||
ownership over, the SVCB response MUST NOT use the "." value for the | ||||
SvcDomainName. Instead, the domain name used for DoT or used to | ||||
construct the DoH template MUST be provided. | ||||
The following is an example of an SVCB record describing a DoH server | ||||
discovered by querying for "_dns.resolver.arpa": | ||||
_dns.resolver.arpa 7200 IN SVCB 1 doh.example.net ( | ||||
alpn=h2 dohpath=/dns-query{?dns} ) | ||||
The following is an example of an SVCB record describing a DoT server | ||||
discovered by querying for "_dns.resolver.arpa": | ||||
_dns.resolver.arpa 7200 IN SVCB 1 dot.example.net ( | ||||
alpn=dot port=8530 ) | ||||
If the recursive resolver that receives this query has one or more | If the recursive resolver that receives this query has one or more | |||
Designated Resolvers, it will return the corresponding SVCB records. | Designated Resolvers, it will return the corresponding SVCB records. | |||
When responding to these special queries for "dns://resolver.arpa", | When responding to these special queries for "dns://resolver.arpa", | |||
the recursive resolver SHOULD include the A and AAAA records for the | the recursive resolver SHOULD include the A and AAAA records for the | |||
name of the Designated Resolver in the Additional Answers section. | name of the Designated Resolver in the Additional Answers section. | |||
This will allow the DNS client to make queries over an encrypted | This will allow the DNS client to make queries over an encrypted | |||
connection without waiting to resolve the Encrypted Resolver name per | connection without waiting to resolve the Encrypted Resolver name per | |||
[I-D.ietf-dnsop-svcb-https]. If no A/AAAA records or SVCB IP address | [I-D.ietf-dnsop-svcb-https]. If no A/AAAA records or SVCB IP address | |||
hints are included, clients will be forced to delay use of the | hints are included, clients will be forced to delay use of the | |||
Encrypted Resolver until an additional DNS lookup for the A and AAAA | Encrypted Resolver until an additional DNS lookup for the A and AAAA | |||
skipping to change at page 9, line 20 ¶ | skipping to change at page 9, line 36 ¶ | |||
the rationale behind "ipv4only.arpa" in [RFC8880]. | the rationale behind "ipv4only.arpa" in [RFC8880]. | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[I-D.ietf-dnsop-svcb-https] | [I-D.ietf-dnsop-svcb-https] | |||
Schwartz, B., Bishop, M., and E. Nygren, "Service binding | Schwartz, B., Bishop, M., and E. Nygren, "Service binding | |||
and parameter specification via the DNS (DNS SVCB and | and parameter specification via the DNS (DNS SVCB and | |||
HTTPS RRs)", Work in Progress, Internet-Draft, draft-ietf- | HTTPS RRs)", Work in Progress, Internet-Draft, draft-ietf- | |||
dnsop-svcb-https-05, 21 April 2021, | dnsop-svcb-https-06, 16 June 2021, | |||
<https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb- | <https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb- | |||
https-05.txt>. | https-06.txt>. | |||
[I-D.ietf-tls-esni] | [I-D.ietf-tls-esni] | |||
Rescorla, E., Oku, K., Sullivan, N., and C. A. Wood, "TLS | Rescorla, E., Oku, K., Sullivan, N., and C. A. Wood, "TLS | |||
Encrypted Client Hello", Work in Progress, Internet-Draft, | Encrypted Client Hello", Work in Progress, Internet-Draft, | |||
draft-ietf-tls-esni-10, 8 March 2021, | draft-ietf-tls-esni-12, 7 July 2021, | |||
<https://www.ietf.org/archive/id/draft-ietf-tls-esni- | <https://www.ietf.org/archive/id/draft-ietf-tls-esni- | |||
10.txt>. | 12.txt>. | |||
[I-D.schwartz-svcb-dns] | [I-D.schwartz-svcb-dns] | |||
Schwartz, B., "Service Binding Mapping for DNS Servers", | Schwartz, B., "Service Binding Mapping for DNS Servers", | |||
Work in Progress, Internet-Draft, draft-schwartz-svcb-dns- | Work in Progress, Internet-Draft, draft-schwartz-svcb-dns- | |||
03, 19 April 2021, <https://www.ietf.org/archive/id/draft- | 03, 19 April 2021, <https://www.ietf.org/archive/id/draft- | |||
schwartz-svcb-dns-03.txt>. | schwartz-svcb-dns-03.txt>. | |||
[RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. | [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. | |||
J., and E. Lear, "Address Allocation for Private | J., and E. Lear, "Address Allocation for Private | |||
Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, | Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, | |||
End of changes. 20 change blocks. | ||||
25 lines changed or deleted | 48 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |