<?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.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wkumari-dnsop-localroot-bcp-01" category="bcp" consensus="true" submissionType="IETF" updates="RFC8806" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title>Making LocalRoot a Best Current Practice</title>
    <seriesInfo name="Internet-Draft" value="draft-wkumari-dnsop-localroot-bcp-01"/>
    <author fullname="Warren Kumari">
      <organization>Google, Inc.</organization>
      <address>
        <email>warren@kumari.net</email>
      </address>
    </author>
    <author fullname="Wes Hardaker">
      <organization>USC/ISI</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>
    <author fullname="David Conrad">
      <organization>Layer 9 Technologies, LLC.</organization>
      <address>
        <email>david.conrad@layer9.tech</email>
      </address>
    </author>
    <date year="2025" month="October" day="01"/>
    <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 88?>

<t>RFC 8806 (often called "LocalRoot") defines a mechanism whereby a recursive
resolver can fetch the contents of an entire zone and place this information
into the resolver's cache.</t>
      <t>This has several benefits, including increased reliability, increased
performance, improved privacy, and decreased or mitigation of the effect of
some types of DoS attacks.</t>
      <t>While the majority of DNS resolver implementations natively support RFC 8806,
it remains tricky to configure and maintain. This document recommends that DNS
resolver software simplify this configuration, and further suggests that
configuration becomes the default.</t>
      <t>This document updates Section 2 of RFC8806 by relaxing the requirement that
implementations <bcp14>MUST</bcp14> run an authoritative service.</t>
      <t>/* Ed (WK): Open questions / ToDo / Notes (to be removed before publication):</t>
      <ol spacing="normal" type="1"><li>
          <t>I started writing this as rfc8806-bis, but as I did so I realized that it is
likely better as a standalone document.</t>
        </li>
        <li>
          <t>This document recommends ("Operation Considerations") using HTTP(S) for
fetching the zone. We still need to add text to cover priming and discuss the
bootstrapping issue. In addition, we need to add text about loadbalancing and
fetching from multiple sources. Much of the premise behind RFC8806 is that it
doesn't matter where you fetch the zone from, as long as you validate it, and
use zone checksums <xref target="RFC8976"/>.
*/</t>
        </li>
      </ol>
    </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 120?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC8806"/> provides "a method for the operator of a recursive resolver to have
a complete root zone locally, and to hide queries for the root zone from
outsiders.  The basic idea is to create an up-to-date root zone service on the
same host as the recursive server, and use that service when the recursive
resolver looks up root information."</t>
      <t>While <xref target="RFC8806"/> behavior can be achieved by "manually" configuring software
that acts as a secondary server for the root-zone (see <xref target="RFC8806"/> Section B.1.
Example Configuration: BIND 9.12 and Section B.2 Example Configuration: Unbound
1.8), most resolver implementations now support simpler, and more robust,
configuration mechanisms to enable this support. For example, ISC BIND 9.14 and
above supports "mirror" zones, Unbound 1.9 supports "auth-zone", and Knot
Resolver uses its "prefill" module to load the root zone information. See
Appendix A for configuration details. In addition to providing simpler
configuration of the LocalRoot mechanism, these mechanisms support "falling
back" to querying the root-servers directly if they are unable to fetch the
entire root zone.</t>
    </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>
    <section anchor="making-rfc8806-behavior-be-a-best-current-practice">
      <name>Making RFC8806 behavior be a Best Current Practice</name>
      <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.</t>
      <t>This document:</t>
      <ol spacing="normal" type="1"><li>
          <t>promotes the behavior in <xref target="RFC8806"/> to be a Best Current Practice.</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 zone information
before loading it.</t>
        </li>
      </ol>
    </section>
    <section anchor="changes-from-rfc8806">
      <name>Changes 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. Some resolver implementations achieve
the behavior described in RFC8806 by fetching the zone information and
"prefilling" their cache with this information. 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 anchor="applicability">
      <name>Applicability</name>
      <t>This behavior should apply to all general-purpose recursive resolvers used on
the public Internet.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>In order for the <xref target="RFC8806"/> mechanism to be effective, a resolver must be
able to fetch the contents of the entire root zone. This is currently usually
performed through AXFR (<xref target="RFC5936"/>). In order for AXFR to work, the resolver
must be able to use TCP (which is already required by <xref target="RFC7766"/>).</t>
      <t>Resolvers <bcp14>MAY</bcp14> allow fetching this information via HTTPS. Where possible, HTTPS
should be preferred as it will allow for compression as well as the possibility
of using low-cost, well-distributed CDNs to distribute the zone files.</t>
      <t>/* ED (WH): I don't think we can get away without describing how/where to pull
this information from at some point.  The ICANN https servers are one source,
or should resolver code bases use their own defined CDNs?</t>
      <t>(WK): 100% agree. I personally think that this should be hosted on multiple
CDNs, and that expecting a single server or service to always be available
would be a massive mistake. But, I also don't think that resolvers should pull
from their own CDNs
- I don't want Acme Anvil and Resolvers (or their CDN!)  go out of business,
and have Acme Resolvers fail. This is (I believe) a sufficiently small amount
of data that hosting it on multiple CDNs should be trivial.... but, I also
believe that this topic should be discussed with the WG. */</t>
      <t>Resolvers <bcp14>MUST</bcp14> validate the contents of the zone before using it, including
validating the ZONEMD record, using the mechanism in <xref target="RFC8976"/>.</t>
      <t>/* Ed (WK): We might want to add some more discussions around failure handling,
but, 1:  <xref target="RFC8806"/> already covers much of this and 2: "don't teach your
grandmother to suck eggs" - implementations already handle this, so let's not
try to overspecify or over-constrain what they do. */</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>
      <t>The issue of 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>
      <t>The final issue solved with LocalRoot is that when information is
always available locally, usage of it is no longer subject to DDoS
attacks against the remote servers.  By having the answers effectively
permanently in cache, no queries to the upstream service provider
(such as root servers) are needed since <xref target="RFC8806"/> 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 anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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>
        <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="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="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>
      </references>
    </references>
    <?line 276?>

<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>The authors would like to thank Joe Abley, Vint Cerf, John Crain, Marco Davids,
Paul Hoffman, 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.</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.</t>
    </section>
    <section numbered="false" anchor="appendix-a-example-configurations">
      <name>Appendix A: Example Configurations</name>
      <t>These examples are provided to show how the LocalRoot mechanism can be
configured in various resolver implementations. They are not intended to be
exhaustive, and may not work with all versions of the software.</t>
      <t>/* Ed (WK): These examples are just to get started. We would appreciate
contributions from the resolver operators.</t>
      <t>Yes, we are fully aware of the circular dependency of trying to resolve e.g
www.internic.net when bootstrapping. More discussion on serving the root zone
over HTTP by IP will be added later. */</t>
      <section numbered="false" anchor="isc-bind-914-and-above">
        <name>ISC BIND 9.14 and above</name>
        <t>See the BIND documentation for <eref target="https://bind9.readthedocs.io/en/stable/reference.html#namedconf-statement-type%20mirror">mirror
zones</eref>.</t>
        <t>Example configuration using a "mirror" zone:</t>
        <artwork><![CDATA[
zone "." {
    type mirror;
};
]]></artwork>
      </section>
      <section numbered="false" anchor="knot-resolver">
        <name>Knot Resolver</name>
        <t>See the Knot Resolver <eref target="https://knot-resolver.readthedocs.io/en/v5.0.1/modules-prefill.html?highlight=cache%20prefilling">Cache
prefilling</eref>
documentation for more information.</t>
        <t>The following example configuration will prefill the root zone using HTTPS:</t>
        <artwork><![CDATA[
modules.load('prefill')
prefill.config({
      ['.'] = {
              url = 'https://www.internic.net/domain/root.zone',
              interval = 86400  -- seconds
              ca_file = '/etc/pki/tls/certs/ca-bundle.crt', -- optional
      }
})
]]></artwork>
      </section>
      <section numbered="false" anchor="unbound-19-and-above">
        <name>Unbound 1.9 and above</name>
        <t>See the Unbound documentation for <eref target="https://unbound.docs.nlnetlabs.nl/en/latest/manpages/unbound.conf.html#unbound-conf-auth-url">Authority Zone Options</eref> configuration.</t>
        <t>The following example configuration will prefill the root zone using HTTPS:</t>
        <artwork><![CDATA[
auth-zone:
  name: "."
  url: "https://www.internic.net/domain/root.zone"
  zonefile: "root.zone"
        fallback-enabled: yes
    for-downstream: no
    for-upstream: yes
    zonefile: "root.zone"
  prefetch: yes
]]></artwork>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
