CINXE.COM
draft-ietf-add-ddr-00
<!DOCTYPE html> <html data-bs-theme="auto" lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title> draft-ietf-add-ddr-00 </title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://static.ietf.org/fonts/inter/import.css" rel="stylesheet"> <link href="https://static.ietf.org/fonts/noto-sans-mono/import.css" rel="stylesheet"> <link rel="stylesheet" href="https://static.ietf.org/dt/12.28.2/ietf/css/document_html_referenced.css"> <script type="module" crossorigin="" src="https://static.ietf.org/dt/12.28.2/assets/embedded-e653257c.js"></script> <link href="https://static.ietf.org/dt/12.28.2/assets/create-pinia-singleton-091c62b7.js" type="text/javascript" crossorigin="anonymous" rel="modulepreload" as="script" /> <link href="https://static.ietf.org/dt/12.28.2/assets/Scrollbar-7de50899.js" type="text/javascript" crossorigin="anonymous" rel="modulepreload" as="script" /> <script src="https://static.ietf.org/dt/12.28.2/ietf/js/document_html.js"></script> <script src="https://static.ietf.org/dt/12.28.2/ietf/js/theme.js"></script> <link rel="alternate" type="application/atom+xml" title="Document changes" href="/feed/document-changes/draft-ietf-add-ddr/"> <meta name="description" content="Discovery of Designated Resolvers (Internet-Draft, 2021)" > <link rel="apple-touch-icon" sizes="180x180" href="https://static.ietf.org/dt/12.28.2/ietf/images/ietf-logo-nor-180.png"> <link rel="icon" sizes="32x32" href="https://static.ietf.org/dt/12.28.2/ietf/images/ietf-logo-nor-32.png"> <link rel="icon" sizes="16x16" href="https://static.ietf.org/dt/12.28.2/ietf/images/ietf-logo-nor-16.png"> <link rel="manifest" href="/site.webmanifest"> <link rel="mask-icon" href="https://static.ietf.org/dt/12.28.2/ietf/images/ietf-logo-nor-mask.svg" color="#ffffff"> <meta name="msapplication-TileColor" content="#ffffff"> <meta name="theme-color" content="#ffffff"> <meta property="og:title" content="Discovery of Designated Resolvers"> <meta property="og:url" content="https://datatracker.ietf.org/doc/html/draft-ietf-add-ddr-00"> <link rel="canonical" href="https://datatracker.ietf.org/doc/html/draft-ietf-add-ddr-00"> <meta property="og:site_name" content="IETF Datatracker"> <meta property="og:description" content="This document defines Discovery of Designated Resolvers (DDR), a mechanism for DNS clients to use DNS records to discover a resolver's encrypted DNS configuration. This mechanism can be used to move from unencrypted DNS to encrypted DNS when only the IP address of an encrypted resolver is known. It can also be used to discover support for encrypted DNS protocols when the name of an encrypted resolver is known. This mechanism is designed to be limited to cases where unencrypted resolvers and their designated resolvers are operated by the same entity."> <meta property="og:type" content="article"> <meta property="og:image" content="https://static.ietf.org/dt/12.28.2/ietf/images/ietf-logo-card.png"> <meta property="og:image:alt" content="Logo of the IETF"> <meta property="article:section" content="IETF - Internet Engineering Task Force"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta name="twitter:card" content="summary_large_image"> <meta property="article:author" content="Tommy Pauly"> <meta property="article:author" content="Eric Kinnear"> <meta property="article:author" content="Christopher A. Wood"> <meta property="article:author" content="Patrick McManus"> <meta property="article:author" content="Tommy Jensen"> <style> .diff-form .select2-selection__rendered { direction: rtl; text-align: left; } </style> </head> <body> <noscript><iframe class="status" title="Site status" src="/status/latest"></iframe></noscript> <div class="vue-embed" data-component="Status"></div> <div class="btn-toolbar sidebar-toolbar position-fixed top-0 end-0 m-2 m-lg-3 d-print-none"> <div class="dropdown"> <button class="btn btn-outline-secondary btn-sm me-1 dropdown-toggle d-flex align-items-center" id="bd-theme" type="button" aria-expanded="false" data-bs-toggle="dropdown" aria-label="Toggle theme"> <i class="theme-icon-active bi bi-circle-half"></i> </button> <ul class="dropdown-menu" aria-labelledby="bd-theme"> <li> <button type="button" class="dropdown-item d-flex align-items-center" data-bs-theme-value="light" aria-pressed="false"> <i class="me-2 opacity-50 theme-icon bi bi-sun-fill"></i> Light<i class="bi bi-check2 ms-auto d-none"></i> </button> </li> <li> <button type="button" class="dropdown-item d-flex align-items-center" data-bs-theme-value="dark" aria-pressed="false"> <i class="me-2 opacity-50 theme-icon bi bi-moon-stars-fill"></i> Dark<i class="bi bi-check2 ms-auto d-none"></i> </button> </li> <li> <button type="button" class="dropdown-item d-flex align-items-center active" data-bs-theme-value="auto" aria-pressed="true"> <i class="me-2 opacity-50 theme-icon bi bi-circle-half"></i> Auto<i class="bi bi-check2 ms-auto d-none"></i> </button> </li> </ul> </div> <button class="btn btn-outline-secondary btn-sm sidebar-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#sidebar" aria-expanded="true" aria-controls="sidebar" aria-label="Toggle metadata sidebar" title="Toggle metadata sidebar"> <i class="bi bi-arrow-bar-left sidebar-shown"></i> <i class="bi bi-arrow-bar-right sidebar-collapsed"></i> </button> </div> <nav class="navbar bg-light-subtle px-1 fixed-top d-print-none d-md-none"> <a class="nav-link ps-1" href="/doc/draft-ietf-add-ddr/"> draft-ietf-add-ddr-00 <br class="d-sm-none"> <span class="ms-sm-3 badge rounded-pill badge-draft"> Internet-Draft </span> </a> <button class="navbar-toggler p-1" type="button" data-bs-toggle="collapse" data-bs-target="#docinfo-collapse" aria-controls="docinfo-collapse" aria-expanded="false" aria-label="Show document information"> <span class="navbar-toggler-icon small"></span> </button> <div class="navbar-nav navbar-nav-scroll overscroll-none collapse pt-1" id="docinfo-collapse"> <div class="bg-light-subtle p-0"> <table class="table table-sm table-borderless small"> <tbody class="meta align-top"> <tr> <th scope="row"></th> <th scope="row">Title</th> <td class="edit"></td> <td>Discovery of Designated Resolvers</td> </tr> </tbody> <tbody class="meta align-top "> <tr> <th scope="row">Document</th> <th scope="row">Document type</th> <td class="edit"></td> <td> <div>This is an older version of an Internet-Draft that was ultimately published as <a href="/doc/rfc9462/">RFC 9462</a>.</div> </td> </tr> <tr> <td></td> <th scope="row">Select version</th> <td class="edit"></td> <td> <ul class="revision-list pagination pagination-sm text-center flex-wrap my-0"> <li class="page-item active"> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-00" > 00 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-01" rel="nofollow"> 01 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-02" rel="nofollow"> 02 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-03" rel="nofollow"> 03 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-04" rel="nofollow"> 04 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-05" rel="nofollow"> 05 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-06" rel="nofollow"> 06 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-07" rel="nofollow"> 07 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-08" rel="nofollow"> 08 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-09" rel="nofollow"> 09 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-10" > 10 </a> </li> <li class="page-item rfc"> <a class="page-link" href="/doc/html/rfc9462"> RFC 9462 </a> </li> </ul> </td> </tr> <tr> <td></td> <th scope="row">Compare versions</th> <td class="edit"></td> <td> <form class="form-horizontal diff-form" action="https://author-tools.ietf.org/iddiff" method="get" target="_blank"> <select class="form-select form-select-sm mb-1 select2-field" data-max-entries="1" data-width="resolve" data-allow-clear="false" data-minimum-input-length="0" aria-label="From revision" name="url1"> <option value="rfc9462"> RFC 9462 </option> <option value="draft-ietf-add-ddr-10"> draft-ietf-add-ddr-10 </option> <option value="draft-ietf-add-ddr-09" selected> draft-ietf-add-ddr-09 </option> <option value="draft-ietf-add-ddr-08"> draft-ietf-add-ddr-08 </option> <option value="draft-ietf-add-ddr-07"> draft-ietf-add-ddr-07 </option> <option value="draft-ietf-add-ddr-06"> draft-ietf-add-ddr-06 </option> <option value="draft-ietf-add-ddr-05"> draft-ietf-add-ddr-05 </option> <option value="draft-ietf-add-ddr-04"> draft-ietf-add-ddr-04 </option> <option value="draft-ietf-add-ddr-03"> draft-ietf-add-ddr-03 </option> <option value="draft-ietf-add-ddr-02"> draft-ietf-add-ddr-02 </option> <option value="draft-ietf-add-ddr-01"> draft-ietf-add-ddr-01 </option> <option value="draft-ietf-add-ddr-00"> draft-ietf-add-ddr-00 </option> <option value="draft-pauly-add-deer-00"> draft-pauly-add-deer-00 </option> </select> <select class="form-select form-select-sm mb-1 select2-field" data-max-entries="1" data-width="resolve" data-allow-clear="false" data-minimum-input-length="0" aria-label="To revision" name="url2"> <option value="rfc9462"> RFC 9462 </option> <option value="draft-ietf-add-ddr-10" selected> draft-ietf-add-ddr-10 </option> <option value="draft-ietf-add-ddr-09"> draft-ietf-add-ddr-09 </option> <option value="draft-ietf-add-ddr-08"> draft-ietf-add-ddr-08 </option> <option value="draft-ietf-add-ddr-07"> draft-ietf-add-ddr-07 </option> <option value="draft-ietf-add-ddr-06"> draft-ietf-add-ddr-06 </option> <option value="draft-ietf-add-ddr-05"> draft-ietf-add-ddr-05 </option> <option value="draft-ietf-add-ddr-04"> draft-ietf-add-ddr-04 </option> <option value="draft-ietf-add-ddr-03"> draft-ietf-add-ddr-03 </option> <option value="draft-ietf-add-ddr-02"> draft-ietf-add-ddr-02 </option> <option value="draft-ietf-add-ddr-01"> draft-ietf-add-ddr-01 </option> <option value="draft-ietf-add-ddr-00"> draft-ietf-add-ddr-00 </option> <option value="draft-pauly-add-deer-00"> draft-pauly-add-deer-00 </option> </select> <button type="submit" class="btn btn-primary btn-sm" value="--html" name="difftype"> Side-by-side </button> <button type="submit" class="btn btn-primary btn-sm" value="--hwdiff" name="difftype"> Inline </button> </form> </td> </tr> <tr> <td></td> <th scope="row">Authors</th> <td class="edit"> </td> <td> <span ><a title="Datatracker profile of Tommy Pauly" href="/person/tpauly@apple.com" >Tommy Pauly</a> <a href="mailto:tpauly%40apple.com" aria-label="Compose email to tpauly@apple.com" title="Compose email to tpauly@apple.com"> <i class="bi bi-envelope"></i></a></span>, <span ><a title="Datatracker profile of Eric Kinnear" href="/person/ekinnear@apple.com" >Eric Kinnear</a> <a href="mailto:ekinnear%40apple.com" aria-label="Compose email to ekinnear@apple.com" title="Compose email to ekinnear@apple.com"> <i class="bi bi-envelope"></i></a></span>, <span ><a title="Datatracker profile of Christopher A. Wood" href="/person/caw@heapingbits.net" >Christopher A. Wood</a> <a href="mailto:caw%40heapingbits.net" aria-label="Compose email to caw@heapingbits.net" title="Compose email to caw@heapingbits.net"> <i class="bi bi-envelope"></i></a></span>, <span ><a title="Datatracker profile of Patrick McManus" href="/person/mcmanus@ducksong.com" >Patrick McManus</a> <a href="mailto:mcmanus%40ducksong.com" aria-label="Compose email to mcmanus@ducksong.com" title="Compose email to mcmanus@ducksong.com"> <i class="bi bi-envelope"></i></a></span>, <span ><a title="Datatracker profile of Tommy Jensen" href="/person/tojens.ietf@gmail.com" >Tommy Jensen</a> <a href="mailto:tojens.ietf%40gmail.com" aria-label="Compose email to tojens.ietf@gmail.com" title="Compose email to tojens.ietf@gmail.com"> <i class="bi bi-envelope"></i></a></span> </td> </tr> <tr> <td></td> <th scope="row">Replaces</th> <td class="edit"> </td> <td> <a href="/doc/html/draft-pauly-add-deer" title="Discovery of Equivalent Encrypted Resolvers">draft-pauly-add-deer</a> </td> </tr> <tr> <td></td> <th scope="row"> RFC stream </th> <td class="edit"> </td> <td > <img alt="IETF Logo" class="d-lm-none w-25 mt-1" src="https://static.ietf.org/dt/12.28.2/ietf/images/ietf-logo-nor-white.svg" > <img alt="IETF Logo" class="d-dm-none w-25 mt-1" src="https://static.ietf.org/dt/12.28.2/ietf/images/ietf-logo-nor.svg" > </td> </tr> <tr> <td></td> <th scope="row"> Other formats </th> <td class="edit"> </td> <td> <div class="buttonlist"> <a class="btn btn-primary btn-sm" target="_blank" href="https://www.ietf.org/archive/id/draft-ietf-add-ddr-00.txt"> <i class="bi bi-file-text"></i> txt </a> <a class="btn btn-primary btn-sm" target="_blank" href="/doc/draft-ietf-add-ddr/00/bibtex/"> <i class="bi bi-file-ruled"></i> bibtex </a> <a class="btn btn-primary btn-sm" target="_blank" href="/doc/bibxml3/draft-ietf-add-ddr-00.xml"> <i class="bi bi-file-code"></i> bibxml </a> </div> </td> </tr> <tr> <td> </td> <th scope="row"> Additional resources </th> <td class="edit"> </td> <td> <a href="https://mailarchive.ietf.org/arch/browse/add/?q=draft-ietf-add-ddr"> Mailing list discussion </a> </td> </tr> </tbody> <tr> <th scope="row"></th> <th scope="row"></th> <td class="edit"></td> <td> <a class="btn btn-sm btn-warning mb-3" target="_blank" href="https://github.com/ietf-tools/datatracker/issues/new/choose"> Report a bug <i class="bi bi-bug"></i> </a> </td> </tr> </table> </div> </div> </nav> <div class="row g-0"> <div class="col-md-9 d-flex justify-content-center lh-sm" data-bs-spy="scroll" data-bs-target="#toc-nav" data-bs-smooth-scroll="true" tabindex="0" id="content"> <div class="rfcmarkup"> <br class="noprint"> <!-- [html-validate-disable-block attr-quotes, void-style, element-permitted-content, heading-level -- FIXME: rfcmarkup/rfc2html generates HTML with issues] --> <div class="rfcmarkup"><pre>ADD T. Pauly Internet-Draft E. Kinnear Intended status: Standards Track Apple Inc. Expires: 14 August 2021 C.A. Wood Cloudflare P. McManus Fastly T. Jensen Microsoft 10 February 2021 <span class="h1">Discovery of Designated Resolvers</span> <span class="h1">draft-ietf-add-ddr-00</span> Abstract This document defines Discovery of Designated Resolvers (DDR), a mechanism for DNS clients to use DNS records to discover a resolver's encrypted DNS configuration. This mechanism can be used to move from unencrypted DNS to encrypted DNS when only the IP address of an encrypted resolver is known. It can also be used to discover support for encrypted DNS protocols when the name of an encrypted resolver is known. This mechanism is designed to be limited to cases where unencrypted resolvers and their designated resolvers are operated by the same entity. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of <a href="/doc/html/bcp78">BCP 78</a> and <a href="/doc/html/bcp79">BCP 79</a>. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at <a href="https://datatracker.ietf.org/drafts/current/">https://datatracker.ietf.org/drafts/current/</a>. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 14 August 2021. Copyright Notice Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved. <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 1]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span> <span class="grey">Internet-Draft DDR February 2021</span> This document is subject to <a href="/doc/html/bcp78">BCP 78</a> and the IETF Trust's Legal Provisions Relating to IETF Documents (<a href="https://trustee.ietf.org/license-info">https://trustee.ietf.org/</a> <a href="https://trustee.ietf.org/license-info">license-info</a>) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the <a href="https://trustee.ietf.org/license-info">Trust Legal Provisions</a> and are provided without warranty as described in the Simplified BSD License. Table of Contents <a href="#section-1">1</a>. Introduction . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-2">2</a> <a href="#section-1.1">1.1</a>. Specification of Requirements . . . . . . . . . . . . . . <a href="#page-3">3</a> <a href="#section-2">2</a>. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a> <a href="#section-3">3</a>. DNS Service Binding Records . . . . . . . . . . . . . . . . . <a href="#page-3">3</a> <a href="#section-4">4</a>. Discovery Using Resolver IP Addresses . . . . . . . . . . . . <a href="#page-4">4</a> <a href="#section-4.1">4.1</a>. Authenticated Discovery . . . . . . . . . . . . . . . . . <a href="#page-5">5</a> <a href="#section-4.2">4.2</a>. Opportunistic Discovery . . . . . . . . . . . . . . . . . <a href="#page-5">5</a> <a href="#section-5">5</a>. Discovery Using Resolver Names . . . . . . . . . . . . . . . <a href="#page-6">6</a> <a href="#section-6">6</a>. Deployment Considerations . . . . . . . . . . . . . . . . . . <a href="#page-6">6</a> <a href="#section-6.1">6.1</a>. Caching Forwarders . . . . . . . . . . . . . . . . . . . <a href="#page-7">7</a> <a href="#section-6.2">6.2</a>. Certificate Management . . . . . . . . . . . . . . . . . <a href="#page-7">7</a> <a href="#section-7">7</a>. Security Considerations . . . . . . . . . . . . . . . . . . . <a href="#page-7">7</a> <a href="#section-8">8</a>. IANA Considerations . . . . . . . . . . . . . . . . . . . . . <a href="#page-8">8</a> <a href="#section-8.1">8.1</a>. Special Use Domain Name "resolver.arpa" . . . . . . . . . <a href="#page-8">8</a> <a href="#section-9">9</a>. References . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-8">8</a> <a href="#section-9.1">9.1</a>. Normative References . . . . . . . . . . . . . . . . . . <a href="#page-8">8</a> <a href="#section-9.2">9.2</a>. Informative References . . . . . . . . . . . . . . . . . <a href="#page-9">9</a> <a href="#appendix-A">Appendix A</a>. Rationale for using SVCB records . . . . . . . . . . <a href="#page-10">10</a> Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-11">11</a> <span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>. Introduction</span> When DNS clients wish to use encrypted DNS protocols such as DNS- over-TLS (DoT) [<a href="/doc/html/rfc7858" title=""Specification for DNS over Transport Layer Security (TLS)"">RFC7858</a>] or DNS-over-HTTPS (DoH) [<a href="/doc/html/rfc8484" title=""DNS Queries over HTTPS (DoH)"">RFC8484</a>], they require additional information beyond the IP address of the DNS server, such as the resolver's hostname, non-standard ports, or URL paths. However, common configuration mechanisms only provide the resolver's IP address during configuration. Such mechanisms include network provisioning protocols like DHCP [<a href="/doc/html/rfc2132" title=""DHCP Options and BOOTP Vendor Extensions"">RFC2132</a>] and IPv6 Router Advertisement (RA) options [<a href="/doc/html/rfc8106" title=""IPv6 Router Advertisement Options for DNS Configuration"">RFC8106</a>], as well as manual configuration. This document defines two mechanisms for clients to discover designated resolvers using DNS server Service Binding (SVCB, [<a href="#ref-I-D.ietf-dnsop-svcb-https">I-D.ietf-dnsop-svcb-https</a>]) records: <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 2]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span> <span class="grey">Internet-Draft DDR February 2021</span> 1. When only an IP address of an Unencrypted Resolver is known, the client queries a special use domain name to discover DNS SVCB records associated with the Unencrypted Resolver (<a href="#section-4">Section 4</a>). 2. When the hostname of an encrypted DNS server is known, the client requests details by sending a query for a DNS SVCB record. This can be used to discover alternate encrypted DNS protocols supported by a known server, or to provide details if a resolver name is provisioned by a network (<a href="#section-5">Section 5</a>). Both of these approaches allow clients to confirm that a discovered Encrypted Resolver is designated by the originally provisioned resolver. "Equivalence" in this context means that the resolvers are operated by the same entity; for example, the resolvers are accessible on the same IP address, or there is a certificate that claims ownership over both resolvers. <span class="h3"><a class="selflink" id="section-1.1" href="#section-1.1">1.1</a>. Specification of Requirements</span> 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 <a href="/doc/html/bcp14">BCP</a> <a href="/doc/html/bcp14">14</a> [<a href="/doc/html/rfc2119" title=""Key words for use in RFCs to Indicate Requirement Levels"">RFC2119</a>] [<a href="/doc/html/rfc8174" title=""Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words"">RFC8174</a>] when, and only when, they appear in all capitals, as shown here. <span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>. Terminology</span> This document defines the following terms: DDR: Discovery of Designated Resolvers. Refers to the mechanisms defined in this document. Designated Resolver: A resolver, presumably an Encrypted Resolver, designated by another resolver for use in its own place. This designation can be authenticated with TLS certificates. Encrypted Resolver: A DNS resolver using any encrypted DNS transport. This includes current mechanisms such as DoH and DoT as well as future mechanisms. Unencrypted Resolver: A DNS resolver using TCP or UDP port 53. <span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>. DNS Service Binding Records</span> DNS resolvers can advertise one or more Designated Resolvers that may offer support over encrypted channels and are controlled by the same entity. <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 3]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span> <span class="grey">Internet-Draft DDR February 2021</span> When a client discovers Designated Resolvers, it learns information such as the supported protocols, ports, and server name to use in certificate validation. This information is provided in Service Binding (SVCB) records for DNS Servers, defined by [<a href="#ref-I-D.schwartz-svcb-dns">I-D.schwartz-svcb-dns</a>]. The following is an example of an SVCB record describing a DoH server: _dns.example.net 7200 IN SVCB 1 . ( alpn=h2 dohpath=/dns-query{?dns} ipv4hint=x.y.z.w ) The following is an example of an SVCB record describing a DoT server: _dns.example.net 7200 IN SVCB 1 dot.example.net ( alpn=dot port=8530 ipv4hint=x.y.z.w ) If multiple Designated Resolvers are available, using one or more encrypted DNS protocols, the resolver deployment can indicate a preference using the priority fields in each SVCB record [<a href="#ref-I-D.ietf-dnsop-svcb-https">I-D.ietf-dnsop-svcb-https</a>]. This document focuses on discovering DoH and DoT Designated Resolvers. Other protocols can also use the format defined by [<a href="#ref-I-D.schwartz-svcb-dns">I-D.schwartz-svcb-dns</a>]. However, if any protocol does not involve some form of certificate validation, new validation mechanisms will need to be defined to support validating equivalence as defined in <a href="#section-4.1">Section 4.1</a>. <span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>. Discovery Using Resolver IP Addresses</span> When a DNS client is configured with an Unencrypted Resolver IP address, it SHOULD query the resolver for SVCB records for "dns://resolver.arpa" before making other queries. Specifically, the client issues a query for "_dns.resolver.arpa" with the SVCB resource record type (64) [<a href="#ref-I-D.ietf-dnsop-svcb-https">I-D.ietf-dnsop-svcb-https</a>]. If the recursive resolver that receives this query has one or more Designated Resolvers, it will return the corresponding SVCB records. When responding to these special queries for "dns://resolver.arpa", the SVCB records SHOULD contain at least one "ipv4hint" and/or "ipv6hint" keys. These address hints indicate the address on which the corresponding Encrypted Resolver can be reached and avoid additional DNS lookup for the A and AAAA records of the Encrypted Resolver name. <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 4]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span> <span class="grey">Internet-Draft DDR February 2021</span> <span class="h3"><a class="selflink" id="section-4.1" href="#section-4.1">4.1</a>. Authenticated Discovery</span> In order to be considered an authenticated Designated Resolver, the TLS certificate presented by the Encrypted Resolver MUST contain both the domain name (from the SVCB answer) and the IP address of the designating Unencrypted Resolver within the SubjectAlternativeName certificate field. The client MUST check the SubjectAlternativeName field for both the Unencrypted Resolver's IP address and the advertised name of the Designated Resolver. If the certificate can be validated, the client SHOULD use the discovered Designated Resolver for any cases in which it would have otherwise used the Unencrypted Resolver. If the Designated Resolver has a different IP address than the Unencrypted Resolver and the TLS certificate does not cover the Unencrypted Resolver address, the client MUST NOT use the discovered Encrypted Resolver. Additionally, the client SHOULD suppress any further queries for Designated Resolvers using this Unencrypted Resolver for the length of time indicated by the SVCB record's Time to Live (TTL). If the Designated Resolver and the Unencrypted Resolver share an IP address, clients MAY choose to opportunistically use the Encrypted Resolver even without this certificate check (<a href="#section-4.2">Section 4.2</a>). <span class="h3"><a class="selflink" id="section-4.2" href="#section-4.2">4.2</a>. Opportunistic Discovery</span> There are situations where authenticated discovery of encrypted DNS configuration over unencrypted DNS is not possible. This includes Unencrypted Resolvers on non-public IP addresses whose identity cannot be confirmed using TLS certificates. Opportunistic Privacy is defined for DoT in <a href="/doc/html/rfc7858#section-4.1">Section 4.1 of [RFC7858]</a> as a mode in which clients do not validate the name of the resolver presented in the certificate. A client MAY use information from the SVCB record for "dns://resolver.arpa" with this "opportunistic" approach (not validating the names presented in the SubjectAlternativeName field of the certificate) as long as the IP address of the Encrypted Resolver does not differ from the IP address of the Unencrypted Resolver, and that IP address is a private address (such as those defined in [<a href="/doc/html/rfc1918" title=""Address Allocation for Private Internets"">RFC1918</a>]). This approach can be used for DoT or DoH. If the IP addresses of the Encrypted and Unencrypted Resolvers are not the same, or the shared IP address is not a private IP address, the client MUST NOT use the Encrypted Resolver opportunistically. <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 5]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span> <span class="grey">Internet-Draft DDR February 2021</span> <span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>. Discovery Using Resolver Names</span> A DNS client that already knows the name of an Encrypted Resolver can use DEER to discover details about all supported encrypted DNS protocols. This situation can arise if a client has been configured to use a given Encrypted Resolver, or if a network provisioning protocol (such as DHCP or IPv6 Router Advertisements) provides a name for an Encrypted Resolver alongside the resolver IP address. For these cases, the client simply sends a DNS SVCB query using the known name of the resolver. This query can be issued to the named Encrypted Resolver itself or to any other resolver. Unlike the case of bootstrapping from an Unencrypted Resolver (<a href="#section-4">Section 4</a>), these records SHOULD be available in the public DNS. For example, if the client already knows about a DoT server "resolver.example.com", it can issue an SVCB query for "_dns.resolver.example.com" to discover if there are other encrypted DNS protocols available. In the following example, the SVCB answers indicate that "resolver.example.com" supports both DoH and DoT, and that the DoH server indicates a higher priority than the DoT server. _dns.resolver.example.com 7200 IN SVCB 1 . ( alpn=h2 dohpath=/dns-query{?dns} ) _dns.resolver.example.com 7200 IN SVCB 2 . ( alpn=dot ) Often, the various supported encrypted DNS protocols will be accessible using the same hostname. In the example above, both DoH and DoT use the name "resolver.example.com" for their TLS certficates. If a deployment uses a different hostname for one protocol, but still wants clients to treat both DNS servers as designated, the TLS certificates MUST include both names in the SubjectAlternativeName fields. Note that this name verification is not related to the DNS resolver that provided the SVCB answer. For example, being able to discover a Designated Resolver for a known Encrypted Resolver is 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 discover if there is a designated DoH server for "foo.resolver.example.com". <span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>. Deployment Considerations</span> Resolver deployments that support DEER are advised to consider the following points. <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 6]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-7" ></span> <span class="grey">Internet-Draft DDR February 2021</span> <span class="h3"><a class="selflink" id="section-6.1" href="#section-6.1">6.1</a>. Caching Forwarders</span> If a caching forwarder consults multiple resolvers, it may be possible for it to cache records for the "resolver.arpa" Special Use Domain Name (SUDN) for multiple resolvers. This may result in clients sending queries intended to discover Designated Resolvers for resolver "foo" and receiving answers for resolvers "foo" and "bar". A client will successfully reject unintended connections because the authenticated discovery will fail or the resolver addresses do not match. Clients that attempt unauthenticated connections to resolvers discovered through SVCB queries run the risk of connecting to the wrong server in this scenario. To prevent unnecessary traffic from clients to incorrect resolvers, DNS caching resolvers SHOULD NOT cache results for the "resolver.arpa" SUDN other than for Designated Resolvers under their control. <span class="h3"><a class="selflink" id="section-6.2" href="#section-6.2">6.2</a>. Certificate Management</span> Resolver owners that support authenticated 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. <span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>. Security Considerations</span> Since client can receive DNS SVCB answers over unencrypted DNS, on- path attackers can prevent successful discovery by dropping SVCB packets. Clients should be aware that it might not be possible to distinguish between resolvers that do not have any Designated Resolver and such an active attack. While the IP address of the Unencrypted Resolver is often provisioned over insecure mechanisms, it can also be provisioned securely, such as via manual configuration, a VPN, or on a network with protections like RA guard [<a href="/doc/html/rfc6105" title=""IPv6 Router Advertisement Guard"">RFC6105</a>]. 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 Resolver. Such an Encrypted Resolver might have a valid certificate, but be operated by an attacker that is trying to observe or modify user queries without the knowledge of the client or network. <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 7]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-8" ></span> <span class="grey">Internet-Draft DDR February 2021</span> If the IP address of a Designated Resolver differs from that of an Unencrypted Resolver, clients MUST validate that the IP address of the Unencrypted Resolver is covered by the SubjectAlternativeName of the Encrypted Resolver's TLS certificate (<a href="#section-4.1">Section 4.1</a>). Opportunistic use of Encrypted Resolvers MUST be limited to cases where the Unencrypted Resolver and Designated Resolver have the same IP address (<a href="#section-4.2">Section 4.2</a>). <span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a>. IANA Considerations</span> <span class="h3"><a class="selflink" id="section-8.1" href="#section-8.1">8.1</a>. Special Use Domain Name "resolver.arpa"</span> This document calls for the creation of the "resolver.arpa" SUDN. This will allow resolvers to respond to queries directed at themselves rather than a specific domain name. While this document uses "resolver.arpa" to return SVCB records indicating designated encrypted capability, the name is generic enough to allow future reuse for other purposes where the resolver wishes to provide information about itself to the client. <span class="h2"><a class="selflink" id="section-9" href="#section-9">9</a>. References</span> <span class="h3"><a class="selflink" id="section-9.1" href="#section-9.1">9.1</a>. Normative References</span> [<a id="ref-I-D.ietf-dnsop-svcb-https">I-D.ietf-dnsop-svcb-https</a>] Schwartz, B., Bishop, M., and E. Nygren, "Service binding and parameter specification via the DNS (DNS SVCB and HTTPS RRs)", Work in Progress, Internet-Draft, <a href="/doc/html/draft-ietf-dnsop-svcb-https-02">draft-ietf-</a> <a href="/doc/html/draft-ietf-dnsop-svcb-https-02">dnsop-svcb-https-02</a>, 2 November 2020, <<a href="http://www.ietf.org/internet-drafts/draft-ietf-dnsop-svcb-https-02.txt">http://www.ietf.org/internet-drafts/draft-ietf-dnsop-</a> <a href="http://www.ietf.org/internet-drafts/draft-ietf-dnsop-svcb-https-02.txt">svcb-https-02.txt</a>>. [<a id="ref-I-D.ietf-tls-esni">I-D.ietf-tls-esni</a>] Rescorla, E., Oku, K., Sullivan, N., and C. Wood, "TLS Encrypted Client Hello", Work in Progress, Internet-Draft, <a href="/doc/html/draft-ietf-tls-esni-09">draft-ietf-tls-esni-09</a>, 16 December 2020, <<a href="http://www.ietf.org/internet-drafts/draft-ietf-tls-esni-09.txt">http://www.ietf.org/internet-drafts/draft-ietf-tls-esni-</a> <a href="http://www.ietf.org/internet-drafts/draft-ietf-tls-esni-09.txt">09.txt</a>>. [<a id="ref-I-D.schwartz-svcb-dns">I-D.schwartz-svcb-dns</a>] Schwartz, B., "Service Binding Mapping for DNS Servers", Work in Progress, Internet-Draft, <a href="/doc/html/draft-schwartz-svcb-dns-01">draft-schwartz-svcb-dns-</a> <a href="/doc/html/draft-schwartz-svcb-dns-01">01</a>, 10 August 2020, <<a href="http://www.ietf.org/internet-drafts/draft-schwartz-svcb-dns-01.txt">http://www.ietf.org/internet-drafts/</a> <a href="http://www.ietf.org/internet-drafts/draft-schwartz-svcb-dns-01.txt">draft-schwartz-svcb-dns-01.txt</a>>. <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 8]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-9" ></span> <span class="grey">Internet-Draft DDR February 2021</span> [<a id="ref-RFC1918">RFC1918</a>] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. J., and E. Lear, "Address Allocation for Private Internets", <a href="/doc/html/bcp5">BCP 5</a>, <a href="/doc/html/rfc1918">RFC 1918</a>, DOI 10.17487/RFC1918, February 1996, <<a href="https://www.rfc-editor.org/info/rfc1918">https://www.rfc-editor.org/info/rfc1918</a>>. [<a id="ref-RFC7858">RFC7858</a>] Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., and P. Hoffman, "Specification for DNS over Transport Layer Security (TLS)", <a href="/doc/html/rfc7858">RFC 7858</a>, DOI 10.17487/RFC7858, May 2016, <<a href="https://www.rfc-editor.org/info/rfc7858">https://www.rfc-editor.org/info/rfc7858</a>>. [<a id="ref-RFC8484">RFC8484</a>] Hoffman, P. and P. McManus, "DNS Queries over HTTPS (DoH)", <a href="/doc/html/rfc8484">RFC 8484</a>, DOI 10.17487/RFC8484, October 2018, <<a href="https://www.rfc-editor.org/info/rfc8484">https://www.rfc-editor.org/info/rfc8484</a>>. <span class="h3"><a class="selflink" id="section-9.2" href="#section-9.2">9.2</a>. Informative References</span> [<a id="ref-I-D.schinazi-httpbis-doh-preference-hints">I-D.schinazi-httpbis-doh-preference-hints</a>] Schinazi, D., Sullivan, N., and J. Kipp, "DoH Preference Hints for HTTP", Work in Progress, Internet-Draft, <a href="/doc/html/draft-schinazi-httpbis-doh-preference-hints-02">draft-</a> <a href="/doc/html/draft-schinazi-httpbis-doh-preference-hints-02">schinazi-httpbis-doh-preference-hints-02</a>, 13 July 2020, <<a href="http://www.ietf.org/internet-drafts/draft-schinazi-httpbis-doh-preference-hints-02.txt">http://www.ietf.org/internet-drafts/draft-schinazi-</a> <a href="http://www.ietf.org/internet-drafts/draft-schinazi-httpbis-doh-preference-hints-02.txt">httpbis-doh-preference-hints-02.txt</a>>. [<a id="ref-RFC2119">RFC2119</a>] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", <a href="/doc/html/bcp14">BCP 14</a>, <a href="/doc/html/rfc2119">RFC 2119</a>, DOI 10.17487/RFC2119, March 1997, <<a href="https://www.rfc-editor.org/info/rfc2119">https://www.rfc-editor.org/info/rfc2119</a>>. [<a id="ref-RFC2132">RFC2132</a>] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", <a href="/doc/html/rfc2132">RFC 2132</a>, DOI 10.17487/RFC2132, March 1997, <<a href="https://www.rfc-editor.org/info/rfc2132">https://www.rfc-editor.org/info/rfc2132</a>>. [<a id="ref-RFC5507">RFC5507</a>] IAB, Faltstrom, P., Ed., Austein, R., Ed., and P. Koch, Ed., "Design Choices When Expanding the DNS", <a href="/doc/html/rfc5507">RFC 5507</a>, DOI 10.17487/RFC5507, April 2009, <<a href="https://www.rfc-editor.org/info/rfc5507">https://www.rfc-editor.org/info/rfc5507</a>>. [<a id="ref-RFC6105">RFC6105</a>] Levy-Abegnoli, E., Van de Velde, G., Popoviciu, C., and J. Mohacsi, "IPv6 Router Advertisement Guard", <a href="/doc/html/rfc6105">RFC 6105</a>, DOI 10.17487/RFC6105, February 2011, <<a href="https://www.rfc-editor.org/info/rfc6105">https://www.rfc-editor.org/info/rfc6105</a>>. [<a id="ref-RFC8106">RFC8106</a>] Jeong, J., Park, S., Beloeil, L., and S. Madanapalli, "IPv6 Router Advertisement Options for DNS Configuration", <a href="/doc/html/rfc8106">RFC 8106</a>, DOI 10.17487/RFC8106, March 2017, <<a href="https://www.rfc-editor.org/info/rfc8106">https://www.rfc-editor.org/info/rfc8106</a>>. <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 9]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-10" ></span> <span class="grey">Internet-Draft DDR February 2021</span> [<a id="ref-RFC8174">RFC8174</a>] Leiba, B., "Ambiguity of Uppercase vs Lowercase in <a href="/doc/html/rfc2119">RFC</a> <a href="/doc/html/rfc2119">2119</a> Key Words", <a href="/doc/html/bcp14">BCP 14</a>, <a href="/doc/html/rfc8174">RFC 8174</a>, DOI 10.17487/RFC8174, May 2017, <<a href="https://www.rfc-editor.org/info/rfc8174">https://www.rfc-editor.org/info/rfc8174</a>>. <span class="h2"><a class="selflink" id="appendix-A" href="#appendix-A">Appendix A</a>. Rationale for using SVCB records</span> This mechanism uses SVCB/HTTPS resource records [<a href="#ref-I-D.ietf-dnsop-svcb-https">I-D.ietf-dnsop-svcb-https</a>] to communicate that a given domain designates a particular Designated Resolver for clients to use in place of an Unencrypted Resolver (using a SUDN) or another Encrypted Resolver (using its domain name). There are various other proposals for how to provide similar functionality. There are several reasons that this mechanism has chosen SVCB records: * Discovering encrypted resolver using DNS records keeps client logic for DNS self-contained and allows a DNS resolver operator to define which resolver names and IP addresses are related to one another. * Using DNS records also does not rely on bootstrapping with higher- level application operations (such as [<a href="#ref-I-D.schinazi-httpbis-doh-preference-hints">I-D.schinazi-httpbis-doh-preference-hints</a>]). * SVCB records are extensible and allow definition of parameter keys. This makes them a superior mechanism for extensibility as compared to approaches such as overloading TXT records. The same keys can be used for discovering Designated Resolvers of different transport types as well as those advertised by Unencrypted Resolvers or another Encrypted Resolver. * Clients and servers that are interested in privacy of names will already need to support SVCB records in order to use Encrypted TLS Client Hello [<a href="#ref-I-D.ietf-tls-esni">I-D.ietf-tls-esni</a>]. Without encrypting names in TLS, the value of encrypting DNS is reduced, so pairing the solutions provides the largest benefit. * Clients that support SVCB will generally send out three queries when accessing web content on a dual-stack network: A, AAAA, and HTTPS queries. Discovering a Designated Resolver as part of one of these queries, without having to add yet another query, minimizes the total number of queries clients send. While [<a href="/doc/html/rfc5507" title=""Design Choices When Expanding the DNS"">RFC5507</a>] recommends adding new RRTypes for new functionality, SVCB provides an extension mechanism that simplifies client behavior. <span class="grey">Pauly, et al. Expires 14 August 2021 [Page 10]</span></pre> <hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-11" ></span> <span class="grey">Internet-Draft DDR February 2021</span> 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, United States of America Email: caw@heapingbits.net Patrick McManus Fastly Email: mcmanus@ducksong.com Tommy Jensen Microsoft Email: tojens@microsoft.com Pauly, et al. Expires 14 August 2021 [Page 11] </pre></div> </div> </div> <div class="d-print-none col-md-3 bg-light-subtle collapse show" id="sidebar"> <div class="position-fixed border-start sidebar overflow-scroll overscroll-none no-scrollbar"> <div class="d-flex flex-column vh-100 pt-2 pt-lg-3 ps-3 pl-md-2 pl-lg-3"> <div> <a class="btn btn-primary btn-sm" href="/doc/draft-ietf-add-ddr/">Datatracker</a> <p class="fw-bold pt-2"> draft-ietf-add-ddr-00 <br> <div>This is an older version of an Internet-Draft that was ultimately published as <a href="/doc/rfc9462/">RFC 9462</a>.</div> </p> </div> <ul class="nav nav-tabs nav-fill small me-2" role="tablist"> <li class="nav-item" role="presentation" title="Document information"> <button class="nav-link px-2" id="docinfo-tab" data-bs-toggle="tab" data-bs-target="#docinfo-tab-pane" type="button" role="tab" aria-controls="docinfo-tab-pane" aria-selected="true"> <i class="bi bi-info-circle"></i><span class="d-none d-md-block d-xl-inline ms-xl-1">Info</span> </button> </li> <li class="nav-item" role="presentation" title="Table of contents"> <button class="nav-link px-2" id="toc-tab" data-bs-toggle="tab" data-bs-target="#toc-tab-pane" type="button" role="tab" aria-controls="toc-tab-pane" aria-selected="false"> <i class="bi bi-list-ol"></i><span class="d-none d-md-block d-xl-inline ms-xl-1">Contents</span> </button> </li> <li class="nav-item" role="presentation" title="Preferences"> <button class="nav-link px-2" id="pref-tab" data-bs-toggle="tab" data-bs-target="#pref-tab-pane" type="button" role="tab" aria-controls="pref-tab-pane" aria-selected="false"> <i class="bi bi-gear"></i><span class="d-none d-md-block d-xl-inline ms-xl-1">Prefs</span> </button> </li> </ul> <div class="overflow-auto tab-content pt-2 me-2"> <div class="tab-pane" id="docinfo-tab-pane" role="tabpanel" aria-labelledby="docinfo-tab" tabindex="0"> <table class="table table-sm table-borderless"> <tbody class="meta align-top "> <tr> <th scope="row">Document</th> <th scope="row">Document type</th> <td class="edit"></td> <td> <div>This is an older version of an Internet-Draft that was ultimately published as <a href="/doc/rfc9462/">RFC 9462</a>.</div> </td> </tr> <tr> <td></td> <th scope="row">Select version</th> <td class="edit"></td> <td> <ul class="revision-list pagination pagination-sm text-center flex-wrap my-0"> <li class="page-item active"> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-00" > 00 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-01" rel="nofollow"> 01 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-02" rel="nofollow"> 02 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-03" rel="nofollow"> 03 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-04" rel="nofollow"> 04 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-05" rel="nofollow"> 05 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-06" rel="nofollow"> 06 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-07" rel="nofollow"> 07 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-08" rel="nofollow"> 08 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-09" rel="nofollow"> 09 </a> </li> <li class="page-item "> <a class="page-link" href="/doc/html/draft-ietf-add-ddr-10" > 10 </a> </li> <li class="page-item rfc"> <a class="page-link" href="/doc/html/rfc9462"> RFC 9462 </a> </li> </ul> </td> </tr> <tr> <td></td> <th scope="row">Compare versions</th> <td class="edit"></td> <td> <form class="form-horizontal diff-form" action="https://author-tools.ietf.org/iddiff" method="get" target="_blank"> <select class="form-select form-select-sm mb-1 select2-field" data-max-entries="1" data-width="resolve" data-allow-clear="false" data-minimum-input-length="0" aria-label="From revision" name="url1"> <option value="rfc9462"> RFC 9462 </option> <option value="draft-ietf-add-ddr-10"> draft-ietf-add-ddr-10 </option> <option value="draft-ietf-add-ddr-09" selected> draft-ietf-add-ddr-09 </option> <option value="draft-ietf-add-ddr-08"> draft-ietf-add-ddr-08 </option> <option value="draft-ietf-add-ddr-07"> draft-ietf-add-ddr-07 </option> <option value="draft-ietf-add-ddr-06"> draft-ietf-add-ddr-06 </option> <option value="draft-ietf-add-ddr-05"> draft-ietf-add-ddr-05 </option> <option value="draft-ietf-add-ddr-04"> draft-ietf-add-ddr-04 </option> <option value="draft-ietf-add-ddr-03"> draft-ietf-add-ddr-03 </option> <option value="draft-ietf-add-ddr-02"> draft-ietf-add-ddr-02 </option> <option value="draft-ietf-add-ddr-01"> draft-ietf-add-ddr-01 </option> <option value="draft-ietf-add-ddr-00"> draft-ietf-add-ddr-00 </option> <option value="draft-pauly-add-deer-00"> draft-pauly-add-deer-00 </option> </select> <select class="form-select form-select-sm mb-1 select2-field" data-max-entries="1" data-width="resolve" data-allow-clear="false" data-minimum-input-length="0" aria-label="To revision" name="url2"> <option value="rfc9462"> RFC 9462 </option> <option value="draft-ietf-add-ddr-10" selected> draft-ietf-add-ddr-10 </option> <option value="draft-ietf-add-ddr-09"> draft-ietf-add-ddr-09 </option> <option value="draft-ietf-add-ddr-08"> draft-ietf-add-ddr-08 </option> <option value="draft-ietf-add-ddr-07"> draft-ietf-add-ddr-07 </option> <option value="draft-ietf-add-ddr-06"> draft-ietf-add-ddr-06 </option> <option value="draft-ietf-add-ddr-05"> draft-ietf-add-ddr-05 </option> <option value="draft-ietf-add-ddr-04"> draft-ietf-add-ddr-04 </option> <option value="draft-ietf-add-ddr-03"> draft-ietf-add-ddr-03 </option> <option value="draft-ietf-add-ddr-02"> draft-ietf-add-ddr-02 </option> <option value="draft-ietf-add-ddr-01"> draft-ietf-add-ddr-01 </option> <option value="draft-ietf-add-ddr-00"> draft-ietf-add-ddr-00 </option> <option value="draft-pauly-add-deer-00"> draft-pauly-add-deer-00 </option> </select> <button type="submit" class="btn btn-primary btn-sm" value="--html" name="difftype"> Side-by-side </button> <button type="submit" class="btn btn-primary btn-sm" value="--hwdiff" name="difftype"> Inline </button> </form> </td> </tr> <tr> <td></td> <th scope="row">Authors</th> <td class="edit"> </td> <td> <span ><a title="Datatracker profile of Tommy Pauly" href="/person/tpauly@apple.com" >Tommy Pauly</a> <a href="mailto:tpauly%40apple.com" aria-label="Compose email to tpauly@apple.com" title="Compose email to tpauly@apple.com"> <i class="bi bi-envelope"></i></a></span>, <span ><a title="Datatracker profile of Eric Kinnear" href="/person/ekinnear@apple.com" >Eric Kinnear</a> <a href="mailto:ekinnear%40apple.com" aria-label="Compose email to ekinnear@apple.com" title="Compose email to ekinnear@apple.com"> <i class="bi bi-envelope"></i></a></span>, <span ><a title="Datatracker profile of Christopher A. Wood" href="/person/caw@heapingbits.net" >Christopher A. Wood</a> <a href="mailto:caw%40heapingbits.net" aria-label="Compose email to caw@heapingbits.net" title="Compose email to caw@heapingbits.net"> <i class="bi bi-envelope"></i></a></span>, <span ><a title="Datatracker profile of Patrick McManus" href="/person/mcmanus@ducksong.com" >Patrick McManus</a> <a href="mailto:mcmanus%40ducksong.com" aria-label="Compose email to mcmanus@ducksong.com" title="Compose email to mcmanus@ducksong.com"> <i class="bi bi-envelope"></i></a></span>, <span ><a title="Datatracker profile of Tommy Jensen" href="/person/tojens.ietf@gmail.com" >Tommy Jensen</a> <a href="mailto:tojens.ietf%40gmail.com" aria-label="Compose email to tojens.ietf@gmail.com" title="Compose email to tojens.ietf@gmail.com"> <i class="bi bi-envelope"></i></a></span> </td> </tr> <tr> <td></td> <th scope="row">Replaces</th> <td class="edit"> </td> <td> <a href="/doc/html/draft-pauly-add-deer" title="Discovery of Equivalent Encrypted Resolvers">draft-pauly-add-deer</a> </td> </tr> <tr> <td></td> <th scope="row"> RFC stream </th> <td class="edit"> </td> <td > <img alt="IETF Logo" class="d-lm-none w-25 mt-1" src="https://static.ietf.org/dt/12.28.2/ietf/images/ietf-logo-nor-white.svg" > <img alt="IETF Logo" class="d-dm-none w-25 mt-1" src="https://static.ietf.org/dt/12.28.2/ietf/images/ietf-logo-nor.svg" > </td> </tr> <tr> <td></td> <th scope="row"> Other formats </th> <td class="edit"> </td> <td> <div class="buttonlist"> <a class="btn btn-primary btn-sm" target="_blank" href="https://www.ietf.org/archive/id/draft-ietf-add-ddr-00.txt"> <i class="bi bi-file-text"></i> txt </a> <a class="btn btn-primary btn-sm" target="_blank" href="/doc/draft-ietf-add-ddr/00/bibtex/"> <i class="bi bi-file-ruled"></i> bibtex </a> <a class="btn btn-primary btn-sm" target="_blank" href="/doc/bibxml3/draft-ietf-add-ddr-00.xml"> <i class="bi bi-file-code"></i> bibxml </a> </div> </td> </tr> <tr> <td> </td> <th scope="row"> Additional resources </th> <td class="edit"> </td> <td> <a href="https://mailarchive.ietf.org/arch/browse/add/?q=draft-ietf-add-ddr"> Mailing list discussion </a> </td> </tr> </tbody> </table> <a class="btn btn-sm btn-warning mb-3" target="_blank" href="https://github.com/ietf-tools/datatracker/issues/new/choose"> Report a datatracker bug <i class="bi bi-bug"></i> </a> </div> <div class="tab-pane mb-5" id="toc-tab-pane" role="tabpanel" aria-labelledby="toc-tab" tabindex="0"> <nav class="nav nav-pills flex-column small" id="toc-nav"> </nav> </div> <div class="tab-pane mb-5 small" id="pref-tab-pane" role="tabpanel" aria-labelledby="pref-tab" tabindex="0"> <label class="form-label fw-bold mb-2">Show sidebar by default</label> <div class="btn-group-vertical btn-group-sm d-flex" role="group"> <input type="radio" class="btn-check" name="sidebar" id="on-radio"> <label class="btn btn-outline-primary" for="on-radio">Yes</label> <input type="radio" class="btn-check" name="sidebar" id="off-radio"> <label class="btn btn-outline-primary" for="off-radio">No</label> </div> <label class="form-label fw-bold mt-4 mb-2">Tab to show by default</label> <div class="btn-group-vertical btn-group-sm d-flex" role="group"> <input type="radio" class="btn-check" name="deftab" id="docinfo-radio"> <label class="btn btn-outline-primary" for="docinfo-radio"> <i class="bi bi-info-circle me-1"></i>Info </label> <input type="radio" class="btn-check" name="deftab" id="toc-radio"> <label class="btn btn-outline-primary" for="toc-radio"> <i class="bi bi-list-ol me-1"></i>Contents </label> </div> <label class="form-label fw-bold mt-4 mb-2">HTMLization configuration</label> <div class="btn-group-vertical btn-group-sm d-flex" role="group"> <input type="radio" class="btn-check" name="htmlconf" id="txt-radio"> <label class="btn btn-outline-primary" for="txt-radio" title="This is the traditional HTMLization method."> <i class="bi bi-badge-sd me-1"></i>HTMLize the plaintext </label> <input type="radio" class="btn-check" name="htmlconf" id="html-radio"> <label class="btn btn-outline-primary" for="html-radio" title="This is the modern HTMLization method."> <i class="bi bi-badge-hd me-1"></i>Plaintextify the HTML </label> </div> <label class="form-label fw-bold mt-4 mb-2" for="ptsize">Maximum font size</label> <input type="range" class="form-range" min="7" max="16" id="ptsize" oninput="ptdemo.value = ptsize.value"> <label class="form-label fw-bold mt-4 mb-2">Page dependencies</label> <div class="btn-group-vertical btn-group-sm d-flex" role="group"> <input type="radio" class="btn-check" name="pagedeps" id="inline-radio"> <label class="btn btn-outline-primary" for="inline-radio" title="Generate larger, standalone web pages that do not require network access to render."> <i class="bi bi-box me-1"></i>Inline </label> <input type="radio" class="btn-check" name="pagedeps" id="reference-radio"> <label class="btn btn-outline-primary" for="reference-radio" title="Generate regular web pages that require network access to render."> <i class="bi bi-link-45deg me-1"></i>Reference </label> </div> <label class="form-label fw-bold mt-4 mb-2">Citation links</label> <div class="btn-group-vertical btn-group-sm d-flex" role="group"> <input type="radio" class="btn-check" name="reflinks" id="refsection-radio"> <label class="btn btn-outline-primary" for="refsection-radio" title="Citation links go to the reference section."> <i class="bi bi-arrow-clockwise"></i> Go to reference section </label> <input type="radio" class="btn-check" name="reflinks" id="citation-radio"> <label class="btn btn-outline-primary" for="citation-radio" title="Citation links go directly to the cited document."> <i class="bi bi-link-45deg me-1"></i>Go to linked document </label> </div> </div> </div> </div> </div> </div> </div> <script type="text/javascript"> var _paq = window._paq || []; _paq.push(['disableCookies']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//analytics.ietf.org/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', 7]); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <noscript><p><img src="//analytics.ietf.org/piwik.php?idsite=7" style="border:0;" alt="" /></p></noscript> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e7a9f6b685a3e12',t:'MTczMjQ2NDE0MC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>