<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 4.0.6) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC8198 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8198.xml">
<!ENTITY RFC8615 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8615.xml">
<!ENTITY RFC8806 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8806.xml">
<!ENTITY RFC8976 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8976.xml">
<!ENTITY RFC9077 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9077.xml">
<!ENTITY RFC9156 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9156.xml">
<!ENTITY RFC9364 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9364.xml">
<!ENTITY RFC9499 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9499.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC5936 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5936.xml">
<!ENTITY RFC9103 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9103.xml">
]>


<rfc ipr="trust200902" docName="draft-hoffman-rootcache-02" category="std" consensus="true" obsoletes="8806">
  <front>
    <title abbrev="RootCache">RootCache: Filling Resolver Caches with Root Zone Records</title>

    <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
      <organization>ICANN</organization>
      <address>
        <email>paul.hoffman@icann.org</email>
      </address>
    </author>

    <date year="2026" month="September" day="15"/>

    
    
    

    <abstract>


<?line 30?>

<t>Some DNS recursive resolver operators want to prevent snooping by third parties of requests sent to DNS root servers.
Resolvers can reduce the number of queries sent to root server, and thus prevent observation of requests,
by caching a copy of the full root zone.
This document shows how a resolver can securely receive the full root zone and put it into the resolver's cache.</t>

<t>This document obsoletes RFC 8806.</t>



    </abstract>



  </front>

  <middle>


<?line 39?>

<section anchor="introduction"><name>Introduction</name>

<t>This document describes RootCache, a method for a resolver to quickly and securely fill its cache with the entire root zone.
RootCache is an enhancement to resolver operations, but does not change the DNS protocol used in those resolvers at all.</t>

<t>[[ Copied from RFC 8806 with minor clarifications. ]]</t>

<t>DNS recursive resolvers have to provide answers 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 root server of the global DNS to get the information for that TLD or to find out that the TLD does not exist.
Research shows that the vast majority of queries going to the root are for names that do not exist in the root zone.</t>

<t>Many of the queries from recursive resolvers to root servers get answers that are referrals to other servers.
Malicious third parties might be able to observe that traffic on the network between the recursive resolver and root servers.</t>

<t>A different approach to solving some of the problems discussed in this document is described as a standalone solution in <xref target="RFC8198"/> and <xref target="RFC9077"/>.
This approach is included as part of RootCache.</t>

<t>Readers are expected to be familiar with <xref target="RFC9499"/>.</t>

<section anchor="use-case"><name>RootCache Use Case</name>

<t>[[ Copied from RFC 8806, but with changes to the goals. ]]</t>

<t>The primary goals of RootCache are to provide more reliable answers for queries to the root zone.
Using RootCache will probably have little effect on getting faster responses to the stub resolver for good queries on TLDs, because the TTL for most TLDs is usually long-lived (on the order of a day or two) and is thus usually already in the cache of the recursive resolver; the same is true for the TTL for negative answers from the root servers.</t>

</section>
<section anchor="design"><name>RootCache Design</name>

<t>RootCache is a method for the operator of a recursive resolver to have a complete root zone in their cache and to prevent queries going to the root servers.
This in turn prevents outsiders from seeing what queries the resolver's clients have made because those queries are never sent to the root servers.</t>

<t>The basic idea is to create an up-to-date set of root zone answers in the cache of the recursive server, if possible.
The recursive resolver validates all contents of the root zone before putting them in its cache, just as it would validate all responses from a remote root server.
It only puts the root zone records in the cache if doing so would not force out other records.</t>

<t>RootCache adds records to a resolver's cache, but does not change the way the cache works.
For example, if the operator stops running RootCache (either intentionally or accidentally), the cache acts exactly the same.</t>

</section>
<section anchor="differences-between-this-document-and-rfc-8806"><name>Differences Between This Document and RFC 8806</name>

<t>The core design of <xref target="RFC8806"/> was that resolvers would locally act as root servers.
That design has many failure cases that need to be dealt with in by resolver software.
The core design of RootCache is that resolvers will fill their cache with the contents of the root zone so that queries do not need to go to root servers
unless the records in their cache time out.
Failures to fill the cache do not cause any failure cases for the resolver as a whole.</t>

<t><xref target="RFC8806"/> focused on getting the root zone by AXFR requests to root server operators.
RootCache expands that by giving a standard way to get the root zone over HTTPS.</t>

<t>This document assumes that the vast majority of resolver operators will use the default configurations that come with their resolver software.</t>

<t>This document removes discussion of "faster responses", but will add it back in later versions if there is research to show that faster responses are measurably better for resolver operators or their users.</t>

</section>
<section anchor="bcp-14-language"><name>BCP 14 Language</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>
</section>
<section anchor="rootcache-requirements-and-operation"><name>RootCache Requirements and Operation</name>

<t>[[ The following paragraph and the first three bullets are copied from RFC 8806. ]]</t>

<t>In order to implement the RootCache mechanism described in this document:</t>

<t><list style="symbols">
  <t>The system <bcp14>MUST</bcp14> be able to validate every signed record in a zone with DNSSEC <xref target="RFC9364"/>.</t>
  <t>The system <bcp14>MUST</bcp14> have an up-to-date copy of the public part of the Key Signing Key (KSK) <xref target="RFC9364"/> used to sign the DNS root.</t>
  <t>The system <bcp14>MUST</bcp14> be able to retrieve a copy of the entire root zone (including all DNSSEC-related records).</t>
  <t>The system <bcp14>MUST</bcp14> be able to verify the contents of the root zone data using the ZONEMD record <xref target="RFC8976"/> from the root zone.</t>
</list></t>

</section>
<section anchor="the-system-should-implement-aggressive-use-of-the-dnssec-validated-cache-as-described-in-rfc8198-and-rfc9077"><name>The system SHOULD implement aggressive use of the DNSSEC-validated cache as described in <xref target="RFC8198"/> and <xref target="RFC9077"/>.</name>

<t>In order to enhance its cache with RootCache, a resolver performs the following steps in order.</t>

<section anchor="retrieval"><name>Retrieval</name>

<t>The resolver periodically retrieves the entire root zone.
It can do this from any source; see <xref target="root-sources"/> for information on where the zone might be found and <xref target="refresh"/> for considerations on how often to refresh.</t>

</section>
<section anchor="verification"><name>Verification</name>

<t>The contents of the retrieved root zone <bcp14>MUST</bcp14> be verified for completeness by checking it against the ZONEMD record in the zone, using the methods described in <xref target="RFC8976"/>.
If the ZONEMD verification fails, the retrieved zone <bcp14>MUST</bcp14> be abandoned; the resolver <bcp14>SHOULD</bcp14> then try other configured sources.</t>

</section>
<section anchor="validation"><name>Validation</name>

<t>After validating the contents of that root zone, every record in the root zone <bcp14>MUST</bcp14> be validated using DNSSEC <xref target="RFC9364"/>.
If the DNSSEC validation fails, the retrieved zone <bcp14>MUST</bcp14> be abandoned; the resolver <bcp14>SHOULD</bcp14> then try other configured sources.</t>

<t>Performing this step is <bcp14>REQUIRED</bcp14> even for resolvers that are not configured to do DNSSEC validation for queries from clients.</t>

</section>
<section anchor="comparison"><name>Comparison</name>

<t>The resolver <bcp14>MUST</bcp14> compare the serial number in the SOA record in the retrieved root zone against the serial number in the SOA record for the root zone in its cache.
If the serial number in the retrieved record is higher, or there is no SOA record for the root zone in the cache, the records of the retrieved root zone can be added to the resolver's cache, replacing any records with the same name/class/type triple that are already in the cache or adding new records.</t>

<t>However, if adding these newly-retrieved records to the cache would force other records out of the cache, the resolver <bcp14>SHOULD NOT</bcp14> add the new root records.
Adding the new root records would cause one set of queries to not be sent on the wire, but would cause a different set of records to be forced out early and thus might expose a different set of queries on the wire.
Implementations <bcp14>MAY</bcp14> choose to simply replace current root-level records in the cache with the ones received, or they <bcp14>MAY</bcp14> simply ignore the new records.</t>

</section>
<section anchor="aggressive"><name>Reducing Queries to the Root Servers Even Further</name>

<t>Resolvers implementing RootCache <bcp14>SHOULD</bcp14> also implement aggressive use of the DNSSEC-validated cache as described in <xref target="RFC8198"/> and <xref target="RFC9077"/>.
This process, often called "aggressive NSEC", will prevent queries that would get negative replies from being sent to the root server system.</t>

</section>
<section anchor="minimizing-queries"><name>Minimizing Queries</name>

<t>Some entries of a cache might be flushed if the memory allocated to the cache becomes full.
Thus, a cache might flush entries for the root zone, depending on the implmenetation of the cache.
The use of qname minimization <xref target="RFC9156"/> becomes important if the resolver queries a root server due to flushed root entries.
Thus, resolvers <bcp14>SHOULD</bcp14> implement qname minimization, at least for the root zone.</t>

</section>
</section>
<section anchor="root-sources"><name>Sources of the Root Zone</name>

<t>[[ Loosely copied from RFC 8806, with additions. ]]</t>

<t>The root zone can be retrieved from anywhere as long as it comes with all the DNSSEC records needed for validation.</t>

<t>Currently, a resolver can get the root zone from ICANN by zone transfer AXFR (see <xref target="RFC5936"/>) over TCP from DNS servers at xfr.lax.dns.icann.org and xfr.cjr.dns.icann.org.</t>

<t>Currently, there is <eref target="https://www.iana.org/domains/root/files">a description of how the root zone file can be obtained from IANA</eref>.</t>

<t>Currently, the root can also be retrieved by AXFR over TCP from many of the root server operators at their service addresses.
It can also be retrieved from the <eref target="https://localroot.isi.edu/">LocalRoot service</eref>.</t>

<t>It is crucial to note that none of the above services are guaranteed to be available.
It is possible that ICANN or some of the root server operators will turn off the AXFR capability on the DNS servers.
Using AXFR over TCP to addresses that are likely to be anycast (as the ones above are) may conceivably have transfer problems due to anycast, but current practice shows that to be unlikely.</t>

<t><xref target="RFC9103"/> describes how to do zone transfers over TLS in order to improve confidentiality.
Confidentiality is not at all a requirement for the root zone, so this method is not applicable to RootCache.</t>

<section anchor="root-zone-sources-over-https"><name>Root Zone Sources over HTTPS</name>

<t>[[ Readers familiar with "/.well-known/" will want to review this carefully. The wording here is quite likely to change ]]</t>

<t>Since the publication of <xref target="RFC8806"/>, there has been an increased desire to be able to retrieve the root zone over HTTPS.
This section shows a method for operators of web services that want to publish the root zone to make the zone easily findable, using the "/.well-known/" URL path prefix (<xref target="RFC8615"/>).</t>

<t>Web serververs that offer to serve the root zone <bcp14>SHOULD</bcp14> do so at an HTTPS URL whose path component is exactly "/.well-known/dns-root-zone/".
Thus, a client who wants to get the root zone from the HTTPS web server at example.com would use the URL "https://example.com/.well-known/dns-root-zone/".</t>

</section>
<section anchor="configuration-of-sources-for-rootcache"><name>Configuration of Sources for RootCache</name>

<t>It seems likely that the vast majority of resolver operators will use the default configurations that come with their resolver software.
Based on that, this document assumes that the list of sources for root zone information will be at least initially collected by the resolver software implementers.
Those implementers are well-positioned to find and test sources, and to update their software when the list of good sources changes.</t>

<t>Resolver software that implements RootCache <bcp14>SHOULD</bcp14> come with a list of at least five sources of the root zone that are known at the time that the software is released.
It <bcp14>SHOULD</bcp14> also allow the resolver operator to change the list of sources for the root zone.</t>

<t>It seems likely that some people will create and maintain lists of sources for RootCache zones.
This is not a requirement for RootCache to be successful, but there might be a population of resolver operators who want to use a wider set of sources than what their resolver developer gives them in any particular software release.</t>

</section>
</section>
<section anchor="refresh"><name>Refresh Period</name>

<t>[[ Discussion in the DNSOP WG in January 2026 indicates that determining this value will be contentious, at least initially.
This is really just a placeholder, and it is likely that this section will have multiple orthogonal methods. ]]</t>

<t>The resolver <bcp14>SHOULD</bcp14> get a new copy of the root zone from any of its configured sources approximately twice a day.
This value is based on the TTLs of the records in the root zone in early 2026.
These TTLs have been the same for over a decade, but IANA could change in the future.
Any such change in the root zone could change the values given here.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="registration-in-the-the-well-known-uris-registry"><name>Registration in the the "Well-Known URIs" Registry</name>

<t>(This template is based on <xref target="RFC8615"/>.)</t>

<t>URI suffix:  dns-root-zone</t>

<t>Change controller:  IETF</t>

<t>Specification document(s):  This document</t>

<t>Status:  permanent</t>

<t>Related information: N/A</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This document assumes that all sources of the root zone serve it unaltered, regardless of the protocol used to retrieve it.
Further, it assumes that all such sources make a best-faith effort to serve quite fresh versions, and that those sources will stop service if they are unable to get fresh versions themselves.</t>

<t>If any of the <bcp14>MUST</bcp14>-level requirements in <xref target="verification"/>, <xref target="validation"/>, or <xref target="comparison"/> are not followed, a resolver can be tricked into serving bad data for records from the root zone.</t>

<t>A resolver that does not implement aggressive NSEC as described in <xref target="aggressive"/> will leak negative queries to the root server system.</t>

<t>[[ More to come ]]</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

&RFC8198;
&RFC8615;
&RFC8806;
&RFC8976;
&RFC9077;
&RFC9156;
&RFC9364;
&RFC9499;
&RFC2119;
&RFC8174;


    </references>

    <references title='Informative References' anchor="sec-informative-references">

&RFC5936;
&RFC9103;


    </references>

</references>


<?line 248?>

<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The discussions in the DNSOP Working Group led to many ideas here about improvements to <xref target="RFC8806"/>.
Thanks go to Warren Kumari, Wes Hardaker, Jim Reid, and Geoff Huston for authoring
and getting discussion going with a draft on "Populating resolvers with the root zone".
Particular thanks go to Warren Kumari for co-authoring <xref target="RFC8806"/> (and RFC 7706 that preceded it).</t>

</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

