<?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-02" category="std" consensus="true" submissionType="IETF" updates="RFC8806" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.1 -->
  <front>
    <title abbrev="LocalRoot">Populating resolvers with the root zone</title>
    <seriesInfo name="Internet-Draft" value="draft-wkumari-dnsop-localroot-bcp-02"/>
    <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="17"/>
    <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-publication-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-publication-list-guidelines" target="https://raw.githubusercontent.com/hardaker/draft-hardaker-dnsop-root-zone-publication-list-guidelines/refs/heads/main/draft-hardaker-dnsop-root-zone-publication-list-guidelines.md">
          <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://github.com/hardaker/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:
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
BwZtuefE6v8DM2P1ketfAAA=

-->

</rfc>
