<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wkumari-dnsop-localroot-bcp-03" category="std" consensus="true" submissionType="IETF" updates="RFC8806" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="LocalRoot">Populating resolvers with the root zone</title>
    <seriesInfo name="Internet-Draft" value="draft-wkumari-dnsop-localroot-bcp-03"/>
    <author fullname="Warren Kumari">
      <organization>Google, Inc.</organization>
      <address>
        <email>warren@kumari.net</email>
      </address>
    </author>
    <author fullname="Wes Hardaker">
      <organization>USC/ISI and Google, Inc.</organization>
      <address>
        <email>ietf@hardakers.net</email>
      </address>
    </author>
    <author initials="J." surname="Reid" fullname="Jim Reid">
      <organization>RTFM llp</organization>
      <address>
        <postal>
          <street>St Andrews House</street>
          <city>382 Hillington Road, Glasgow Scotland</city>
          <code>G51 4BL</code>
          <country>UK</country>
        </postal>
        <email>jim@rfc1035.com</email>
      </address>
    </author>
    <author initials="G." surname="Huston" fullname="Geoff Huston">
      <organization>APNIC</organization>
      <address>
        <postal>
          <street>6 Cordelia St</street>
          <city>South Brisbane</city>
          <code>QLD 4101</code>
          <country>Australia</country>
        </postal>
        <email>gih@apnic.net</email>
      </address>
    </author>
    <date year="2026" month="January" day="20"/>
    <area>Operations and Management</area>
    <workgroup>Domain Name System Operations</workgroup>
    <keyword>DNS</keyword>
    <keyword>DNSSEC</keyword>
    <keyword>zone cut</keyword>
    <keyword>delegation</keyword>
    <keyword>referral</keyword>
    <abstract>
      <?line 108?>

<t>DNS recursive resolver operators need to provide the best service
possible for their users, which includes providing an operationally
robust and privacy protecting service.  Challenges to these deployment
goals include difficulty of getting responses from the root servers
(such as during a network attack), longer-than-desired round-trip
times to the closest DNS root server, and privacy issues relating to
queries sent to the DNS root servers.  Resolvers can solve all of
these issues by simply serving an already cached a copy of the full
root zone.</t>
      <t>This document shows how resolvers can fetch, cache and maintain a copy
of the root zone, how to detect if the contents becomes stale, and
procedures for handling error conditions.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://wkumari.github.io/draft-wkumari-dnsop-localroot-bcp/draft-wkumari-dnsop-localroot-bcp.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wkumari-dnsop-localroot-bcp/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Domain Name System Operations Working Group mailing list (<eref target="mailto:dnsop@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dnsop/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dnsop/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/https://github.com/wkumari/draft-wkumari-dnsop-localroot-bcp"/>.</t>
    </note>
  </front>
  <middle>
    <?line 124?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>DNS recursive resolvers have to provide responses to all queries from
their clients, even those for domain names that do not exist.  For
each queried name that is within a top-level domain (TLD) that is not
in the recursive resolver's cache, the resolver must send a query to a
DNS root server to get the information for that TLD or to find out that
the TLD does not exist.  Many of the queries to root servers get
answers that are referrals to other servers.  But, research shows that
the vast majority of queries going to the root are for names that do
not exist in the DNS root zone <xref target="DNEROOTNAMES"/>.  Regardless of whether
the queries get positive or negative answers, there are privacy
implications related to the eavesdropping of these queries as they are
being transmitted to the DNS root servers.</t>
      <section anchor="goals">
        <name>Local Caching of Root Server Data</name>
        <t>Caching the IANA root zone data locally, commonly referred to as
running a "LocalRoot" instance, provides a method for the operator of
a recursive resolver to use a complete copy of the IANA root zone
locally instead of sending requests to the Root Server System (RSS).
This goal can be implemented using a number of different techniques,
including as described in this document.  However, the net effect will
be the same: few, if any, queries should be sent to the actual RSS.</t>
        <t>Implementation techniques are documented herein for achieving
LocalRoot functionality (see <xref target="functionality"/>).  At a high level,
this involves a LocalRoot implementation pre-fetching the root zone at
regular intervals and populating its resolver's cache with
information, or by running an authoritative server in parallel that
acts as a local, authoritative root server for its associated resolver.
Other mechanisms for implementing LocalRoot functionality <bcp14>MAY</bcp14> be used.
To a client, the net effect of using any technique <bcp14>SHOULD</bcp14> be nearly
indistinguishable to that of a non-Localroot resolver.</t>
        <t>This behavior <bcp14>SHOULD</bcp14> be used by all general-purpose recursive
resolvers used on the public Internet.</t>
        <t>Note that enabling LocalRoot functionality in a resolver should have
little effect on improving resolver speed to its stub resolver clients
for queries under Top Level Domains (TLDs), as the TTL for most TLDs
is long-lived (two days in the current root zone). Thus, most TLD
nameserver and address records are typically already in a resolver's
cache.  Negative answers from the root servers are also cached in a
similar fashion, though potentially for a shorter time based on the
SOA negative cache timing (one day in the current root zone).</t>
        <t>Also note that a different approach to partially mitigating some of
the privacy problems that a LocalRoot enabled resolver solves can be
achieved using the "Aggressive Use of DNSSEC-Validated Cache"
<xref target="RFC8198"/> functionality.</t>
        <t>This document obsoletes <xref target="RFC8806"/>.</t>
      </section>
    </section>
    <section anchor="definitions">
      <name>Conventions and Definitions</name>
      <t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<section anchor="terminology-used-in-this-document">
        <name>Terminology used in this document</name>
        <t>Readers are expected to be familiar with the terminology defined in
<xref target="RFC8499"/>.  In addition, the following terminology will be used in
this document:</t>
        <ul spacing="normal">
          <li>
            <t>IANA root zone: the Internet's globally unique DNS root zone as
published by IANA <xref target="RFC2826"/>.  This is the same source of root zone
data used by the Root Server Operators <xref target="RSSAC055"/>. <xref target="RFC8499"/>
describes the same root zone as "The zone of a DNS-based tree whose
apex is the zero- length label.  Also sometimes called ''the DNS
root'."</t>
          </li>
          <li>
            <t>IANA root zone data: the complete set of records that makes up the
IANA root zone.</t>
          </li>
          <li>
            <t>A LocalRoot enabled resolver: a recursive resolver that makes use of
a local copy of the root zone data while performing its DNS
resolution process.</t>
          </li>
          <li>
            <t>A LocalRoot implementation: the software or system of software
responsible for implementing the functionality described in this
specification. A LocalRoot implementation may be implemented as a
singular component within a recursive resolver or within multiple
components operating in coordination.  Implementations may also vary
significantly in how these tasks are performed, ranging from static
configuration to more active systems.  We refer to this entire
system, regardless of implementation sytle, as a "LocalRoot
implementation".</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="functionality">
      <name>Components of a LocalRoot enabled resolver</name>
      <t>To implement the goals described in <xref target="goals"/> and meet the
requirements described in <xref target="requirements"/>, a LocalRoot enabled
resolver will need to perform three fundamental tasks:</t>
      <ol spacing="normal" type="1"><li>
          <t>Identify locations from where root zone data can be obtained
(<xref target="root-zone-sources"/>).</t>
        </li>
        <li>
          <t>Downloading and refreshing the root zone data from one of the
publication points (<xref target="protocol-steps"/>).</t>
        </li>
        <li>
          <t>Integrating and serving the data while performing DNS resolutions
(<xref target="integrating-root-zone-data"/>).</t>
        </li>
      </ol>
      <t>Implementing these tasks entirely alleviates the need for sending any (other)
DNS requests to the RSS.</t>
      <t>Each of these tasks are described in greater detail in the subsections below.</t>
      <section anchor="root-zone-sources">
        <name>Identifying locations from where root zone data can be obtained</name>
        <t>For a LocalRoot enabled resolver to serve up to date data, an
implementation must be able to fetch the contents of the entire IANA
root zone on a regular basis from at least one publication source.
Implementations can find sources of root zone data in a number of
ways, including but not limited to:</t>
        <ol spacing="normal" type="1"><li>
            <t>An operationally configured list of sources (for example a
file of URLs) that can be used to fetch a copy of the IANA root
zone.</t>
          </li>
          <li>
            <t>A list of sources distributed with the resolver software itself,
(akin to how the root hints file is distributed with many resolvers
today).</t>
          </li>
          <li>
            <t>Downloading a list of available sources from IANA.  The mechanism
and list format for doing so is described in
<xref target="draft-hardaker-dnsop-iana-root-zone-publication-points"/>, which
asks IANA to aggregate, publish and maintain a list of IANA DNS
root zone sources at <em>TBD-URL</em> Guidance to IANA (or for other
entities wishing to collect and redistribute a list of sources) for
how to collect and maintain a list of IANA root data publication
sources is also discussed separately in
<xref target="draft-hardaker-dnsop-root-zone-pub-list-guidelines"/>.</t>
          </li>
        </ol>
      </section>
      <section anchor="protocol-steps">
        <name>Downloading and refreshing root zone data</name>
        <t>Once a list of available publication points of IANA root zone data
have been configured or obtained, a LocalRoot implementation <bcp14>MAY</bcp14> be
use the following steps to obtain and maintain an up to date copy of
the IANA root zone data.  Note that as long as the desired effect of
performing normal DNS resolution remains stable when combined with
LocalRoot functionality, other implementation strategies <bcp14>MAY</bcp14> be used.</t>
        <t>If a local copy of the IANA root zone data is unavailable for use in
DNS resolution at any point in these steps, resolvers <bcp14>SHOULD</bcp14> fall back
to performing DNS resolution by issuing queries directly to the RSS
instead.  If a resolver is unable to do so, it <bcp14>MUST</bcp14> respond to client
requests with a SERVFAIL response code.</t>
        <ol spacing="normal" type="1"><li>
            <t>A LocalRoot implementation <bcp14>SHOULD</bcp14> use a list of root zone sources
identified in <xref target="root-zone-sources"/> for obtaining a copy of the
IANA root zone.</t>
          </li>
          <li>
            <t>A LocalRoot implementation <bcp14>SHOULD</bcp14> select one of the available
sources from step 1, and from it retrieve a current copy of the
IANA root zone.  Resolvers <bcp14>SHOULD</bcp14> prioritize sources that can be
fetched the most efficiently.  For example, when supported, https
sources should be preferred as it allows for compression
negotiation as well as the use of low-cost, well-distributed
Content Delivery Networks (CDNs).  </t>
            <t>
When sending requests to a source of IANA root zone data, the
resolver <bcp14>SHOULD</bcp14> minimize its impact on the source by querying at a
rate no faster than specified by the SOA refresh timer and <bcp14>SHOULD</bcp14>
use data freshness protocol checks instead of downloading the
entire contents at each refresh (example checks include the HEAD
method <xref target="RFC9110"/> when using HTTP(s) or by querying the root
zone's SOA over DNS first when using AXFR, IXFR or XoT).  Once
fetched, an implementation <bcp14>MUST NOT</bcp14> make use of the obtained IANA
root zone data with a SOA serial number older than any previously
obtained copy <xref target="RFC1982"/>.</t>
          </li>
          <li>
            <t>If the LocalRoot implementation failed to retrieve the IANA root
zone data in step 2, or the SOA serial number was deemed to be
older than the already cached data, then it <bcp14>SHOULD</bcp14> attempt to
retrieve the IANA root zone data from another source. If the
LocalRoot implementation resolver has exhausted the list of
sources, it <bcp14>SHOULD</bcp14> stop attempting to download the IANA root zone
data and <bcp14>SHOULD</bcp14> wait another refresh time length until retrying
sources again.</t>
          </li>
          <li>
            <t>Having successfully downloaded a copy of the IANA root zone, the
LocalRoot implementation <bcp14>MUST</bcp14> verify the contents of the IANA root
zone data using the ZONEMD <xref target="RFC8976"/> record contained within it.
Note that this REQUIRES verification of the ZONEMD record using
DNSSEC <xref target="BCP237"/> with the configured IANA root zone trust anchor.
The contents of the fetched zone <bcp14>MUST NOT</bcp14> be used until after
ZONEMD verification, including its DNSSEC verification, is complete
and successful.  Once the IANA root zone data has been verified,
the LocalRoot implementation can begin LocalRoot enabled DNS
resolution, potentially using the steps defined in
<xref target="integrating-root-zone-data"/>.</t>
          </li>
          <li>
            <t>The resolver <bcp14>MUST</bcp14> check at least one the sources in step 1 at a
regular interval to identify when a new copy of the IANA root zone
data is available.  This frequency <bcp14>MAY</bcp14> be configurable and <bcp14>SHOULD</bcp14>
default to the IANA root zone's current SOA refresh value. When a
resolver has detected that a new copy of the IANA root zone data is
available, the resolver <bcp14>SHOULD</bcp14> start at step 2 to obtain a new copy
of the IANA root zone data.  Resolvers <bcp14>MAY</bcp14> check multiple sources
to ensure one source has not fallen significantly behind in its
copy of the IANA root zone.</t>
          </li>
        </ol>
      </section>
      <section anchor="integrating-root-zone-data">
        <name>Integrating and serving root zone data during resolution</name>
        <t>Any mechanism a LocalRoot implementation uses to integrate the IANA
root zone data obtained in <xref target="protocol-steps"/> to perform DNS resolution
tasks is sufficient if it is virtually indistinguishable to the DNS
resolver's clients.  Two example implementation strategies are included
below.</t>
        <section anchor="pre-caching-the-root-zone-data">
          <name>Pre-caching the root zone data</name>
          <t>Once the IANA root zone data has been collected and verified as complete
and correct (<xref target="protocol-steps"/>), a resolver <bcp14>MAY</bcp14> simply update its
cache with the newly obtained records.</t>
        </section>
        <section anchor="running-a-local-authoratative-copy-of-the-root-zone-in-parallel">
          <name>Running a local authoratative copy of the root zone in parallel</name>
          <t><xref target="RFC8806"/> described an implementation mechanism where a copy of the
IANA root zone could be run in an authoratative server running in
parallel to the recursive resolver.  The recursive resolver could then
be configured to simply point at this parallel server for obtaining
data related to the root zone instead of the RSS itself.</t>
          <t>Note that <xref target="RFC8806"/> required that the parallel server be running on
a loopback address, but this specification removes that requirement.
Instead, implementations <bcp14>MAY</bcp14> run the parallel service on any service
address it can legitimately use.  However, such a server <bcp14>MUST NOT</bcp14> use
an address of one of the official root server addresses in the root
zone.</t>
        </section>
      </section>
    </section>
    <section anchor="requirements">
      <name>LocalRoot enabled resolver requirements</name>
      <t>The following requirements are to be followed when creating and/or
deploying a LocalRoot implementation:</t>
      <ul spacing="normal">
        <li>
          <t>A LocalRoot implementation <bcp14>MUST</bcp14> have a configured DNSSEC trust
anchor such as an up-to-date copy of the public part of the Key Signing
Key (KSK) <xref target="RFC4033"/> or used to sign the DNS root or its DS record.</t>
        </li>
        <li>
          <t>A LocalRoot implementation <bcp14>MUST</bcp14> retrieve or be provisioned with a
copy of the entire current root zone (including all DNSSEC-related
records) (see <xref target="protocol-steps"/>).</t>
        </li>
        <li>
          <t>A LocalRoot implementation <bcp14>MUST</bcp14> validate the contents of the root zone using
ZONEMD <xref target="RFC8976"/>, and <bcp14>MUST</bcp14> check the validity of the ZONEMD record
using DNSSEC.</t>
        </li>
        <li>
          <t>A LocalRoot implementation <bcp14>MUST</bcp14> use and serve records from the root
zone without modification.</t>
        </li>
        <li>
          <t>A LocalRoot enabled resolver <bcp14>SHALL</bcp14> return identical answers about
the DNS root, or any other part of the DNS, as if it would if it
were not operating as a LocalRoot enabled resolver.</t>
        </li>
        <li>
          <t>A LocalRoot implementation <bcp14>SHOULD</bcp14> be able to fall back to querying the
authoritative RSS servers whenever the local copy of the root zone
data is unavailable or has been deemed stale (see <xref target="protocol-steps"/>).</t>
        </li>
        <li>
          <t>A LocalRoot implementation <bcp14>MUST</bcp14> have an upper time limit beyond
which if a new copy of the IANA root zone data is not available it
will revert to sending regular DNS queries to the RSS for performing
DNS resolutions on behalf of its clients.  This upper limit value
<bcp14>MAY</bcp14> be configurable and <bcp14>SHOULD</bcp14> default to the root zone's current
SOA expiry value.  Once the LocalRoot implementation's copy of the
IANA root zone has been successfully refreshed and is no longer
considered expired, the resolver may resume LocalRoot enabled
resolution operations.</t>
        </li>
      </ul>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>There are areas of potential concern that are mitigated to some extent
by using this mechanism.</t>
      <section anchor="iana-root-zone-data-security">
        <name>IANA root zone data security</name>
        <t>Secure DNS verification of an obtained copy of the IANA root zone is
possible because of the use of the RSS's ZONEMD <xref target="RFC8976"/> record.
This allows for the entire zone to be fetched and subsequently
verified before being used within recursive resolvers resolvers.
DNSSEC provides the same assurance for individual signed resource
records sourced from the root zone, including of the ZONEMD record
itself.</t>
      </section>
      <section anchor="leakage-of-potentially-sensitive-information">
        <name>Leakage of potentially sensitive information</name>
        <t>One privacy concern with the use of DNS is the leakage of potentially
sensitive information that may be contained in the query name used in
DNS queries. Most root servers (except b.root-servers.net) do not
currently support queries over encrypted transports, resulting in
query names that are visible to on-the-wire eavesdroppers, and may
also be held in any operational logs maintained by root server
operators. Such concerns may be mitigated by Query Name Minimization
<xref target="RFC9156"/>, but common implementations of this mechanism appear to
only minimize query names of four or fewer labels, and the uptake rate
of query name minimization appears to be quite low
<xref target="QNAMEMIN"/>. Furthermore, even with Query Name Minimization, queries
for non-existent names (generated from keyword searches and
mis-configurations) can cause additional privacy leaks.  <xref target="RFC8806"/>
eliminates the need for the resolver to perform specific queries to
any root nameserver, and obviates any such consideration of query name
leakage <xref target="LOCALROOTPRIVACY"/>.</t>
      </section>
      <section anchor="local-resiliency-of-the-dns">
        <name>Local resiliency of the DNS</name>
        <t>Another issue solved with LocalRoot is that when information is always
available locally, usage of it is no longer subject to DDoS attacks
against dependent networks and remote servers.  By having the answers
effectively permanently in cache, no queries to the upstream service
provider (such as root servers) are needed since LocalRoot enabled
resolvers effectively always have a cached set of data that is
considered fresh longer than the typical TTL records within the zone
<xref target="CACHEME"/> <xref target="LOCALROOTPRIVACY"/>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document contains no requests to IANA, although its companion
documents do.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <referencegroup anchor="BCP237" target="https://www.rfc-editor.org/info/bcp237">
          <reference anchor="RFC9364" target="https://www.rfc-editor.org/info/rfc9364">
            <front>
              <title>DNS Security Extensions (DNSSEC)</title>
              <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
              <date month="February" year="2023"/>
              <abstract>
                <t>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>
        </referencegroup>
        <reference anchor="RFC1982">
          <front>
            <title>Serial Number Arithmetic</title>
            <author fullname="R. Elz" initials="R." surname="Elz"/>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <date month="August" year="1996"/>
            <abstract>
              <t>The DNS has long relied upon serial number arithmetic, a concept which has never really been defined, certainly not in an IETF document, though which has been widely understood. This memo supplies the missing definition. It is intended to update RFC1034 and RFC1035. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1982"/>
          <seriesInfo name="DOI" value="10.17487/RFC1982"/>
        </reference>
        <reference anchor="RFC4033">
          <front>
            <title>DNS Security Introduction and Requirements</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>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4033"/>
          <seriesInfo name="DOI" value="10.17487/RFC4033"/>
        </reference>
        <reference anchor="RFC8198">
          <front>
            <title>Aggressive Use of DNSSEC-Validated Cache</title>
            <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
            <author fullname="A. Kato" initials="A." surname="Kato"/>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>The DNS relies upon caching to scale; however, the cache lookup generally requires an exact match. This document specifies the use of NSEC/NSEC3 resource records to allow DNSSEC-validating resolvers to generate negative answers within a range and positive answers from wildcards. This increases performance, decreases latency, decreases resource utilization on both authoritative and recursive servers, and increases privacy. Also, it may help increase resilience to certain DoS attacks in some circumstances.</t>
              <t>This document updates RFC 4035 by allowing validating resolvers to generate negative answers based upon NSEC/NSEC3 records and positive answers in the presence of wildcards.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8198"/>
          <seriesInfo name="DOI" value="10.17487/RFC8198"/>
        </reference>
        <reference anchor="RFC8499">
          <front>
            <title>DNS Terminology</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="A. Sullivan" initials="A." surname="Sullivan"/>
            <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>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 sometimes 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>This document obsoletes RFC 7719 and updates RFC 2308.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8499"/>
          <seriesInfo name="DOI" value="10.17487/RFC8499"/>
        </reference>
        <reference anchor="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>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>This document obsoletes RFC 7706.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8806"/>
          <seriesInfo name="DOI" value="10.17487/RFC8806"/>
        </reference>
        <reference anchor="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>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>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>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="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>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="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>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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2826">
          <front>
            <title>IAB Technical Comment on the Unique DNS Root</title>
            <author>
              <organization abbrev="IAB">Internet Architecture Board</organization>
            </author>
            <date month="May" year="2000"/>
            <abstract>
              <t>This document discusses the existence of a globally unique public name space in the Internet called the DNS (Domain Name System). This name space is a hierarchical name space derived from a single, globally unique root. It is a technical constraint inherent in the design of the DNS. One root must be supported by a set of coordinated root servers administered by a unique naming authority. It is not technically feasible for there to be more than one root in the public DNS. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2826"/>
          <seriesInfo name="DOI" value="10.17487/RFC2826"/>
        </reference>
        <reference anchor="RFC5936">
          <front>
            <title>DNS Zone Transfer Protocol (AXFR)</title>
            <author fullname="E. Lewis" initials="E." surname="Lewis"/>
            <author fullname="A. Hoenes" initials="A." role="editor" surname="Hoenes"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The standard means within the Domain Name System protocol for maintaining coherence among a zone's authoritative name servers consists of three mechanisms. Authoritative Transfer (AXFR) is one of the mechanisms and is defined in RFC 1034 and RFC 1035.</t>
              <t>The definition of AXFR has proven insufficient in detail, thereby forcing implementations intended to be compliant to make assumptions, impeding interoperability. Yet today we have a satisfactory set of implementations that do interoperate. This document is a new definition of AXFR -- new in the sense that it records an accurate definition of an interoperable AXFR mechanism. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5936"/>
          <seriesInfo name="DOI" value="10.17487/RFC5936"/>
        </reference>
        <reference anchor="RFC7766">
          <front>
            <title>DNS Transport over TCP - Implementation Requirements</title>
            <author fullname="J. Dickinson" initials="J." surname="Dickinson"/>
            <author fullname="S. Dickinson" initials="S." surname="Dickinson"/>
            <author fullname="R. Bellis" initials="R." surname="Bellis"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <author fullname="D. Wessels" initials="D." surname="Wessels"/>
            <date month="March" year="2016"/>
            <abstract>
              <t>This document specifies the requirement for support of TCP as a transport protocol for DNS implementations and provides guidelines towards DNS-over-TCP performance on par with that of DNS-over-UDP. This document obsoletes RFC 5966 and therefore updates RFC 1035 and RFC 1123.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7766"/>
          <seriesInfo name="DOI" value="10.17487/RFC7766"/>
        </reference>
        <reference anchor="RFC9156">
          <front>
            <title>DNS Query Name Minimisation to Improve Privacy</title>
            <author fullname="S. Bortzmeyer" initials="S." surname="Bortzmeyer"/>
            <author fullname="R. Dolmans" initials="R." surname="Dolmans"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="November" year="2021"/>
            <abstract>
              <t>This document describes a technique called "QNAME minimisation" to improve DNS privacy, where the DNS resolver no longer always sends the full original QNAME and original QTYPE to the upstream name server. This document obsoletes RFC 7816.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9156"/>
          <seriesInfo name="DOI" value="10.17487/RFC9156"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="BIND-MIRROR" target="https://bind9.readthedocs.io/en/stable/reference.html#namedconf-statement-type%20mirror">
          <front>
            <title>BIND 9 Mirror Zones</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="UNBOUND-AUTH-ZONE" target="https://nlnetlabs.nl/documentation/unbound">
          <front>
            <title>Unbound Auth Zone</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="KNOT-PREFILL" target="https://knot-resolver.readthedocs.io/en/stable/modules-prefill.html">
          <front>
            <title>Knot Resolver Prefill</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="QNAMEMIN" target="https://www.potaroo.net/ispcol/2019-08/qmin.html">
          <front>
            <title>DNS Query Privacy</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="LOCALROOTPRIVACY" target="http://ant.isi.edu/~hardaker/papers/2018-02-ndss-analyzing-root-privacy.pdf">
          <front>
            <title>Analyzing and mitigating privacy with the DNS root service</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CACHEME" target="https://ant.isi.edu/~johnh/PAPERS/Moura19b.pdf">
          <front>
            <title>Cache Me If You Can: Effects of DNS Time-to-Live</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="draft-hardaker-dnsop-dns-xfr-scheme" target="https://datatracker.ietf.org/doc/draft-hardaker-dnsop-dns-xfr-scheme/">
          <front>
            <title>The DNS XFR URI Schemes</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="draft-hardaker-dnsop-root-zone-pub-list-guidelines" target="https://datatracker.ietf.org/doc/draft-hardaker-dnsop-root-zone-pub-list-guidelines">
          <front>
            <title>Guidelines for IANA DNS Root Zone Publication List Providers</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="draft-hardaker-dnsop-iana-root-zone-publication-points" target="https://datatracker.ietf.org/doc/draft-hardaker-dnsop-iana-root-zone-publication-points">
          <front>
            <title>A format for publishing a list of sources of IANA root zone data</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NOROOTS" target="https://www.icir.org/mallman/pubs/All19b/All19b.pdf">
          <front>
            <title>On Eliminating Root Nameservers from the DNS</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DNEROOTNAMES" target="https://rssac002.root-servers.org/rcode_0_v_3.html">
          <front>
            <title>NoError vs NxDomain by-week</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RSSAC055" target="https://itp.cdn.icann.org/en/files/root-server-system-advisory-committee-rssac-publications/rssac-055-07jul21-en.pdf">
          <front>
            <title>Principles Guiding the Operation of the Public Root Server System</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 466?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors have discussed this idea with many people, and have likely
forgotten to acknowledge and credit many of them. If we discussed this with
you, and you are not listed, please please let us know and we'll add you.</t>
      <t>This work has been founded upon previous documents.  Most importantly,
<xref target="RFC8806"/>, authored by Warren Kumari and Paul Hoffman, and "On
Eliminating Root Nameservers from the DNS" <xref target="NOROOTS"/> by Mark Allman.</t>
      <t>The authors would like to thank Joe Abley, Vint Cerf, John Crain,
Marco Davids, Peter Koch, Matt Larson, Florian Obser, Swapneel
Patnekar, Puneet Sood, Robert Story, Ondrej Sury, Suzanne Woolf, and
many many others for their comments, suggestions and input to both
past and current versions of this document.</t>
      <t>In addition, one of the authors would like to once again thank the
bands "Infected Mushroom", "Kraftwerk", and "deadmau5" for providing
the soundtrack to which this was written.  Another author recently
discovered the band "Trampled by Turtles" while working on this
document and is submitting it as a nomination for the
best-band-name-ever award.</t>
    </section>
    <section numbered="false" anchor="history-of-the-localroot-concept">
      <name>History of the LocalRoot concept</name>
      <t>Note: DNSOP needs to discuss whether to publish this as a BCP or as a
proposed standard.  Currently this is listed as STD track based on a
number of preliminary conversations the authors had with both
operators and IETF participants.</t>
      <t><xref target="RFC8806"/> is an Informational document that describes a mechanism
that resolver operators can use to improve the performance,
reliability, and privacy of their resolvers.  This document concludes
the concept of <xref target="RFC8806"/> was a success, but that actual
implementation of it has varied according to the needs of various code
bases and operational environments.  Thus, this document houses many
of the original concepts of <xref target="RFC8806"/> but is largely a complete
rewrite to match modern expectations based on recent implementation
and deployment experiences.</t>
      <t>This document differs in a number of critical ways (TBD: this list is incomplete):</t>
      <ol spacing="normal" type="1"><li>
          <t>promotes the behavior in <xref target="RFC8806"/> to be either a Proposed
standard or a Best Current Practice, depending on what the WG
decides.</t>
        </li>
        <li>
          <t>RECOMMENDS that resolver implementations provide a simple configuration
option to enable or disable functionality, and</t>
        </li>
        <li>
          <t>RECOMMENDS that resolver implementations enable this behavior by default, and</t>
        </li>
        <li>
          <t>REQUIRES that <xref target="RFC8976"/> be used to validate the IANA root zone information
before loading it.</t>
        </li>
        <li>
          <t>Adds a mechanism for priming the list of places for fetching root zone data.</t>
        </li>
        <li>
          <t>Adds protocol steps for ensuring resolution stability and resiliency.</t>
        </li>
      </ol>
      <section numbered="false" anchor="an-important-change-from-rfc8806">
        <name>An important change from RFC8806</name>
        <t><xref target="RFC8806"/> Section 2 (Requirements) states that:</t>
        <ul empty="true">
          <li>
            <t>The system <bcp14>MUST</bcp14> be able to run an authoritative service for the
root zone on the same host.  The authoritative root service <bcp14>MUST</bcp14>
only respond to queries from the same host.  One way to assure not
responding to queries from other hosts is to run an authoritative
server for the root that responds only on one of the loopback
addresses (that is, an address in the range 127/8 for IPv4 or ::1
in IPv6).  Another method is to have the resolver software also
act as an authoritative server for the root zone, but only for
answering queries from itself.</t>
          </li>
        </ul>
        <t>This document relaxes this requirement. Resolver implementations can
achieve the desired behavior of directly serving the contents of the
root zone via multiple implementation choices, beyond those listed in
<xref target="RFC8806"/>.  This can include the implementation guidance described
in RFC8806, but this document allows for implementations to select any
mechanism for fetching and re-distributing the contents of the root
zone on their resolver service addresses as long as the other
requirements specified in this document are still followed (see
<xref target="requirements"/>).</t>
        <t>For example, an implementation can simply "prefill" the resolver's
cache with the current contents of the root zone. As the resulting
behavior is (essentially) indistinguishable from the mechanism defined
in RFC8806, this is viewed as being an acceptable implementation
decision.</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61863IbObLmfzxFrhwblidIyvKtbcbZPk1LdlvTuo0oT0/P
xsYEWAWSaFUB1QCKNFuh8yz7LPtkG5kJ1IWk1L1nzy9RZBWQAPL6ZSaGw6EI
OhRqDAfXtqoLGbRZgFPeFivlPKx1WEJYKnDWBvjdGnUg5Gzm1GoMB+c2k8WN
teFAZDKohXWbMfiQC5HbzMhSjSF3ch6G67u6lE4Pc+NtNSzwNRxvOMuqYSGD
8kH4elZq77U1YVOpMZx9uv0sMmu8Mr72YwiuVmI1htdCOiXHcHBVKSeDtsaD
NDlcSCMXqlQmHIi1dXcLZ+tqDAentpTawKUsFUw3PqgS2jcPxJ3arK3LxwKG
cHo5jX+mn07wEy4Xsjrg51wVakFv4X9OzZVzshB1lSP9Y7j5fPL+/ct3YqVM
rcYC4E8SAMDrPfjZujvc+x/xPfy+lLoYwwHt2Q9ahfnIugX+IF22HMPBMoTK
j4+O8Dn8Sq/UKD12hF8czZxde3VEIxzhmwsdlvWs8y5/McpseRTP6OgPTwwH
4kPrDBSfH8UBtf3jcf74idEylMWBELIOS+twU4cCAGBeFwWz18/SOWXgJxqC
frNuIY3+nbZ3DD9auyjUAM5MNqKfFe/qmt77IRJtVNg3tvLwRbpc3im3Z+iv
05Ojs+kZMd9j0+Bx/LCMY/jePNr4Mfx1BDdK5/QFT/pXXbZfWbcYw83t5wso
ioq+8cEpFcYwDTAxuVNrD19s7RX9mOmwGcPr96/giy4KbRbBGrixMh/Aj4X0
C7uGaWZDIQ0Pn9lcjeHHt8fw5uN5/KY2AYX460/dZfyqyx/cPDt++fotskp/
DT+O4EvtA8pFb/t+VHY+7/7U377J9eXZSXeShV7+ICujs7hN7WLfwYl1uSq0
hGnorHRq67CEj077mTSqs6S/nZ/Cm+OXx/01TWofnCy0FMJYV8qgVySoH0+u
X73+Dj/dfD45/vD+1RjgGUyvJlDKsOSv37x8/Zq+TsqB5P34w/v42vs3Hz6k
j+9fvksfP3z3biyENvPufDefT169f/WOhjubXE5gUdiZLKA2+rda4QykbPnJ
tx9ev0sTwz9RH906afycWPLm88l3371rf6efKusC2JVycHtyzQ99OH7LD/3t
cnLxCS600aX2UZnxA8cv6YEvt7fXMFWlNEFnUbGqsLS5F7hTZ5enw4uzm5ur
mzHtbTId+AN8gAvtnHVEJmk2gCDdAo8wqYmZNvmHkVMyD0uV28yjplDmyAc5
K9QRqVVlMkWS/wwZKc+smQ99kIGU+xC15X9/9bKkqQTA18uPV18vT4eTr7df
hv+8uvzUp+yrmdna5DBBVvknma99dJnCqFDImR+Z4ii3WY1z0QYd1TyCAPjp
8up2eH3z6fPZ+Xl/lp+MDXATjSZcOzXXRbF/pjtjwzDZ18d3orR5XSg/rHgs
2g8BfIAXZ5e96fHo/1Yrt4Frp1cy2+ydeL1ejyobpLMWJexI+yqzxdGrl8cf
hi/fH/1WapNmOb86mZzfXF3dXt+c/X1y8ktvtomRxeZ3tFTIHaUOesFOQ8WT
ty5D4mTwyq10pnbIGh8dSRNG2uuRyuuj/0ia8qiSlXIeaXs/fPlqaHLvhzLN
OyTzEGcbVflcAJxMTr58utg6+xOZLRVcKDibwy+2hhNpxvBpPldZ8GDnLDK6
VMNgh+d69Qhr9Cj81S7N8uh6cv3pZnp0YWsnjz/MIg1sztIaoj3LjR9+m7uh
z5aqVD36buMW/ePzDXy9OYMpPeL3EpHLIIOT2Z1yrY3PbXb0JyY9eow22kf0
cYZVPRsW2ofhotaoaI3yPVJ/bL6GuXWstZB09P1YK13Xs0JnJDFwrn2Aa2dX
Olfuv2I9TxL62Oq0NLL/ZiJwWFltQn+FE2AdTeujZ/2SeBxwOuQWb2uXKWIc
Wn/jEAMu5r9glX9IsAC4vEKxnPZIvzLwqdClNiyGdCbobaLUoQs/d7ZM8vio
ZtCZdkReKYuilOaoqmf+aFIUxx9m8U9k89PLT0gDKqI+HZf2E6n/lYfLb9Hr
nW2Ga6Xu9k7rvJfZy5evRrTmSC3R4NCM/+vlv1b/ep1U0s10Ojl5+fZtb8Zr
p02mq0J54lBcPa6zca/xrPALZk7emSnNEz3xvXTpUI2y3Ix0Jo0hepQ5mutC
+aMOpUNPIwxlvtLeus0ws2WpQ1BqSAvrnp/ntQ5fvn07fPndr3Xx6nioDO2n
GA6HIGfomWRBCFKZKqud1yvVhGFgaUXWeTBK5RAsVCxetLyZ8q2Oraz3elYo
YuSwVNpB7ZXzA1gvdbYEbbKizpWPI7AejxNoa2RRbISzs9oH0u9JqVfOBpUR
g8WZRgAnS1kUyiyUR5LCUnkFuaoKu0HzKRZWFj5NCLmez3VWF2GDx7JQIUWa
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

-->

</rfc>
