<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" docName="draft-ietf-add-split-horizon-authority-14" number="9704" updates="" obsoletes="" ipr="trust200902" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" consensus="true" prepTime="2025-01-28T16:53:54" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-add-split-horizon-authority-14" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9704" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Establishing Local DNS Authority">Establishing Local DNS Authority in Validated Split-Horizon Environments</title>
    <seriesInfo name="RFC" value="9704" stream="IETF"/>
    <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
      <organization showOnFrontPage="true">Nokia</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Dan Wing" initials="D." surname="Wing">
      <organization abbrev="Citrix" showOnFrontPage="true">Citrix Systems, Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>danwing@gmail.com</email>
      </address>
    </author>
    <author fullname="Kevin Smith" initials="K." surname="Smith">
      <organization abbrev="Vodafone" showOnFrontPage="true">Vodafone Group</organization>
      <address>
        <postal>
          <street>One Kingdom Street</street>
          <city>London</city>
          <country>United Kingdom</country>
        </postal>
        <email>kevin.smith@vodafone.com</email>
      </address>
    </author>
    <author fullname="Benjamin Schwartz" initials="B." surname="Schwartz">
      <organization abbrev="Meta" showOnFrontPage="true">Meta Platforms, Inc.</organization>
      <address>
        <email>ietf@bemasc.net</email>
      </address>
    </author>
    <date month="01" year="2025"/>
    <area>INT</area>
    <workgroup>add</workgroup>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">When split-horizon DNS is deployed by a network, certain domain names can
      be resolved authoritatively by a network-provided DNS resolver. DNS clients
      that are not configured to use this resolver by default can use it for
      these specific domains only. This specification defines a mechanism for domain owners
      to inform DNS clients about local resolvers that are authorized to answer
      authoritatively for certain subdomains.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9704" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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 Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-scope">Scope</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements">Requirements</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-establishing-local-dns-auth">Establishing Local DNS Authority</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example">Example</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conveying-authorization-cla">Conveying Authorization Claims</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.2.2">
                  <li pn="section-toc.1-1.5.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.1.1"><xref derivedContent="5.2.1" format="counter" sectionFormat="of" target="section-5.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-using-dhcp">Using DHCP</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.5.2.2.2.2.1"><xref derivedContent="5.2.2" format="counter" sectionFormat="of" target="section-5.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-using-provisioning-domains">Using Provisioning Domains</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-validating-authority-over-l">Validating Authority over Local Domain Hints</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-using-a-preconfigured-exter">Using a Preconfigured External Resolver</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-using-dnssec">Using DNSSEC</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-delegating-dnssec-across-sp">Delegating DNSSEC Across Split DNS Boundaries</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example-split-horizon-dns-c">Example Split-Horizon DNS Configuration</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-verification-using-an-exter">Verification Using an External Resolver</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-verification-using-dnssec">Verification Using DNSSEC</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-operational-efficiency-in-s">Operational Efficiency in Split-Horizon Deployments</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-validation-with-ikev2">Validation with IKEv2</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-authorization-claim-update">Authorization Claim Update</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" format="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" format="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.13.2">
              <li pn="section-toc.1-1.13.2.1">
                <t indent="0" pn="section-toc.1-1.13.2.1.1"><xref derivedContent="13.1" format="counter" sectionFormat="of" target="section-13.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-new-dhcp-authentication-alg">New DHCP Authentication Algorithm for Split DNS</xref></t>
              </li>
              <li pn="section-toc.1-1.13.2.2">
                <t indent="0" pn="section-toc.1-1.13.2.2.1"><xref derivedContent="13.2" format="counter" sectionFormat="of" target="section-13.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-new-pvd-additional-informat">New PvD Additional Information Type for Split DNS</xref></t>
              </li>
              <li pn="section-toc.1-1.13.2.3">
                <t indent="0" pn="section-toc.1-1.13.2.3.1"><xref derivedContent="13.3" format="counter" sectionFormat="of" target="section-13.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-new-pvd-split-dns-claims-re">New PvD Split DNS Claims Registry</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.13.2.3.2">
                  <li pn="section-toc.1-1.13.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.13.2.3.2.1.1"><xref derivedContent="13.3.1" format="counter" sectionFormat="of" target="section-13.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-guidelines-for-the-designat">Guidelines for the Designated Experts</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.13.2.4">
                <t indent="0" pn="section-toc.1-1.13.2.4.1"><xref derivedContent="13.4" format="counter" sectionFormat="of" target="section-13.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dns-underscore-name">DNS Underscore Name</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="14" format="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.14.2">
              <li pn="section-toc.1-1.14.2.1">
                <t indent="0" pn="section-toc.1-1.14.2.1.1"><xref derivedContent="14.1" format="counter" sectionFormat="of" target="section-14.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.2">
                <t indent="0" pn="section-toc.1-1.14.2.2.1"><xref derivedContent="14.2" format="counter" sectionFormat="of" target="section-14.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.15">
            <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.16">
            <t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">To resolve a DNS query, there are three main behaviors that an
      implementation can apply: (1) answer from a local database, (2) query
      the relevant authorities and their parents, or (3) ask a server to query
      those authorities and return the final answer. Implementations that use
      these behaviors are called "authoritative nameservers", "full/recursive
      resolvers", and "forwarders" (or "stub resolvers"), respectively. However, an
      implementation can also implement a mixture of these behaviors,
      depending on local policy, for each query. Such an implementation
      is termed a "hybrid resolver".</t>
      <t indent="0" pn="section-1-2">Most DNS resolvers are hybrids of some kind. For example, stub
      resolvers support a local "hosts file" that preempts query
      forwarding, and most DNS forwarders and full resolvers can also serve
      responses from a local zone file. Other standardized hybrid resolution
      behaviors include <xref target="RFC8806" format="default" sectionFormat="of" derivedContent="RFC8806">using a local root</xref>, <xref target="RFC6762" format="default" sectionFormat="of" derivedContent="RFC6762">Multicast DNS (mDNS)</xref>, and <xref target="RFC7686" format="default" sectionFormat="of" derivedContent="RFC7686">NXDOMAIN
      synthesis for .onion</xref>.</t>
      <t indent="0" pn="section-1-3">Networks usually offer clients a DNS resolver using means such as
      DHCP offers or IPv6 Router Advertisements (RAs). Although this resolver is
      formally specified as a recursive resolver (e.g., see <xref section="5.1" target="RFC8106" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8106#section-5.1" derivedContent="RFC8106"/>), some networks provide a hybrid resolver
      instead. If this resolver acts as an authoritative server for some names
      and -- depending on the source of the query -- provides different answers for those domains, the network is said to be using "split-horizon DNS", because those
      names resolve in this way only from inside the network.</t>
      <t indent="0" pn="section-1-4">DNS clients that use pure stub resolution, sending all queries to
      the network-provided resolver, will always receive the split-horizon
      results. Conversely, clients that send all queries to a different
      resolver or implement pure full resolution locally will never receive
      them. Clients that strictly implement either of these resolution behaviors are out of scope for
      this specification. Instead, this specification enables hybrid clients
      to access split-horizon results from a network-provided hybrid resolver,
      while using a different resolution method for some or all other
      names.</t>
      <t indent="0" pn="section-1-5">There are several existing mechanisms for a network to provide
      clients with "local domain hints", listing domain names that are given
      special treatment in this network (e.g., <xref target="RFC6731" format="default" sectionFormat="of" derivedContent="RFC6731">
      "Recursive DNS Server (RDNSS) selection"</xref>, <xref target="RFC5986" format="default" sectionFormat="of" derivedContent="RFC5986">
      "access network domain name"</xref>, and "Client Fully Qualified Domain Name
 (FQDN)" <xref target="RFC4702" format="default" sectionFormat="of" derivedContent="RFC4702"/> <xref target="RFC4704" format="default" sectionFormat="of" derivedContent="RFC4704"/> in DHCP; "dnsZones" in
      Provisioning Domains (PvDs) <xref target="RFC8801" format="default" sectionFormat="of" derivedContent="RFC8801"/>; and <xref target="RFC8598" format="default" sectionFormat="of" derivedContent="RFC8598">"INTERNAL_DNS_DOMAIN"</xref> in Internet Key Exchange Protocol Version 2 (IKEv2)).
      However, none of the local domain hint mechanisms enable clients to
      determine whether this special treatment is authorized by the domain
      owner. Instead, these specifications require clients to make their own
      determinations about whether to trust and rely on these hints.</t>
      <t indent="0" pn="section-1-6">This document describes a mechanism between domain names, networks,
      and clients that allows the network to establish its authority over a
      domain to a client (<xref target="establishing" format="default" sectionFormat="of" derivedContent="Section 5"/>). Clients can
      use this protocol to confirm that a local domain hint was authorized by
      the domain owner (<xref target="validating" format="default" sectionFormat="of" derivedContent="Section 6"/>), which might influence
      its processing of that hint.  This process requires cooperation between
      the local DNS zone and the public zone.</t>
      <t indent="0" pn="section-1-7">In this specification, network operators securely identify the local DNS
      servers, and clients check each local domain hint against a globally
      valid parent zone.</t>
    </section>
    <section anchor="notation" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1">The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
       "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
       "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
       "<bcp14>SHOULD NOT</bcp14>",
       "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
       "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document
       are to be interpreted as described in BCP 14
       <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only
       when, they appear in all capitals, as shown here.</t>
      <t indent="0" pn="section-2-2">This document makes use of the terms defined in <xref target="RFC9499" format="default" sectionFormat="of" derivedContent="RFC9499"/>, e.g., "global DNS".  The following additional terms are
      used throughout this document:</t>
      <dl indent="3" newline="false" spacing="normal" pn="section-2-3">
        <dt pn="section-2-3.1">Encrypted DNS:</dt>
        <dd pn="section-2-3.2">A DNS protocol that provides an
        encrypted channel between a DNS client and server (e.g., DNS
        over TLS (DoT) <xref target="RFC7858" format="default" sectionFormat="of" derivedContent="RFC7858"/>, DNS (queries) over HTTPS (DoH) <xref target="RFC8484" format="default" sectionFormat="of" derivedContent="RFC8484"/>, DNS over QUIC (DoQ) <xref target="RFC9250" format="default" sectionFormat="of" derivedContent="RFC9250"/>).</dd>
        <dt pn="section-2-3.3">Encrypted DNS Resolver:</dt>
        <dd pn="section-2-3.4">Refers to a DNS resolver
        that supports any encrypted DNS scheme.</dd>
        <dt pn="section-2-3.5">Split-Horizon DNS:</dt>
        <dd pn="section-2-3.6">The DNS service provided by a resolver
          that also acts as an authoritative server for some names, providing
          resolution results that are meaningfully different from those in the
          global DNS. (See the definition of "split DNS" in <xref section="6" target="RFC9499" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9499#section-6" derivedContent="RFC9499"/>.)</dd>
        <dt pn="section-2-3.7">Validated Split Horizon:</dt>
        <dd pn="section-2-3.8">A split-horizon configuration that
        is authorized by the parents of the affected names and confirmed by the 
        client. Such authorization generally extends to the
          entire subtree of names below the authorization point.</dd>
      </dl>
      <t indent="0" pn="section-2-4">In this document, the terms "owner" and "operator" are used interchangeably
      and refer to the individual or entity responsible for the management and
      maintenance of domains.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-scope">Scope</name>
      <t indent="0" pn="section-3-1">The protocol described in this document is designed to support the ability of
      a domain owner to create or authorize a split-horizon view of their
      domain. The protocol does not support split-horizon views created by
      any other entity. Thus, DNS filtering is not enabled by this protocol.</t>
      <t indent="0" pn="section-3-2">The protocol is applicable to any type of network offering
      split-horizon DNS configuration. The endpoint does not need any prior
      configuration to confirm that a local domain hint was indeed authorized
      by the domain.</t>
      <t indent="0" pn="section-3-3">All of the Special-Use Domain Names registered with IANA <xref target="RFC6761" format="default" sectionFormat="of" derivedContent="RFC6761"/>,
      most notably "home.arpa.", "resolver.arpa.", "ipv4only.arpa.", and "local.", are never
      unique to a specific DNS server's authority. All Special-Use Domain Names are outside the
      scope of this document and <bcp14>MUST NOT</bcp14> be validated using the mechanism described in this document. </t>
      <t indent="0" pn="section-3-4">The use of this specification is limited to DNS servers that support authenticated encryption and
      split-horizon DNS names that are rooted in the global DNS.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-requirements">Requirements</name>
      <t indent="0" pn="section-4-1">This solution seeks to fulfill the following requirements:</t>
      <dl newline="false" spacing="normal" indent="3" pn="section-4-2">
        <dt pn="section-4-2.1">No loss of security:</dt>
        <dd pn="section-4-2.2">No unauthorized party can impersonate
          a zone unless they could already do so without the use of this
          specification.</dd>
        <dt pn="section-4-2.3">Least privilege:</dt>
        <dd pn="section-4-2.4">Local resolvers do not hold any
          secrets that could weaken the security of the public zone if
          compromised.</dd>
        <dt pn="section-4-2.5">Local zone confidentiality:</dt>
        <dd pn="section-4-2.6">The specification does not leak
          local network subdomains to anyone outside of the network.</dd>
        <dt pn="section-4-2.7">Flexibility:</dt>
        <dd pn="section-4-2.8">The specification can represent and authorize
          a split DNS zone structure.</dd>
        <dt pn="section-4-2.9">DNSSEC compatibility:</dt>
        <dd pn="section-4-2.10">The specification supports DNSSEC-based
          object security for local zone contents per <xref target="RFC9364" format="default" sectionFormat="of" derivedContent="RFC9364"/>.</dd>
      </dl>
    </section>
    <section anchor="establishing" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-establishing-local-dns-auth">Establishing Local DNS Authority</name>
      <t indent="0" pn="section-5-1">A participating network <bcp14>MUST</bcp14> offer one or more
      encrypted resolvers via DHCP and Router Advertisement options for the
      Discovery of Network-designated Resolvers (DNR) <xref target="RFC9463" format="default" sectionFormat="of" derivedContent="RFC9463"/>,
      Discovery of Designated Resolvers (DDR) <xref target="RFC9462" format="default" sectionFormat="of" derivedContent="RFC9462"/>, or an
      equivalent mechanism (see <xref target="vpn" format="default" sectionFormat="of" derivedContent="Section 10"/>).</t>
      <t indent="0" pn="section-5-2">To establish local authority, the network <bcp14>MUST</bcp14> convey one or more
      "authorization claims" to the client.  An authorization claim is an
      abstract structure comprising:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-5-3">
        <li pn="section-5-3.1">An Authentication Domain Name (ADN) of a local encrypted resolver.</li>
        <li pn="section-5-3.2">The DNS name of the authorizing parent zone.</li>
        <li pn="section-5-3.3">A set of subdomains of this parent zone that are claimed by
            the named local resolver (potentially including the entire parent
            zone). To claim the entire parent zone, the claimed subdomain
            will be represented as an asterisk symbol ("*").</li>
        <li pn="section-5-3.4">A ZONEMD Hash Algorithm (<xref section="5.3" target="RFC8976" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8976#section-5.3" derivedContent="RFC8976"/>).
           For interoperability purposes, implementations <bcp14>MUST</bcp14> support the
           "mandatory to implement" hash algorithms defined in
           <xref section="2.2.3" target="RFC8976" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8976#section-2.2.3" derivedContent="RFC8976"/>. </li>
        <li pn="section-5-3.5">A high-entropy salt, up to 255 octets.</li>
      </ul>
      <t indent="0" pn="section-5-4">If the local encrypted resolver is identified by name (e.g., using DNR), that
      identifying name <bcp14>MUST</bcp14> be the name used in any corresponding authorization
      claim.  Otherwise (e.g., DDR using IP addresses), the resolver <bcp14>MUST</bcp14>
      present a validatable certificate containing a subjectAltName that
      matches the authorization claim using the validation techniques for
      matching as described in <xref target="RFC9525" format="default" sectionFormat="of" derivedContent="RFC9525"/>.</t>
      <t indent="0" pn="section-5-5">The network then provides each authorization claim to the parent zone operator.
      If the contents are approved, the parent zone operator computes a "Verification Token"
      according to the following procedure:</t>
      <ol indent="adaptive" spacing="normal" start="1" type="1" pn="section-5-6">
        <li pn="section-5-6.1" derivedCounter="1.">Convert all subdomains into canonical form and sort them in canonical
            order (<xref section="6" target="RFC4034" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc4034#section-6" derivedContent="RFC4034"/>).</li>
        <li pn="section-5-6.2" derivedCounter="2.">Replace the suffix corresponding to the parent zone with a zero
            octet.</li>
        <li pn="section-5-6.3" derivedCounter="3.">Let $X be the concatenation of the resulting pseudo-FQDNs.</li>
        <li pn="section-5-6.4" derivedCounter="4.">Let len($SALT) be the number of octets of salt, as a single octet.</li>
        <li pn="section-5-6.5" derivedCounter="5.">Let $TOKEN = hash(len($SALT) || $SALT || $X), where "||" denotes concatenation and hash is the ZONEMD Hash Algorithm.</li>
      </ol>
      <t indent="0" pn="section-5-7">The zone operator then publishes a "Verification Record" with the
      following structure, following the best practices outlined in
      Sections <xref target="I-D.ietf-dnsop-domain-verification-techniques" sectionFormat="bare" section="5.2" format="default" derivedLink="https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-domain-verification-techniques-06#section-5.2" derivedContent="DOMAIN-VERIFICATION-TECHNIQUES"/> and <xref target="I-D.ietf-dnsop-domain-verification-techniques" sectionFormat="bare" section="5.3" format="default" derivedLink="https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-domain-verification-techniques-06#section-5.3" derivedContent="DOMAIN-VERIFICATION-TECHNIQUES"/> of <xref target="I-D.ietf-dnsop-domain-verification-techniques" format="default" sectionFormat="of" derivedContent="DOMAIN-VERIFICATION-TECHNIQUES"/>:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-5-8">
        <li pn="section-5-8.1">Type = TXT</li>
        <li pn="section-5-8.2">Owner Name = Concatenation of the ADN, "_splitdns-challenge", and
            the parent zone name</li>
        <li pn="section-5-8.3">Contents = "key/value" pairs, e.g., "token=base64url($TOKEN)" (without padding)</li>
      </ul>
      <t indent="0" pn="section-5-9">By publishing this record, the parent zone authorizes the local
      encrypted resolver to serve these subdomains authoritatively.</t>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-5.1">
        <name slugifiedName="name-example">Example</name>
        <t indent="0" pn="section-5.1-1">Consider the following authorization claim:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-5.1-2">
          <li pn="section-5.1-2.1">ADN = "resolver17.parent.example"</li>
          <li pn="section-5.1-2.2">Parent = "parent.example"</li>
          <li pn="section-5.1-2.3">Subdomains = "payroll.parent.example",
              "secret.project.parent.example"</li>
          <li pn="section-5.1-2.4">Hash Algorithm = SHA-384 <xref target="RFC6234" format="default" sectionFormat="of" derivedContent="RFC6234"/></li>
          <li pn="section-5.1-2.5">Salt = "example salt octets (should be random)"</li>
        </ul>
        <t indent="0" pn="section-5.1-3">To approve this claim, the zone operator would publish the following record:</t>
        <sourcecode type="dns-rr" markers="false" pn="section-5.1-4">
NOTE: '\' line wrapping per RFC 8792

  resolver17.parent.example._splitdns-challenge.parent.example. \
  IN TXT "token=z1qyK7QWwQPkT-ZmVW-tAQbsNyYenTNBPp5ogYB8S1wesVCR\
  -KJDv2eFwfJcWQM"
</sourcecode>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-5.2">
        <name slugifiedName="name-conveying-authorization-cla">Conveying Authorization Claims</name>
        <t indent="0" pn="section-5.2-1">
          The authorization claim is an abstract structure that must be encoded in
          some concrete syntax in order to convey it from the network to the client.
          This section defines some encodings of the authorization claims.
        </t>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-5.2.1">
          <name slugifiedName="name-using-dhcp">Using DHCP</name>
          <t indent="0" pn="section-5.2.1-1">

            In DHCP, each authorization claim is encoded as a DHCP Authentication
            option (<xref target="RFC3118" format="default" sectionFormat="of" derivedContent="RFC3118"/> and <xref section="21.11" target="RFC8415" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8415#section-21.11" derivedContent="RFC8415"/>),
            using the Protocol value 4, "Split-horizon DNS". In DHCPv4 <xref target="RFC2131" format="default" sectionFormat="of" derivedContent="RFC2131"/>, the mechanism for splitting long options as
            described in <xref section="8" target="RFC3396" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc3396#section-8" derivedContent="RFC3396"/> <bcp14>MUST</bcp14> be used if the
            Authentication option exceeds the maximum DHCPv4 option size of 255 octets. The Algorithm field
            provides the ZONEMD Hash Algorithm, represented by its registered Value.
            The Replay Detection Method value <bcp14>MUST</bcp14> be 0x00. The Authentication Information
            <bcp14>MUST</bcp14> contain the following information, concatenated:</t>
          <ol indent="adaptive" spacing="normal" start="1" type="1" pn="section-5.2.1-2">
            <li pn="section-5.2.1-2.1" derivedCounter="1.">The ADN in canonical form.</li>
            <li pn="section-5.2.1-2.2" derivedCounter="2.">The parent name in canonical form.</li>
            <li pn="section-5.2.1-2.3" derivedCounter="3.">A one-octet "salt length" field.</li>
            <li pn="section-5.2.1-2.4" derivedCounter="4.">The salt value.</li>
            <li pn="section-5.2.1-2.5" derivedCounter="5.">The $X value as defined in <xref target="establishing" format="default" sectionFormat="of" derivedContent="Section 5"/>.</li>
          </ol>
        </section>
        <section anchor="splitclaims" numbered="true" removeInRFC="false" toc="include" pn="section-5.2.2">
          <name slugifiedName="name-using-provisioning-domains">Using Provisioning Domains</name>
          <t indent="0" pn="section-5.2.2-1">When using <xref target="RFC8801" format="default" sectionFormat="of" derivedContent="RFC8801">PvDs</xref>, the
          authorization claims are represented by the PvD Additional
          Information key "splitDnsClaims", whose value is a
          JSON array.  Each entry in the array <bcp14>MUST</bcp14> be a JSON object
          with the following structure:</t>
          <dl newline="false" spacing="normal" indent="3" pn="section-5.2.2-2">
            <dt pn="section-5.2.2-2.1">"resolver":</dt>
            <dd pn="section-5.2.2-2.2">The ADN as a dot-separated name.</dd>
            <dt pn="section-5.2.2-2.3">"parent":</dt>
            <dd pn="section-5.2.2-2.4">The parent zone name as a dot-separated name.</dd>
            <dt pn="section-5.2.2-2.5">"subdomains":</dt>
            <dd pn="section-5.2.2-2.6">An array containing the claimed subdomains, as
                dot-separated names with the parent suffix already removed, in
                canonical order. To claim the entire parent zone, the claimed subdomain
                will be represented as an asterisk symbol ("*").</dd>
            <dt pn="section-5.2.2-2.7">"algorithm":</dt>
            <dd pn="section-5.2.2-2.8">The hash algorithm, represented by its "Mnemonic"
                string from the "ZONEMD Hash Algorithms" registry (<xref target="RFC8976" section="5.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8976#section-5.3" derivedContent="RFC8976"/>).</dd>
            <dt pn="section-5.2.2-2.9">"salt":</dt>
            <dd pn="section-5.2.2-2.10">The salt, encoded in base64url <xref target="RFC4648" format="default" sectionFormat="of" derivedContent="RFC4648"/>.</dd>
          </dl>
          <t indent="0" pn="section-5.2.2-3">Future specifications aiming to define new keys will need to add them to the
        IANA registry defined in <xref target="new-split-claims-registry" format="default" sectionFormat="of" derivedContent="Section 13.3"/>. DNS client implementations
        will ignore any keys they don't recognize but may also report
        unknown keys.</t>
        </section>
      </section>
    </section>
    <section anchor="validating" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-validating-authority-over-l">Validating Authority over Local Domain Hints</name>
      <t indent="0" pn="section-6-1">To validate an authorization claim provided by the network, DNS clients
      <bcp14>MUST</bcp14> resolve the Verification Record for that name.
      If the resolution produces an RRset containing the expected token for this
      claim, the client <bcp14>SHALL</bcp14> regard the named resolver as
      authoritative for the claimed subdomains. Clients <bcp14>MUST</bcp14> ignore
      any unrecognized keys in the Verification Record.</t>
      <t indent="0" pn="section-6-2">Each validation of authority applies only to a specific ADN.
      If a network offers multiple encrypted resolvers, each claimed
      subdomain may be authorized for a distinct subset of the network-provided
      resolvers.</t>
      <t indent="0" pn="section-6-3">A zone is termed a "Validated Split-Horizon zone" after successful
      validation using a "tamperproof" DNS resolution method, i.e., a method
      that is not subject to interference by the local network operator. Two
      possible tamperproof resolution methods are presented below.</t>
      <section anchor="validating-external" numbered="true" removeInRFC="false" toc="include" pn="section-6.1">
        <name slugifiedName="name-using-a-preconfigured-exter">Using a Preconfigured External Resolver</name>
        <t indent="0" pn="section-6.1-1">This method applies only if the client is already configured with
        a default resolution strategy that sends queries to a resolver outside
        of the network over an encrypted transport.  That resolution strategy is
        considered tamperproof because any actor who could modify the
        response could already modify all of the user's other DNS responses.
        If the client cannot obtain a response from the external resolver within a
        reasonable timeframe, it <bcp14>MUST</bcp14> consider the verification process
        to have failed.</t>
        <t indent="0" pn="section-6.1-2">To ensure that this assumption holds, clients <bcp14>MUST NOT</bcp14>
        relax the acceptance rules they would otherwise apply when using this
        resolver. For example, if the client would check the Authenticated Data (AD)
        bit or validate RRSIGs locally when using this resolver, it must also do so
        when resolving TXT records for this purpose. The client <bcp14>MAY</bcp14>
        perform DNSSEC validation for the verification query
        even if it has disabled DNSSEC validation for other DNS queries.</t>
      </section>
      <section anchor="validating-dnssec" numbered="true" removeInRFC="false" toc="include" pn="section-6.2">
        <name slugifiedName="name-using-dnssec">Using DNSSEC</name>
        <t indent="0" pn="section-6.2-1">The client resolves the Verification Record using any resolution method of
        its choice (e.g., querying one of the network-provided resolvers,
        performing iterative resolution locally) and performs full DNSSEC
        validation locally <xref target="RFC6698" format="default" sectionFormat="of" derivedContent="RFC6698"/>. The result is
        processed based on its DNSSEC validation state (<xref section="4.3" target="RFC4035" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4035#section-4.3" derivedContent="RFC4035"/>): </t>
        <dl newline="false" spacing="normal" indent="3" pn="section-6.2-2">
          <dt pn="section-6.2-2.1"><strong>Secure</strong>:</dt>
          <dd pn="section-6.2-2.2">The response is used for validation.</dd>
          <dt pn="section-6.2-2.3"><strong>Bogus</strong> or <strong>Indeterminate</strong>:</dt>
          <dd pn="section-6.2-2.4">The response is rejected, and
            validation is considered to have failed.</dd>
          <dt pn="section-6.2-2.5"><strong>Insecure</strong>:</dt>
          <dd pn="section-6.2-2.6">The client <bcp14>SHOULD</bcp14> retry the validation
            process using a different method, such as the method described in <xref target="validating-external" format="default" sectionFormat="of" derivedContent="Section 6.1"/>, to ensure compatibility with
            unsigned names. If the client chooses not to retry (e.g., no configured policy to validate
            the authorization claim using an external resolver), it <bcp14>MUST</bcp14> consider
            validation to have failed.</dd>
        </dl>
      </section>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-delegating-dnssec-across-sp">Delegating DNSSEC Across Split DNS Boundaries</name>
      <t indent="0" pn="section-7-1">When the local zone can be signed with globally trusted keys for the parent
      zone, support for DNSSEC can be accomplished by simply placing a zone cut at
      the parent zone and including a suitable DS record for the local resolver's
      DNSKEY.  Zones in this configuration appear the same to validating stubs whether
      or not they implement this specification.</t>
      <t indent="0" pn="section-7-2">To enable DNSSEC validation of local DNS names without requiring
      the local resolver to hold DNSSEC private keys that are valid for the parent
      zone, parent zones <bcp14>MAY</bcp14> add a "ds=..." key to the Verification
      Record whose value is the RDATA of a single DS record, encoded in base64url. This
      DS record authorizes a DNSKEY whose owner name is "resolver.arpa."</t>
      <t indent="0" pn="section-7-3">To validate DNSSEC, the client first fetches and validates the Verification
      Record.  If it is valid and contains a "ds" key, the client <bcp14>MAY</bcp14>
      send a DNSKEY query for "resolver.arpa." to the local encrypted resolver.
      At least one resulting DNSKEY Resource Record (RR) <bcp14>MUST</bcp14> match the DS RDATA from
      the "ds" key in the Verification Record. All local resolution results for
      subdomains in this claim <bcp14>MUST</bcp14> offer RRSIGs that chain to a
      DNSKEY whose RDATA is identical to one of these approved DNSKEYs.</t>
      <t indent="0" pn="section-7-4">The "ds" key <bcp14>MAY</bcp14> appear multiple
      times in a single Verification Record, in order to authorize multiple DNSKEYs
      for this local encrypted resolver.</t>
      <t indent="0" pn="section-7-5">Note that when the local resolver does not have a globally trusted DNSKEY, any claimed subdomains <bcp14>MUST</bcp14> be marked as
      unsigned in the public DNS.  Otherwise, local resolution results would be rejected
      by validating stubs that do not implement this specification.</t>
      <figure align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-example-use-of-ds">Example Use of "ds=..."</name>
        <sourcecode type="dns-rr" markers="false" pn="section-7-6.1">
NOTE: '\' line wrapping per RFC 8792

;; Parent zone.
$ORIGIN parent.example.

; Parent zone's public Key Signing Key (KSK)
; and Zone Signing Key (ZSK).
@ IN DNSKEY 257 3 5 ABCD...=
@ IN DNSKEY 256 3 5 DCBA...=

; Verification Record containing DS RDATA for the local
; resolver's KSK.  This is an ordinary public TXT record,
; secured by RRSIGs from the public ZSK.
resolver.example._splitdns-challenge IN TXT "token=abc...,ds=QWE..."

; NSEC record indicating that unsigned delegations are permitted at
; this subdomain.  This is required for compatibility with
; non-split-aware validating stub resolvers.  If the claimed label is
; confidential, the parent zone can conceal it using NSEC3 (with or
; without "opt-out").
@ IN NSEC subdomain.parent.example. NS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Local zone, claiming "subdomain.parent.example".

; The local resolver's KSK, validated by the Verification Record.
; It may not have a corresponding RRSIG.
resolver.arpa. IN DNSKEY 257 3 5 ASDF...=

; Each claimed subdomain duplicates the local resolver's KSK at its
; zone apex and uses it to sign the ZSK.
subdomain.parent.example.        IN DNSKEY 257 3 5 ASDF...=
subdomain.parent.example.        IN DNSKEY 256 3 5 FDSA...=
subdomain.parent.example         IN RRSIG DNSKEY 5 3 ...  \
        (KSK key tag) subdomain.parent.example. ...
subdomain.parent.example.        IN AAAA 2001:db8::17
subdomain.parent.example         IN RRSIG AAAA 5 3 ...    \
        (ZSK key tag) subdomain.parent.example. ...
deeper.subdomain.parent.example. IN AAAA 2001:db8::18
deeper.subdomain.parent.example  IN RRSIG AAAA 5 3 ...    \
        (ZSK key tag) subdomain.parent.example. ...
</sourcecode>
      </figure>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-example-split-horizon-dns-c">Example Split-Horizon DNS Configuration</name>
      <t indent="0" pn="section-8-1">Consider an organization that operates "example.com" and runs a
        different version of its global domain on its internal network.</t>
      <t indent="0" pn="section-8-2">First, the host and network both need to support one of the discovery
        mechanisms described in <xref target="establishing" format="default" sectionFormat="of" derivedContent="Section 5"/>. <xref target="fig-learn" format="default" sectionFormat="of" derivedContent="Figure 2"/>
        shows discovery using information from the DNR and the PvD.</t>
      <t indent="0" pn="section-8-3">Validation is then performed using either <xref target="example-verify-external" format="default" sectionFormat="of" derivedContent="Section 8.1">an external resolver</xref> or <xref target="example-verify-dnssec" format="default" sectionFormat="of" derivedContent="Section 8.2">DNSSEC</xref>.</t>
      <dl newline="false" spacing="normal" indent="3" pn="section-8-4">
        <dt pn="section-8-4.1"><strong>Steps 1-2</strong>:</dt>
        <dd pn="section-8-4.2">The client determines the network's DNS
            server (<tt>dns.example.net</tt>) and PvD ID (<tt>pvd.example.com</tt>)
            using DNR and a PvD, along with one of the following: DNR Router Solicitation,
            DHCPv4, or DHCPv6.</dd>
        <dt pn="section-8-4.3"><strong>Steps 3-5</strong>:</dt>
        <dd pn="section-8-4.4">The client connects to <tt>dns.example.net</tt>
            using an encrypted transport as indicated in <xref target="RFC9463" format="default" sectionFormat="of" derivedContent="RFC9463">DNR</xref>, authenticating the server to
            its name using TLS (<xref target="RFC8310" section="8" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8310#section-8" derivedContent="RFC8310"/>), and
            sends it a query for the address of <tt>pvd.example.com</tt>.</dd>
        <dt pn="section-8-4.5"><strong>Steps 6-7</strong>:</dt>
        <dd pn="section-8-4.6">
          <t indent="0" pn="section-8-4.6.1">The client connects to the PvD server,
            validates its certificate, and retrieves the PvD Additional Information
            indicated by the associated PvD. The JSON object contains:</t>
          <sourcecode type="json" markers="false" pn="section-8-4.6.2">{
  "identifier": "pvd.example.com",
  "expires": "2025-05-23T06:00:00Z",
  "prefixes": ["2001:db8:1::/48", "2001:db8:4::/48"],
  "splitDnsClaims": [{
    "resolver": "dns.example.net",
    "parent": "example.com",
    "subdomains": ["*"],
    "algorithm": "SHA384",
    "salt": "abc...123"
  }]
}</sourcecode>
          <t indent="0" pn="section-8-4.6.3">The JSON keys "identifier", "expires", and "prefixes"
            are defined in <xref target="RFC8801" format="default" sectionFormat="of" derivedContent="RFC8801"/>.</t>
        </dd>
      </dl>
      <figure anchor="fig-learn" align="left" suppress-title="false" pn="figure-2">
        <name slugifiedName="name-an-example-of-learning-loca">An Example of Learning Local Claims of DNS Authority</name>
        <artwork align="left" pn="section-8-5.1">
+---------+         +--------------------+  +------------+ +--------+
| Client  |         | Network's          |  | Network    | | Router |
|         |         | Encrypted Resolver |  | PvD Server | |        |
+---------+         +--------------------+  +------------+ +--------+
   |                                     |         |            |
   | Router Solicitation or              |         |            |
   | DHCPv4/DHCPv6 (1)                   |         |            |
   |-----------------------------------------------------------&gt;|
   |                                     |         |            |
   |  Response with DNR ADN &amp;            |         |            |
   |  PvD FQDN (2)                       |         |            |
   |&lt;-----------------------------------------------------------|
   | ----------------------------\       |         |            |
   |-| now knows DNR ADN &amp;       |       |         |            |
   | | PvD FQDN                  |       |         |            |
   | |---------------------------/       |         |            |
   |                                     |         |            |
   | TLS connection to dns.example.net (3)         |            |
   |------------------------------------&gt;|         |            |
   | ---------------------------\        |         |            |
   |-| validate TLS certificate |        |         |            |
   | |--------------------------/        |         |            |
   |                                     |         |            |
   | resolve pvd.example.com (4)         |         |            |
   |------------------------------------&gt;|         |            |
   |                                     |         |            |
   |            A or AAAA records (5)    |         |            |
   |&lt;------------------------------------|         |            |
   |                                     |         |            |
   | https://pvd.example.com/.well-known/pvd (6)   |            |
   |----------------------------------------------&gt;|            |
   |                                     |         |            |
   |  200 OK (JSON Additional Information) (7)     |            |
   |&lt;----------------------------------------------|            |
   | ----------------------------------\ |         |            |
   |-| {..., "splitDnsClaims": [...] } | |         |            |
   | |---------------------------------/ |         |            |
</artwork>
      </figure>
      <section anchor="example-verify-external" numbered="true" removeInRFC="false" toc="include" pn="section-8.1">
        <name slugifiedName="name-verification-using-an-exter">Verification Using an External Resolver</name>
        <t indent="0" pn="section-8.1-1"><xref target="fig-learn2" format="default" sectionFormat="of" derivedContent="Figure 3"/> shows the steps performed to verify the local
          claims of DNS authority using an external resolver.</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-8.1-2">
          <dt pn="section-8.1-2.1"><strong>Steps 1-2</strong>:</dt>
          <dd pn="section-8.1-2.2">The client uses an encrypted DNS
              connection to an external resolver to issue TXT
              queries for the Verification Records. The TXT lookup returns
              a token that matches the claim.</dd>
          <dt pn="section-8.1-2.3"><strong>Step 3</strong>:</dt>
          <dd pn="section-8.1-2.4">The client has validated that
              <tt>example.com</tt> has authorized <tt>dns.example.net</tt>
              to serve <tt>example.com</tt>. When the client connects using an
              encrypted transport as indicated in <xref target="RFC9463" format="default" sectionFormat="of" derivedContent="RFC9463">DNR</xref>, it will authenticate
              the server to its name using TLS (<xref target="RFC8310" section="8" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8310#section-8" derivedContent="RFC8310"/>) and send queries to resolve
              any names that fall within the claimed zones.</dd>
        </dl>
        <figure anchor="fig-learn2" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-verifying-claims-using-an-e">Verifying Claims Using an External Resolver</name>
          <artwork align="left" pn="section-8.1-3.1">
+---------+                  +--------------------+  +----------+
| Client  |                  | Network's          |  | External |
|         |                  | Encrypted Resolver |  | Resolver |
+---------+                  +--------------------+  +----------+
     |                                          |         |
     | TLS connection                           |         |
     |---------------------------------------------------&gt;|
     | ---------------------------\             |         |
     |-| validate TLS certificate |             |         |
     | |--------------------------|             |         |
     |                                          |         |
     | TXT? dns.example.net.\                   |         |
     |   _splitdns-challenge.example.com (1)    |         |
     |---------------------------------------------------&gt;|
     |                                          |         |
     |  TXT "token=ABC..." (2)                  |         |
     |&lt;---------------------------------------------------|
     | --------------------------------\        |         |
     |-| dns.example.net is authorized |        |         |
     | ----------------------\---------|        |         |
     |-| finished validation |                  |         |
     | |---------------------|                  |         |
     |                                          |         |
     |  use dns.example.net when                |         |
     |  resolving example.com (3)               |         |
     |-----------------------------------------&gt;|         |
     |                                          |         |
</artwork>
        </figure>
      </section>
      <section anchor="example-verify-dnssec" numbered="true" removeInRFC="false" toc="include" pn="section-8.2">
        <name slugifiedName="name-verification-using-dnssec">Verification Using DNSSEC</name>
        <t indent="0" pn="section-8.2-1"><xref target="fig-learn3" format="default" sectionFormat="of" derivedContent="Figure 4"/> shows the steps performed to verify the local
          claims of DNS authority using DNSSEC.</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-8.2-2">
          <dt pn="section-8.2-2.1"><strong>Steps 1-2</strong>:</dt>
          <dd pn="section-8.2-2.2">The DNSSEC-validating client queries
              the network's encrypted resolver to issue TXT queries for the
              Verification Records. The TXT lookup will return
              a signed response containing the expected token. The client then
              performs full DNSSEC validation locally.</dd>
          <dt pn="section-8.2-2.3"><strong>Step 3</strong>:</dt>
          <dd pn="section-8.2-2.4">If the DNSSEC validation is successful and
              the token matches, then this authorization claim is validated.
              Once the client connects using an encrypted transport as indicated
              in <xref target="RFC9463" format="default" sectionFormat="of" derivedContent="RFC9463">DNR</xref>, it will authenticate
              the server to its name using TLS (<xref target="RFC8310" section="8" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8310#section-8" derivedContent="RFC8310"/>) and send queries to resolve
              any names that fall within the claimed zones.</dd>
        </dl>
        <figure anchor="fig-learn3" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-an-example-of-verifying-cla">An Example of Verifying Claims Using DNSSEC</name>
          <artwork align="left" pn="section-8.2-3.1">
+---------+                                    +--------------------+
| Client  |                                    | Network's          |
|         |                                    | Encrypted Resolver |
+---------+                                    +--------------------+
  |                                                               |
  | DNSSEC OK (DO), TXT? dns.example.net.\                        |
  |   _splitdns-challenge.example.com (1)                         |
  |--------------------------------------------------------------&gt;|
  |                                                               |
  | TXT token=DEF..., Signed Answer (RRSIG) (2)                   |
  |&lt;--------------------------------------------------------------|
  | -------------------------------------\                        |
  |-| DNSKEY+TXT matches RRSIG, use TXT  |                        |
  | |------------------------------------|                        |
  | --------------------------------\                             |
  |-| dns.example.net is authorized |                             |
  | |-------------------------------|                             |
  | ----------------------\                                       |
  |-| finished validation |                                       |
  | |---------------------|                                       |
  |                                                               |
  | use encrypted network-designated resolver for example.com (3) |
  |--------------------------------------------------------------&gt;|
  |                                                               |
</artwork>
        </figure>
      </section>
    </section>
    <section anchor="operational" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-operational-efficiency-in-s">Operational Efficiency in Split-Horizon Deployments</name>
      <t indent="0" pn="section-9-1">In many split-horizon deployments, all non-public domain names are
        placed in a separate child zone (e.g., <tt>internal.example.com</tt>).
        In this configuration, the message flow is similar to the flow described in <xref target="example-verify-external" format="default" sectionFormat="of" derivedContent="Section 8.1"/>, except that queries for hosts not within the
        subdomain (e.g., <tt>www.example.com</tt>) are sent to the
        external resolver rather than the resolver for <tt>internal.example.com</tt>.</t>
      <t indent="0" pn="section-9-2">As specified in <xref target="example-verify-external" format="default" sectionFormat="of" derivedContent="Section 8.1"/>, the internal DNS
        server will need a certificate signed by a Certification Authority (CA) trusted by the
        client.</t>
      <t indent="0" pn="section-9-3">Although placing internal domains inside a child domain is not necessary to prevent leakage,
        such placement reduces the frequency of changes to the Verification Record. This document
        recommends that the internal domains be kept in a child zone of the local domain hints
        advertised by the network. For example, if the PvD "dnsZones" entry is
        "internal.example.com" and the network-provided DNS resolver is "ns1.internal.example.com",
        the network operator can structure the internal domain names as
        "private1.internal.example.com", "private2.internal.example.com",
        etc. The network-designated resolver will be used to resolve the subdomains of
        the local domain hint "*.internal.example.com".</t>
    </section>
    <section anchor="vpn" numbered="true" removeInRFC="false" toc="include" pn="section-10">
      <name slugifiedName="name-validation-with-ikev2">Validation with IKEv2</name>
      <t indent="0" pn="section-10-1">When the endpoint is using a VPN tunnel and the tunnel is IPsec, the encrypted DNS resolver hosted by
      the VPN service provider can be securely discovered by the endpoint
      using the ENCDNS_IP* IKEv2 Configuration Payload Attribute Types
      defined in <xref target="RFC9464" format="default" sectionFormat="of" derivedContent="RFC9464"/>. The VPN client
      can use the mechanism defined in <xref target="validating" format="default" sectionFormat="of" derivedContent="Section 6"/> to validate that the discovered
      encrypted DNS resolver is authorized to answer for the claimed subdomains.</t>
      <t indent="0" pn="section-10-2">Other VPN tunnel types have similar configuration capabilities. Note that those
      capabilities are not discussed in this document.</t>
    </section>
    <section anchor="aclaim" numbered="true" removeInRFC="false" toc="include" pn="section-11">
      <name slugifiedName="name-authorization-claim-update">Authorization Claim Update</name>
      <t indent="0" pn="section-11-1">A Verification Record is only valid until it expires. Expiry occurs when the Time To Live (TTL)
      or DNSSEC signature validity period ends. Shortly before Verification Record expiry, clients <bcp14>MUST</bcp14>
      fetch the Verification Records again and repeat the verification procedure. This ensures the
      availability of updated and valid Verification Records.</t>
      <t indent="0" pn="section-11-2">A new Verification Record must be added to the RRset before the corresponding authorization
      claim is updated.  After the claim is updated, the following procedures can be used:</t>
      <ol indent="adaptive" spacing="normal" start="1" type="1" pn="section-11-3">
        <li pn="section-11-3.1" derivedCounter="1.">DHCP reconfiguration can be initiated by a DHCP server that has previously communicated with a DHCP client and
   negotiated for the DHCP client to listen for Reconfigure messages, to prompt the DHCP client to
        dynamically request the updated authorization claim. This process avoids the need for
        the client to wait for its current lease to complete and request a new one, enabling the lease
        renewal to be driven by the DHCP server.</li>
        <li pn="section-11-3.2" derivedCounter="2.">The sequence number in the RA PvD Option
        can be incremented, requiring clients to fetch PvD Additional Information from the HTTPS
        server due to the updated sequence number in the new RA (<xref target="RFC8801" section="4.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8801#section-4.1" derivedContent="RFC8801"/>).</li>
        <li pn="section-11-3.3" derivedCounter="3.">The old Verification Record needs to be maintained until the DHCP lease or PvD Additional Information expires.</li>
      </ol>
    </section>
    <section anchor="Security" numbered="true" removeInRFC="false" toc="include" pn="section-12">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-12-1">The ADNs of authorized local encrypted resolvers are
      revealed in the owner names of Verification Records.  This makes it easier for
      domain owners to understand which resolvers they are currently authorizing to
      implement split DNS. However, this could create a confidentiality issue if the
      local encrypted resolver's name contains sensitive information or is part of a
      secret subdomain. To mitigate the impact of such leakage, local resolvers should
      be given names that do not reveal any sensitive information.</t>
      <t indent="0" pn="section-12-2"> The security properties of hashing algorithms are not fixed. Algorithm agility
      (see <xref target="RFC7696" format="default" sectionFormat="of" derivedContent="RFC7696"/>) is achieved by providing implementations with
      the flexibility to choose hashing algorithms from the "ZONEMD Hash Algorithms" registry
      (<xref target="RFC8976" section="5.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8976#section-5.3" derivedContent="RFC8976"/>).</t>
      <t indent="0" pn="section-12-3">The entropy of a salt depends on a high-quality pseudorandom number generator.
      For further discussion on random number generation, see <xref target="RFC4086" format="default" sectionFormat="of" derivedContent="RFC4086"/>.
      The salt <bcp14>MUST</bcp14> be regenerated whenever the authorization claim is updated.</t>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-13">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-13.1">
        <name slugifiedName="name-new-dhcp-authentication-alg">New DHCP Authentication Algorithm for Split DNS</name>
        <t indent="0" pn="section-13.1-1">IANA has added the following entry to the "Protocol Name Space
        Values" registry in the "Dynamic Host Configuration Protocol (DHCP)
        Authentication Option Name Spaces" registry group:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-13.1-2">
          <dt pn="section-13.1-2.1">Value:</dt>
          <dd pn="section-13.1-2.2">4</dd>
          <dt pn="section-13.1-2.3">Description:</dt>
          <dd pn="section-13.1-2.4">Split-horizon DNS</dd>
          <dt pn="section-13.1-2.5">Reference:</dt>
          <dd pn="section-13.1-2.6">RFC 9704</dd>
        </dl>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-13.2">
        <name slugifiedName="name-new-pvd-additional-informat">New PvD Additional Information Type for Split DNS</name>
        <t indent="0" pn="section-13.2-1">IANA has added the following entry to the "Additional
        Information PvD Keys" registry in the "Provisioning Domains (PvDs)" registry group:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-13.2-2">
          <dt pn="section-13.2-2.1">JSON key:</dt>
          <dd pn="section-13.2-2.2">splitDnsClaims</dd>
          <dt pn="section-13.2-2.3">Description:</dt>
          <dd pn="section-13.2-2.4">Verifiable locally served domains</dd>
          <dt pn="section-13.2-2.5">Type:</dt>
          <dd pn="section-13.2-2.6">Array of Objects</dd>
          <dt pn="section-13.2-2.7">Example:</dt>
          <dd pn="section-13.2-2.8">
            <sourcecode type="json" markers="false" pn="section-13.2-2.8.1">[{
  "resolver": "dns.example.net",
  "parent": "example.com",
  "subdomains": ["sub"],
  "algorithm": "SHA384",
  "salt": "abc...123"
}]</sourcecode>
          </dd>
          <dt pn="section-13.2-2.9">Reference:</dt>
          <dd pn="section-13.2-2.10">RFC 9704</dd>
        </dl>
      </section>
      <section anchor="new-split-claims-registry" numbered="true" removeInRFC="false" toc="include" pn="section-13.3">
        <name slugifiedName="name-new-pvd-split-dns-claims-re">New PvD Split DNS Claims Registry</name>
        <t indent="0" pn="section-13.3-1">IANA has created a new registry called "PvD Split DNS Claims"
        within the "Provisioning Domains (PvDs)" registry group.  This new registry
        reserves JSON keys for use in sub-dictionaries under the splitDnsClaims JSON key.
        The initial contents of this registry, as discussed in <xref target="splitclaims" format="default" sectionFormat="of" derivedContent="Section 5.2.2"/>,
        are listed below and have been added to the registry:</t>
        <table anchor="split-claims" align="center" pn="table-1">
          <name slugifiedName="name-split-dns-claims">Split DNS Claims</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">JSON key</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Type</th>
              <th align="left" colspan="1" rowspan="1">Example</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">resolver</td>
              <td align="left" colspan="1" rowspan="1">The Authentication Domain Name</td>
              <td align="left" colspan="1" rowspan="1">String</td>
              <td align="left" colspan="1" rowspan="1">"dns.example.net"</td>
              <td align="left" colspan="1" rowspan="1">RFC 9704</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">parent</td>
              <td align="left" colspan="1" rowspan="1">The parent zone name</td>
              <td align="left" colspan="1" rowspan="1">String</td>
              <td align="left" colspan="1" rowspan="1">"example.com"</td>
              <td align="left" colspan="1" rowspan="1">RFC 9704</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">subdomains</td>
              <td align="left" colspan="1" rowspan="1">An array containing the claimed subdomains</td>
              <td align="left" colspan="1" rowspan="1">Array of Strings</td>
              <td align="left" colspan="1" rowspan="1">["sub"]</td>
              <td align="left" colspan="1" rowspan="1">RFC 9704</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">algorithm</td>
              <td align="left" colspan="1" rowspan="1">The hash algorithm</td>
              <td align="left" colspan="1" rowspan="1">String</td>
              <td align="left" colspan="1" rowspan="1">"SHA384"</td>
              <td align="left" colspan="1" rowspan="1">RFC 9704</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">salt</td>
              <td align="left" colspan="1" rowspan="1">The salt (base64url)</td>
              <td align="left" colspan="1" rowspan="1">String</td>
              <td align="left" colspan="1" rowspan="1">"abc...123"</td>
              <td align="left" colspan="1" rowspan="1">RFC 9704</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-13.3-3">The keys defined in this document are mandatory. Any new assignments of keys will be considered
        as optional for the purpose of the mechanism described in this document.</t>
        <t indent="0" pn="section-13.3-4">New assignments in the "PvD Split DNS Claims" registry will be
        administered by IANA through Expert Review <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>. Experts are
        requested to ensure that defined keys do not overlap in names or semantics.</t>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-13.3.1">
          <name slugifiedName="name-guidelines-for-the-designat">Guidelines for the Designated Experts</name>
          <t indent="0" pn="section-13.3.1-1">It is suggested that multiple designated experts be appointed for
          registry change requests.</t>
          <t indent="0" pn="section-13.3.1-2">Criteria that should be applied by the designated experts include
          determining whether the proposed registration duplicates existing
          entries and whether the registration description is clear and fits
          the purpose of this registry.</t>
          <t indent="0" pn="section-13.3.1-3">Registration requests are evaluated within a three-week review period
          on the advice of one or more designated experts. Within the review
          period, the designated experts will either approve or deny the
          registration request, communicating this decision to IANA. Denials
          should include an explanation and, if applicable, suggestions as to
          how to make the request successful.</t>
        </section>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-13.4">
        <name slugifiedName="name-dns-underscore-name">DNS Underscore Name</name>
        <t indent="0" pn="section-13.4-1">IANA has added the following entry to the "Underscored and
        Globally Scoped DNS Node Names" registry in the "Domain Name System (DNS)
        Parameters" registry group:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-13.4-2">
          <dt pn="section-13.4-2.1">RR Type:</dt>
          <dd pn="section-13.4-2.2">TXT</dd>
          <dt pn="section-13.4-2.3">_NODE NAME:</dt>
          <dd pn="section-13.4-2.4">_splitdns-challenge</dd>
          <dt pn="section-13.4-2.5">Reference:</dt>
          <dd pn="section-13.4-2.6">RFC 9704</dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-dnsop-domain-verification-techniques" to="DOMAIN-VERIFICATION-TECHNIQUES"/>
    <references pn="section-14">
      <name slugifiedName="name-references">References</name>
      <references pn="section-14.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC2131" target="https://www.rfc-editor.org/info/rfc2131" quoteTitle="true" derivedAnchor="RFC2131">
          <front>
            <title>Dynamic Host Configuration Protocol</title>
            <author fullname="R. Droms" initials="R." surname="Droms"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">The Dynamic Host Configuration Protocol (DHCP) provides a framework for passing configuration information to hosts on a TCPIP network. DHCP is based on the Bootstrap Protocol (BOOTP), adding the capability of automatic allocation of reusable network addresses and additional configuration options. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2131"/>
          <seriesInfo name="DOI" value="10.17487/RFC2131"/>
        </reference>
        <reference anchor="RFC3118" target="https://www.rfc-editor.org/info/rfc3118" quoteTitle="true" derivedAnchor="RFC3118">
          <front>
            <title>Authentication for DHCP Messages</title>
            <author fullname="R. Droms" initials="R." role="editor" surname="Droms"/>
            <author fullname="W. Arbaugh" initials="W." role="editor" surname="Arbaugh"/>
            <date month="June" year="2001"/>
            <abstract>
              <t indent="0">This document defines a new Dynamic Host Configuration Protocol (DHCP) option through which authorization tickets can be easily generated and newly attached hosts with proper authorization can be automatically configured from an authenticated DHCP server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3118"/>
          <seriesInfo name="DOI" value="10.17487/RFC3118"/>
        </reference>
        <reference anchor="RFC3396" target="https://www.rfc-editor.org/info/rfc3396" quoteTitle="true" derivedAnchor="RFC3396">
          <front>
            <title>Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4)</title>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <date month="November" year="2002"/>
          </front>
          <seriesInfo name="RFC" value="3396"/>
          <seriesInfo name="DOI" value="10.17487/RFC3396"/>
        </reference>
        <reference anchor="RFC4034" target="https://www.rfc-editor.org/info/rfc4034" quoteTitle="true" derivedAnchor="RFC4034">
          <front>
            <title>Resource Records for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t indent="0">This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
              <t indent="0">This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4034"/>
          <seriesInfo name="DOI" value="10.17487/RFC4034"/>
        </reference>
        <reference anchor="RFC4035" target="https://www.rfc-editor.org/info/rfc4035" quoteTitle="true" derivedAnchor="RFC4035">
          <front>
            <title>Protocol Modifications for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t indent="0">This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications.</t>
              <t indent="0">This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4035"/>
          <seriesInfo name="DOI" value="10.17487/RFC4035"/>
        </reference>
        <reference anchor="RFC4086" target="https://www.rfc-editor.org/info/rfc4086" quoteTitle="true" derivedAnchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t indent="0">Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t indent="0">Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
        <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4648" quoteTitle="true" derivedAnchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t indent="0">This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC6698" target="https://www.rfc-editor.org/info/rfc6698" quoteTitle="true" derivedAnchor="RFC6698">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schlyter" initials="J." surname="Schlyter"/>
            <date month="August" year="2012"/>
            <abstract>
              <t indent="0">Encrypted communication on the Internet often uses Transport Layer Security (TLS), which depends on third parties to certify the keys used. This document improves on that situation by enabling the administrators of domain names to specify the keys used in that domain's TLS servers. This requires matching improvements in TLS client software, but no change in TLS server software. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6698"/>
          <seriesInfo name="DOI" value="10.17487/RFC6698"/>
        </reference>
        <reference anchor="RFC6761" target="https://www.rfc-editor.org/info/rfc6761" quoteTitle="true" derivedAnchor="RFC6761">
          <front>
            <title>Special-Use Domain Names</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t indent="0">This document describes what it means to say that a Domain Name (DNS name) is reserved for special use, when reserving such a name is appropriate, and the procedure for doing so. It establishes an IANA registry for such domain names, and seeds it with entries for some of the already established special domain names.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6761"/>
          <seriesInfo name="DOI" value="10.17487/RFC6761"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t indent="0">Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t indent="0">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t indent="0">This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8415" target="https://www.rfc-editor.org/info/rfc8415" quoteTitle="true" derivedAnchor="RFC8415">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="November" year="2018"/>
            <abstract>
              <t indent="0">This document describes the Dynamic Host Configuration Protocol for IPv6 (DHCPv6): an extensible mechanism for configuring nodes with network configuration parameters, IP addresses, and prefixes. Parameters can be provided statelessly, or in combination with stateful assignment of one or more IPv6 addresses and/or IPv6 prefixes. DHCPv6 can operate either in place of or in addition to stateless address autoconfiguration (SLAAC).</t>
              <t indent="0">This document updates the text from RFC 3315 (the original DHCPv6 specification) and incorporates prefix delegation (RFC 3633), stateless DHCPv6 (RFC 3736), an option to specify an upper bound for how long a client should wait before refreshing information (RFC 4242), a mechanism for throttling DHCPv6 clients when DHCPv6 service is not available (RFC 7083), and relay agent handling of unknown messages (RFC 7283). In addition, this document clarifies the interactions between models of operation (RFC 7550). As such, this document obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083, RFC 7283, and RFC 7550.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8415"/>
          <seriesInfo name="DOI" value="10.17487/RFC8415"/>
        </reference>
        <reference anchor="RFC8801" target="https://www.rfc-editor.org/info/rfc8801" quoteTitle="true" derivedAnchor="RFC8801">
          <front>
            <title>Discovering Provisioning Domain Names and Data</title>
            <author fullname="P. Pfister" initials="P." surname="Pfister"/>
            <author fullname="É. Vyncke" surname="É. Vyncke"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="W. Shao" initials="W." surname="Shao"/>
            <date month="July" year="2020"/>
            <abstract>
              <t indent="0">Provisioning Domains (PvDs) are defined as consistent sets of network configuration information. PvDs allows hosts to manage connections to multiple networks and interfaces simultaneously, such as when a home router provides connectivity through both a broadband and cellular network provider.</t>
              <t indent="0">This document defines a mechanism for explicitly identifying PvDs through a Router Advertisement (RA) option. This RA option announces a PvD identifier, which hosts can compare to differentiate between PvDs. The option can directly carry some information about a PvD and can optionally point to PvD Additional Information that can be retrieved using HTTP over TLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8801"/>
          <seriesInfo name="DOI" value="10.17487/RFC8801"/>
        </reference>
        <reference anchor="RFC8976" target="https://www.rfc-editor.org/info/rfc8976" quoteTitle="true" derivedAnchor="RFC8976">
          <front>
            <title>Message Digest for DNS Zones</title>
            <author fullname="D. Wessels" initials="D." surname="Wessels"/>
            <author fullname="P. Barber" initials="P." surname="Barber"/>
            <author fullname="M. Weinberg" initials="M." surname="Weinberg"/>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
            <date month="February" year="2021"/>
            <abstract>
              <t indent="0">This document describes a protocol and new DNS Resource Record that provides a cryptographic message digest over DNS zone data at rest. The ZONEMD Resource Record conveys the digest data in the zone itself. When used in combination with DNSSEC, ZONEMD allows recipients to verify the zone contents for data integrity and origin authenticity. This provides assurance that received zone data matches published data, regardless of how the zone data has been transmitted and received. When used without DNSSEC, ZONEMD functions as a checksum, guarding only against unintentional changes.</t>
              <t indent="0">ZONEMD does not replace DNSSEC: DNSSEC protects individual RRsets (DNS data with fine granularity), whereas ZONEMD protects a zone's data as a whole, whether consumed by authoritative name servers, recursive name servers, or any other applications.</t>
              <t indent="0">As specified herein, ZONEMD is impractical for large, dynamic zones due to the time and resources required for digest calculation. However, the ZONEMD record is extensible so that new digest schemes may be added in the future to support large, dynamic zones.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8976"/>
          <seriesInfo name="DOI" value="10.17487/RFC8976"/>
        </reference>
        <reference anchor="RFC9525" target="https://www.rfc-editor.org/info/rfc9525" quoteTitle="true" derivedAnchor="RFC9525">
          <front>
            <title>Service Identity in TLS</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t indent="0">Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
              <t indent="0">This document obsoletes RFC 6125.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9525"/>
          <seriesInfo name="DOI" value="10.17487/RFC9525"/>
        </reference>
      </references>
      <references pn="section-14.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-dnsop-domain-verification-techniques" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-domain-verification-techniques-06" derivedAnchor="DOMAIN-VERIFICATION-TECHNIQUES">
          <front>
            <title>Domain Control Validation using DNS</title>
            <author initials="S." surname="Sahib" fullname="Shivan Kaul Sahib">
              <organization showOnFrontPage="true">Brave Software</organization>
            </author>
            <author initials="S." surname="Huque" fullname="Shumon Huque">
              <organization showOnFrontPage="true">Salesforce</organization>
            </author>
            <author initials="P." surname="Wouters" fullname="Paul Wouters">
              <organization showOnFrontPage="true">Aiven</organization>
            </author>
            <author initials="E." surname="Nygren" fullname="Erik Nygren">
              <organization showOnFrontPage="true">Akamai Technologies</organization>
            </author>
            <date month="October" day="21" year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-domain-verification-techniques-06"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC4702" target="https://www.rfc-editor.org/info/rfc4702" quoteTitle="true" derivedAnchor="RFC4702">
          <front>
            <title>The Dynamic Host Configuration Protocol (DHCP) Client Fully Qualified Domain Name (FQDN) Option</title>
            <author fullname="M. Stapp" initials="M." surname="Stapp"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="October" year="2006"/>
            <abstract>
              <t indent="0">This document describes a Dynamic Host Configuration Protocol for IPv4 (DHCPv4) option that can be used to exchange information about a DHCPv4 client's fully qualified domain name and about responsibility for updating the DNS RR related to the client's address assignment. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4702"/>
          <seriesInfo name="DOI" value="10.17487/RFC4702"/>
        </reference>
        <reference anchor="RFC4704" target="https://www.rfc-editor.org/info/rfc4704" quoteTitle="true" derivedAnchor="RFC4704">
          <front>
            <title>The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) Option</title>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <date month="October" year="2006"/>
            <abstract>
              <t indent="0">This document specifies a new Dynamic Host Configuration Protocol for IPv6 (DHCPv6) option that can be used to exchange information about a DHCPv6 client's Fully Qualified Domain Name (FQDN) and about responsibility for updating DNS resource records (RRs) related to the client's address assignments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4704"/>
          <seriesInfo name="DOI" value="10.17487/RFC4704"/>
        </reference>
        <reference anchor="RFC5986" target="https://www.rfc-editor.org/info/rfc5986" quoteTitle="true" derivedAnchor="RFC5986">
          <front>
            <title>Discovering the Local Location Information Server (LIS)</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <author fullname="J. Winterbottom" initials="J." surname="Winterbottom"/>
            <date month="September" year="2010"/>
            <abstract>
              <t indent="0">Discovery of the correct Location Information Server (LIS) in the local access network is necessary for Devices that wish to acquire location information from the network. A method is described for the discovery of a LIS in the access network serving a Device. Dynamic Host Configuration Protocol (DHCP) options for IP versions 4 and 6 are defined that specify a domain name. This domain name is then used as input to a URI-enabled NAPTR (U-NAPTR) resolution process. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5986"/>
          <seriesInfo name="DOI" value="10.17487/RFC5986"/>
        </reference>
        <reference anchor="RFC6234" target="https://www.rfc-editor.org/info/rfc6234" quoteTitle="true" derivedAnchor="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t indent="0">Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC6731" target="https://www.rfc-editor.org/info/rfc6731" quoteTitle="true" derivedAnchor="RFC6731">
          <front>
            <title>Improved Recursive DNS Server Selection for Multi-Interfaced Nodes</title>
            <author fullname="T. Savolainen" initials="T." surname="Savolainen"/>
            <author fullname="J. Kato" initials="J." surname="Kato"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <date month="December" year="2012"/>
            <abstract>
              <t indent="0">A multi-interfaced node is connected to multiple networks, some of which might be utilizing private DNS namespaces. A node commonly receives recursive DNS server configuration information from all connected networks. Some of the recursive DNS servers might have information about namespaces other servers do not have. When a multi-interfaced node needs to utilize DNS, the node has to choose which of the recursive DNS servers to use. This document describes DHCPv4 and DHCPv6 options that can be used to configure nodes with information required to perform informed recursive DNS server selection decisions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6731"/>
          <seriesInfo name="DOI" value="10.17487/RFC6731"/>
        </reference>
        <reference anchor="RFC6762" target="https://www.rfc-editor.org/info/rfc6762" quoteTitle="true" derivedAnchor="RFC6762">
          <front>
            <title>Multicast DNS</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t indent="0">As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
              <t indent="0">Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
              <t indent="0">The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6762"/>
          <seriesInfo name="DOI" value="10.17487/RFC6762"/>
        </reference>
        <reference anchor="RFC7686" target="https://www.rfc-editor.org/info/rfc7686" quoteTitle="true" derivedAnchor="RFC7686">
          <front>
            <title>The ".onion" Special-Use Domain Name</title>
            <author fullname="J. Appelbaum" initials="J." surname="Appelbaum"/>
            <author fullname="A. Muffett" initials="A." surname="Muffett"/>
            <date month="October" year="2015"/>
            <abstract>
              <t indent="0">This document registers the ".onion" Special-Use Domain Name.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7686"/>
          <seriesInfo name="DOI" value="10.17487/RFC7686"/>
        </reference>
        <reference anchor="RFC7696" target="https://www.rfc-editor.org/info/rfc7696" quoteTitle="true" derivedAnchor="RFC7696">
          <front>
            <title>Guidelines for Cryptographic Algorithm Agility and Selecting Mandatory-to-Implement Algorithms</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="November" year="2015"/>
            <abstract>
              <t indent="0">Many IETF protocols use cryptographic algorithms to provide confidentiality, integrity, authentication, or digital signature. Communicating peers must support a common set of cryptographic algorithms for these mechanisms to work properly. This memo provides guidelines to ensure that protocols have the ability to migrate from one mandatory-to-implement algorithm suite to another over time.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="201"/>
          <seriesInfo name="RFC" value="7696"/>
          <seriesInfo name="DOI" value="10.17487/RFC7696"/>
        </reference>
        <reference anchor="RFC7858" target="https://www.rfc-editor.org/info/rfc7858" quoteTitle="true" derivedAnchor="RFC7858">
          <front>
            <title>Specification for DNS over Transport Layer Security (TLS)</title>
            <author fullname="Z. Hu" initials="Z." surname="Hu"/>
            <author fullname="L. Zhu" initials="L." surname="Zhu"/>
            <author fullname="J. Heidemann" initials="J." surname="Heidemann"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <author fullname="D. Wessels" initials="D." surname="Wessels"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="May" year="2016"/>
            <abstract>
              <t indent="0">This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS. Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626. In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t>
              <t indent="0">This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7858"/>
          <seriesInfo name="DOI" value="10.17487/RFC7858"/>
        </reference>
        <reference anchor="RFC8106" target="https://www.rfc-editor.org/info/rfc8106" quoteTitle="true" derivedAnchor="RFC8106">
          <front>
            <title>IPv6 Router Advertisement Options for DNS Configuration</title>
            <author fullname="J. Jeong" initials="J." surname="Jeong"/>
            <author fullname="S. Park" initials="S." surname="Park"/>
            <author fullname="L. Beloeil" initials="L." surname="Beloeil"/>
            <author fullname="S. Madanapalli" initials="S." surname="Madanapalli"/>
            <date month="March" year="2017"/>
            <abstract>
              <t indent="0">This document specifies IPv6 Router Advertisement (RA) options (called "DNS RA options") to allow IPv6 routers to advertise a list of DNS Recursive Server Addresses and a DNS Search List to IPv6 hosts.</t>
              <t indent="0">This document, which obsoletes RFC 6106, defines a higher default value of the lifetime of the DNS RA options to reduce the likelihood of expiry of the options on links with a relatively high rate of packet loss.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8106"/>
          <seriesInfo name="DOI" value="10.17487/RFC8106"/>
        </reference>
        <reference anchor="RFC8310" target="https://www.rfc-editor.org/info/rfc8310" quoteTitle="true" derivedAnchor="RFC8310">
          <front>
            <title>Usage Profiles for DNS over TLS and DNS over DTLS</title>
            <author fullname="S. Dickinson" initials="S." surname="Dickinson"/>
            <author fullname="D. Gillmor" initials="D." surname="Gillmor"/>
            <author fullname="T. Reddy" initials="T." surname="Reddy"/>
            <date month="March" year="2018"/>
            <abstract>
              <t indent="0">This document discusses usage profiles, based on one or more authentication mechanisms, which can be used for DNS over Transport Layer Security (TLS) or Datagram TLS (DTLS). These profiles can increase the privacy of DNS transactions compared to using only cleartext DNS. This document also specifies new authentication mechanisms -- it describes several ways that a DNS client can use an authentication domain name to authenticate a (D)TLS connection to a DNS server. Additionally, it defines (D)TLS protocol profiles for DNS clients and servers implementing DNS over (D)TLS. This document updates RFC 7858.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8310"/>
          <seriesInfo name="DOI" value="10.17487/RFC8310"/>
        </reference>
        <reference anchor="RFC8484" target="https://www.rfc-editor.org/info/rfc8484" quoteTitle="true" derivedAnchor="RFC8484">
          <front>
            <title>DNS Queries over HTTPS (DoH)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <date month="October" year="2018"/>
            <abstract>
              <t indent="0">This document defines a protocol for sending DNS queries and getting DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8484"/>
          <seriesInfo name="DOI" value="10.17487/RFC8484"/>
        </reference>
        <reference anchor="RFC8598" target="https://www.rfc-editor.org/info/rfc8598" quoteTitle="true" derivedAnchor="RFC8598">
          <front>
            <title>Split DNS Configuration for the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="P. Wouters" initials="P." surname="Wouters"/>
            <date month="May" year="2019"/>
            <abstract>
              <t indent="0">This document defines two Configuration Payload Attribute Types (INTERNAL_DNS_DOMAIN and INTERNAL_DNSSEC_TA) for the Internet Key Exchange Protocol version 2 (IKEv2). These payloads add support for private (internal-only) DNS domains. These domains are intended to be resolved using non-public DNS servers that are only reachable through the IPsec connection. DNS resolution for other domains remains unchanged. These Configuration Payloads only apply to split- tunnel configurations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8598"/>
          <seriesInfo name="DOI" value="10.17487/RFC8598"/>
        </reference>
        <reference anchor="RFC8792" target="https://www.rfc-editor.org/info/rfc8792" quoteTitle="true" derivedAnchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t indent="0">This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
        <reference anchor="RFC8806" target="https://www.rfc-editor.org/info/rfc8806" quoteTitle="true" derivedAnchor="RFC8806">
          <front>
            <title>Running a Root Server Local to a Resolver</title>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t indent="0">Some DNS recursive resolvers have longer-than-desired round-trip times to the closest DNS root server; those resolvers may have difficulty getting responses from the root servers, such as during a network attack. Some DNS recursive resolver operators want to prevent snooping by third parties of requests sent to DNS root servers. In both cases, resolvers can greatly decrease the round-trip time and prevent observation of requests by serving a copy of the full root zone on the same server, such as on a loopback address or in the resolver software. This document shows how to start and maintain such a copy of the root zone that does not cause problems for other users of the DNS, at the cost of adding some operational fragility for the operator.</t>
              <t indent="0">This document obsoletes RFC 7706.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8806"/>
          <seriesInfo name="DOI" value="10.17487/RFC8806"/>
        </reference>
        <reference anchor="RFC9250" target="https://www.rfc-editor.org/info/rfc9250" quoteTitle="true" derivedAnchor="RFC9250">
          <front>
            <title>DNS over Dedicated QUIC Connections</title>
            <author fullname="C. Huitema" initials="C." surname="Huitema"/>
            <author fullname="S. Dickinson" initials="S." surname="Dickinson"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <date month="May" year="2022"/>
            <abstract>
              <t indent="0">This document describes the use of QUIC to provide transport confidentiality for DNS. The encryption provided by QUIC has similar properties to those provided by TLS, while QUIC transport eliminates the head-of-line blocking issues inherent with TCP and provides more efficient packet-loss recovery than UDP. DNS over QUIC (DoQ) has privacy properties similar to DNS over TLS (DoT) specified in RFC 7858, and latency characteristics similar to classic DNS over UDP. This specification describes the use of DoQ as a general-purpose transport for DNS and includes the use of DoQ for stub to recursive, recursive to authoritative, and zone transfer scenarios.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9250"/>
          <seriesInfo name="DOI" value="10.17487/RFC9250"/>
        </reference>
        <reference anchor="RFC9364" target="https://www.rfc-editor.org/info/rfc9364" quoteTitle="true" derivedAnchor="RFC9364">
          <front>
            <title>DNS Security Extensions (DNSSEC)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="February" year="2023"/>
            <abstract>
              <t indent="0">This document describes the DNS Security Extensions (commonly called "DNSSEC") that are specified in RFCs 4033, 4034, and 4035, as well as a handful of others. One purpose is to introduce all of the RFCs in one place so that the reader can understand the many aspects of DNSSEC. This document does not update any of those RFCs. A second purpose is to state that using DNSSEC for origin authentication of DNS data is the best current practice. A third purpose is to provide a single reference for other documents that want to refer to DNSSEC.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="237"/>
          <seriesInfo name="RFC" value="9364"/>
          <seriesInfo name="DOI" value="10.17487/RFC9364"/>
        </reference>
        <reference anchor="RFC9462" target="https://www.rfc-editor.org/info/rfc9462" quoteTitle="true" derivedAnchor="RFC9462">
          <front>
            <title>Discovery of Designated Resolvers</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t indent="0">This document defines Discovery of Designated Resolvers (DDR), a set of mechanisms for DNS clients to use DNS records to discover a resolver's encrypted DNS configuration. An Encrypted DNS Resolver discovered in this manner is referred to as a "Designated Resolver". These mechanisms can be used to move from unencrypted DNS to encrypted DNS when only the IP address of a resolver is known. These mechanisms are designed to be limited to cases where Unencrypted DNS Resolvers and their Designated Resolvers are operated by the same entity or cooperating entities. It can also be used to discover support for encrypted DNS protocols when the name of an Encrypted DNS Resolver is known.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9462"/>
          <seriesInfo name="DOI" value="10.17487/RFC9462"/>
        </reference>
        <reference anchor="RFC9463" target="https://www.rfc-editor.org/info/rfc9463" quoteTitle="true" derivedAnchor="RFC9463">
          <front>
            <title>DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="T. Reddy.K" initials="T." role="editor" surname="Reddy.K"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="N. Cook" initials="N." surname="Cook"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t indent="0">This document specifies new DHCP and IPv6 Router Advertisement options to discover encrypted DNS resolvers (e.g., DNS over HTTPS, DNS over TLS, and DNS over QUIC). Particularly, it allows a host to learn an Authentication Domain Name together with a list of IP addresses and a set of service parameters to reach such encrypted DNS resolvers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9463"/>
          <seriesInfo name="DOI" value="10.17487/RFC9463"/>
        </reference>
        <reference anchor="RFC9464" target="https://www.rfc-editor.org/info/rfc9464" quoteTitle="true" derivedAnchor="RFC9464">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2) Configuration for Encrypted DNS</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="T. Reddy.K" initials="T." surname="Reddy.K"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="November" year="2023"/>
            <abstract>
              <t indent="0">This document specifies new Internet Key Exchange Protocol Version 2 (IKEv2) Configuration Payload Attribute Types to assign DNS resolvers that support encrypted DNS protocols, such as DNS over HTTPS (DoH), DNS over TLS (DoT), and DNS over QUIC (DoQ).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9464"/>
          <seriesInfo name="DOI" value="10.17487/RFC9464"/>
        </reference>
        <reference anchor="RFC9499" target="https://www.rfc-editor.org/info/rfc9499" quoteTitle="true" derivedAnchor="RFC9499">
          <front>
            <title>DNS Terminology</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
            <date month="March" year="2024"/>
            <abstract>
              <t indent="0">The Domain Name System (DNS) is defined in literally dozens of different RFCs. The terminology used by implementers and developers of DNS protocols, and by operators of DNS systems, has changed in the decades since the DNS was first defined. This document gives current definitions for many of the terms used in the DNS in a single document.</t>
              <t indent="0">This document updates RFC 2308 by clarifying the definitions of "forwarder" and "QNAME". It obsoletes RFC 8499 by adding multiple terms and clarifications. Comprehensive lists of changed and new definitions can be found in Appendices A and B.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="219"/>
          <seriesInfo name="RFC" value="9499"/>
          <seriesInfo name="DOI" value="10.17487/RFC9499"/>
        </reference>
      </references>
    </references>
    <section numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">Thanks to <contact fullname="Mohamed Boucadair"/>, <contact fullname="Jim Reid"/>, <contact fullname="Tommy Pauly"/>, <contact fullname="Paul Vixie"/>, <contact fullname="Michael Richardson"/>,
      <contact fullname="Bernie Volz"/>, <contact fullname="Éric Vyncke"/>, and
      <contact fullname="Vinny Parla"/> for the discussion and comments.</t>
      <t indent="0" pn="section-appendix.a-2">Thanks to <contact fullname="Tianran Zhou"/> for the opsdir review,
      <contact fullname="Anthony Somerset"/> for the dnsdir review, <contact fullname="Watson Ladd"/> for the secdir review, <contact fullname="Bob       Halley"/> for the intdir review, and <contact fullname="Mallory Knodel"/>
      for the genart review.</t>
      <t indent="0" pn="section-appendix.a-3">Thanks to <contact fullname="Mohamed Boucadair"/> for the Shepherd review.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
        <organization showOnFrontPage="true">Nokia</organization>
        <address>
          <postal>
            <country>India</country>
          </postal>
          <email>kondtir@gmail.com</email>
        </address>
      </author>
      <author fullname="Dan Wing" initials="D." surname="Wing">
        <organization abbrev="Citrix" showOnFrontPage="true">Citrix Systems, Inc.</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>danwing@gmail.com</email>
        </address>
      </author>
      <author fullname="Kevin Smith" initials="K." surname="Smith">
        <organization abbrev="Vodafone" showOnFrontPage="true">Vodafone Group</organization>
        <address>
          <postal>
            <street>One Kingdom Street</street>
            <city>London</city>
            <country>United Kingdom</country>
          </postal>
          <email>kevin.smith@vodafone.com</email>
        </address>
      </author>
      <author fullname="Benjamin Schwartz" initials="B." surname="Schwartz">
        <organization abbrev="Meta" showOnFrontPage="true">Meta Platforms, Inc.</organization>
        <address>
          <email>ietf@bemasc.net</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
