<?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.17 (Ruby 3.2.3) -->


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

]>


<rfc ipr="trust200902" docName="draft-bortzmeyer-dnsop-poisonlicious-02" category="exp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Poisonlicious">Synchronizing caches of DNS resolvers</title>

    <author initials="S." surname="Bortzmeyer" fullname="Stéphane Bortzmeyer">
      <organization>Afnic</organization>
      <address>
        <postal>
          <street>7 avenue du 8 mai 1945</street>
          <city>Guyancourt</city>
          <code>78280</code>
          <country>FR</country>
        </postal>
        <email>bortzmeyer+ietf@nic.fr</email>
        <uri>https://www.afnic.fr/</uri>
      </address>
    </author>
    <author initials="W." surname="Toorop" fullname="Willem Toorop">
      <organization>NLnet Labs</organization>
      <address>
        <postal>
          <street>Science Park 400</street>
          <city>Amsterdam</city>
          <code>1098 XH</code>
          <country>NL</country>
        </postal>
        <email>willem@nlnetlabs.nl</email>
        <uri>https://nlnetlabs.nl/</uri>
      </address>
    </author>
    <author initials="B." surname="Farrokhi" fullname="Babak Farrokhi">
      <organization>Quad9</organization>
      <address>
        <postal>
          <street>Werdstrasse 2</street>
          <city>Zürich</city>
          <code>8004</code>
          <country>CH</country>
        </postal>
        <email>babak@farrokhi.net</email>
        <uri>https://quad9.net/</uri>
      </address>
    </author>
    <author initials="M." surname="Rahman" fullname="Moin Rahman">
      <organization>The FreeBSD Foundation</organization>
      <address>
        <postal>
          <street>3980 Broadway St</street>
          <city>Boulder</city>
          <code>CO 80304</code>
          <country>US</country>
        </postal>
        <email>bofh@freebsd.org</email>
        <uri>https://freebsdfoundation.org/</uri>
      </address>
    </author>
    <author initials="O." surname="Surý" fullname="Ondřej Surý">
      <organization>Internet Systems Consortium</organization>
      <address>
        <postal>
          <country>CZ</country>
        </postal>
        <email>ondrej@isc.org</email>
      </address>
    </author>
    <author initials="O." surname="Moerbeek" fullname="Otto Moerbeek">
      <organization>PowerDNS</organization>
      <address>
        <postal>
          <country>NL</country>
        </postal>
        <email>otto.moerbeek@powerdns.com</email>
      </address>
    </author>

    <date year="2026" month="January" day="07"/>

    <area>General</area>
    <workgroup>DNSOP Working Group</workgroup>
    <keyword>DNS</keyword> <keyword>DNSSEC</keyword> <keyword>optimization</keyword> <keyword>caching</keyword>

    <abstract>


<?line 98?>

<t>Network of cooperating and mutually trusting DNS resolvers could benefit from cache sharing, where one resolver would distribute the result of a resolution to other resolvers.
This document standardizes a protocol to do so.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bortzmeyer-dnsop-poisonlicious/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        dnsop 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/DNS-Hackathon/Poisonlicious"/>.</t>
    </note>


  </front>

  <middle>


<?line 103?>

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

<t>When an organisation operates a big network of DNS resolvers <xref target="RFC1034"/> <xref target="RFC1035"/>, for instance for an important public resolver <xref section="6" sectionFormat="of" target="RFC9499"/>, it may be a performance improvement to distribute the result of the resolution process between the resolvers.
This document standardizes how to to do so, using blockchains (just kidding) and unicast messages to a set of pre-configured peers.</t>

<t>TODO data from Quad9 to show that there is a caching improvement to expect.
Measuring the efficiency of caching optimizations is hard!</t>

<section anchor="requirements-language"><name>Requirements 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 anchor="terminology"><name>Terminology</name>

<dl newline="true">
  <dt>Network of resolvers (TODO or resolver set? Or resolver cluster?):</dt>
  <dd>
    <t>A set of resolvers working together under the same administration</t>
  </dd>
  <dt>Peer (or peer resolver):</dt>
  <dd>
    <t>One of the other resolvers in the network</t>
  </dd>
  <dt>Originating resolver:</dt>
  <dd>
    <t>A resolver sending data to its peers in the network</t>
  </dd>
  <dt>Receiving resolver (or receiving peer):</dt>
  <dd>
    <t>A resolver receiving data from one of its peers in the network</t>
  </dd>
  <dt>Resolver:</dt>
  <dd>
    <t>As used in <xref section="6" sectionFormat="of" target="RFC9499"/></t>
  </dd>
</dl>

</section>
</section>
<section anchor="the-protocol"><name>The protocol</name>

<t>When completing a successful DNS resolution, the resolver transmits a DNS message (with the Q/R bit set, since it is a response) to the pre-configured peers, authenticating with TSIG <xref target="RFC8945"/>.
TODO SIG0? DoT?
No acknowledgment is sent or expected.
To save work, the resolver <bcp14>MAY</bcp14> send the data only if the TTL is higher than some predefined value.</t>

<t>The resolver must send only data that it is sure of (for instance by DNSSEC validation or because it came with the AA bit from the queried server).
Since all of the network of resolvers are in the same organizational domain, they <bcp14>MUST</bcp14> agree on the same policy for this assessment.</t>

<t>Messages of this protocol are distinguished from other DNS messages by the TSIG key they use (which must therefore be specific to this protocol).
TODO or by a dedicated port?</t>

<t>This message <bcp14>MAY</bcp14> be the message received by the resolver from the authoritative name servers or it <bcp14>MAY</bcp14> be a new message with data composed from data already obtained by the resolver.
TODO privacy risks when sending the question section? (See <xref target="Privacy"/></t>

<t>The EDNS section <bcp14>MUST</bcp14> be a new one, created to fit the needs of successful transmission to the peer.
TODO what about ECS <xref target="RFC7871"/></t>

<t>Each peer then <bcp14>MAY</bcp14> store the data in its cache.
The peer is not supposed to do DNSSEC validation (there is not always all the necessary data in the message).
TODO cache only what is in the Answer section?
See above about assessing the trustiness of the data.
TODO <xref section="5.4.1" sectionFormat="of" target="RFC2181"/> talks about the ranking of data.
Should we describe it?
Since it is supposed to be used inside an organisation, where all peers trust each other, and have a consistent policy, is it necessary?
The idea is that the data is as trustworthy as if you validated it yourself.</t>

</section>
<section anchor="IANA"><name>IANA Considerations</name>

<t>None.
[RFC-Editor: you may delete this section]</t>

</section>
<section anchor="Security"><name>Security Considerations</name>

<t>The integrity and authenticity of the cached data is of course critical.
DNSSEC would help but it is not yet universally deployed and, moreover, the peer resolvers should not have to redo the validation.
So, trust between the peer resolvers is expected because it is the only way for the receiver to be sure of the data.
One way to do so is to have all of the peers under the same organisational authority, as mandated here.</t>

<t>For the same reason, the channel between peers must be protected, preferrably with cryptography (currently, TSIG is mandatory).
ACL and other network techniques are of course useful.</t>

<t>Encryption is less important than authentication since we transmit only public data.
Nevertheless, it is better to be sure that the channel between the peers is not open to snooping.</t>

</section>
<section anchor="Privacy"><name>Privacy Considerations</name>

<t>Confidentiality is currently out of scope for this document.
The communication between the originating resolver and its receiving peers could be encrypted, for instance with DoT but it is not otherwise specified.</t>

<t>If the originating resolver sends the original question section in its messages to receiving peers, it can have bad privacy consequences <xref target="RFC9076"/>
TODO: delete this section?
Replace it with dummy data?</t>

</section>
<section anchor="Operation"><name>Operational Considerations</name>

<t>It is reminded that all resolvers in the network need to trust each other, probably being in the same administrative domain.
This specification is not meant to be deployed between unrelated resolvers.</t>

<t>The netwok of peer resolvers have to be configured out-of-band before. The way to do it is out-of-scope for this specification.</t>

</section>
<section anchor="related-future"><name>Related and future work</name>

<section anchor="related-work"><name>Related work</name>

<t><xref target="I-D.hl-dnsop-cache-filling"/> describes a mechanism to fill DNS caches with data.
The format is, like in this document, standard DNS as seen on the wire.</t>

</section>
<section anchor="future-work"><name>Future work</name>

<section anchor="negative-answers"><name>Negative answers</name>

<t>TODO What to do about them?
Transmit them?
(Be careful of the risk of overloading receving peers for instance when there is a dictionary attack.)
Can a receiving peer use <xref target="RFC8020"/> and/or <xref target="RFC8198"/> to synthetize negative answers since it did not validate data itself?</t>

</section>
<section anchor="transport-of-messages"><name>Transport of messages</name>

<t>Messages could be transmitted in long-lived TCP sessions, too.</t>

<t>If there are 1,000 servers, sending 1,000 messages, or having a full mesh of 1,000 TCP connections may be too much.
It may be interesting to replace the unicast messages by multicast <xref target="RFC5110"/> (the issues of multicast on the public Internet do no apply here since we envision work under only one organisation).</t>

<t>Is the use of a DHT reasonable?</t>

<t>Why not MQTT <xref target="MQTT"/> which is well suited for publish-by-one/consume-by-many?
What about protocols like protocol buffers?
TODO What about dnstap?</t>

</section>
<section anchor="packing-of-messages"><name>Packing of messages</name>

<t>It could be interesting to optimize by packing the data in a C-DNS <xref target="RFC8618"/> flow, sent with TCP (with TLS) or QUIC.
(Of course, other formats/protocols are possible.)</t>

</section>
<section anchor="different-responses"><name>Different responses</name>

<t>When the authoritative servers send different replies depending on the client, the various peers may send different (and under-optimized) responses to a receiving peer.</t>

</section>
</section>
</section>


  </middle>

  <back>


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



<reference anchor="RFC1034">
  <front>
    <title>Domain names - concepts and facilities</title>
    <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
    <date month="November" year="1987"/>
    <abstract>
      <t>This RFC is the revised basic definition of The Domain Name System. It obsoletes RFC-882. This memo describes the domain style names and their used for host address look up and electronic mail forwarding. It discusses the clients and servers in the domain name system and the protocol used between them.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="13"/>
  <seriesInfo name="RFC" value="1034"/>
  <seriesInfo name="DOI" value="10.17487/RFC1034"/>
</reference>

<reference anchor="RFC1035">
  <front>
    <title>Domain names - implementation and specification</title>
    <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
    <date month="November" year="1987"/>
    <abstract>
      <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="13"/>
  <seriesInfo name="RFC" value="1035"/>
  <seriesInfo name="DOI" value="10.17487/RFC1035"/>
</reference>

<reference anchor="RFC9499">
  <front>
    <title>DNS Terminology</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
    <date month="March" year="2024"/>
    <abstract>
      <t>The Domain Name System (DNS) is defined in literally dozens of different RFCs. The terminology used by implementers and developers of DNS protocols, and by operators of DNS systems, has changed in the decades since the DNS was first defined. This document gives current definitions for many of the terms used in the DNS in a single document.</t>
      <t>This document updates RFC 2308 by clarifying the definitions of "forwarder" and "QNAME". It obsoletes RFC 8499 by adding multiple terms and clarifications. Comprehensive lists of changed and new definitions can be found in Appendices A and B.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="219"/>
  <seriesInfo name="RFC" value="9499"/>
  <seriesInfo name="DOI" value="10.17487/RFC9499"/>
</reference>

<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>

<reference anchor="RFC8945">
  <front>
    <title>Secret Key Transaction Authentication for DNS (TSIG)</title>
    <author fullname="F. Dupont" initials="F." surname="Dupont"/>
    <author fullname="S. Morris" initials="S." surname="Morris"/>
    <author fullname="P. Vixie" initials="P." surname="Vixie"/>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="O. Gudmundsson" initials="O." surname="Gudmundsson"/>
    <author fullname="B. Wellington" initials="B." surname="Wellington"/>
    <date month="November" year="2020"/>
    <abstract>
      <t>This document describes a protocol for transaction-level authentication using shared secrets and one-way hashing. It can be used to authenticate dynamic updates to a DNS zone as coming from an approved client or to authenticate responses as coming from an approved name server.</t>
      <t>No recommendation is made here for distributing the shared secrets; it is expected that a network administrator will statically configure name servers and clients using some out-of-band mechanism.</t>
      <t>This document obsoletes RFCs 2845 and 4635.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="93"/>
  <seriesInfo name="RFC" value="8945"/>
  <seriesInfo name="DOI" value="10.17487/RFC8945"/>
</reference>




    </references>

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

<reference anchor="MQTT" target="https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.docx">
  <front>
    <title>MQTT Version 5.0</title>
    <author >
      <organization>OASISi</organization>
    </author>
    <date year="2019"/>
  </front>
</reference>


<reference anchor="RFC7871">
  <front>
    <title>Client Subnet in DNS Queries</title>
    <author fullname="C. Contavalli" initials="C." surname="Contavalli"/>
    <author fullname="W. van der Gaast" initials="W." surname="van der Gaast"/>
    <author fullname="D. Lawrence" initials="D." surname="Lawrence"/>
    <author fullname="W. Kumari" initials="W." surname="Kumari"/>
    <date month="May" year="2016"/>
    <abstract>
      <t>This document describes an Extension Mechanisms for DNS (EDNS0) option that is in active use to carry information about the network that originated a DNS query and the network for which the subsequent response can be cached. Since it has some known operational and privacy shortcomings, a revision will be worked through the IETF for improvement.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7871"/>
  <seriesInfo name="DOI" value="10.17487/RFC7871"/>
</reference>

<reference anchor="RFC2181">
  <front>
    <title>Clarifications to the DNS Specification</title>
    <author fullname="R. Elz" initials="R." surname="Elz"/>
    <author fullname="R. Bush" initials="R." surname="Bush"/>
    <date month="July" year="1997"/>
    <abstract>
      <t>This document considers some areas that have been identified as problems with the specification of the Domain Name System, and proposes remedies for the defects identified. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2181"/>
  <seriesInfo name="DOI" value="10.17487/RFC2181"/>
</reference>

<reference anchor="RFC9076">
  <front>
    <title>DNS Privacy Considerations</title>
    <author fullname="T. Wicinski" initials="T." role="editor" surname="Wicinski"/>
    <date month="July" year="2021"/>
    <abstract>
      <t>This document describes the privacy issues associated with the use of the DNS by Internet users. It provides general observations about typical current privacy practices. It is intended to be an analysis of the present situation and does not prescribe solutions. This document obsoletes RFC 7626.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9076"/>
  <seriesInfo name="DOI" value="10.17487/RFC9076"/>
</reference>


<reference anchor="I-D.hl-dnsop-cache-filling">
   <front>
      <title>Additional Method for Filling DNS Caches</title>
      <author fullname="Paul E. Hoffman" initials="P. E." surname="Hoffman">
         <organization>ICANN</organization>
      </author>
      <author fullname="Matt Larson" initials="M." surname="Larson">
         <organization>ICANN</organization>
      </author>
      <date day="2" month="March" year="2018"/>
      <abstract>
	 <t>   DNS recursive resolvers do not always have access to the
   authoritative resolvers from which they need to get information.  For
   example, when the DNS root servers are under DDoS attack, a recursive
   resolver may not be able to get an answer from any of the root
   servers.  This document describes how resolvers can populate their
   caches with zone information, and keep their cache populated, using
   out-of-band mechanisms that do not rely on the DNS protocol.  The
   protocol is primarily designed for the root zone, but can apply to
   any zone that wants to participate by publishing values to be cached.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-hl-dnsop-cache-filling-00"/>
   
</reference>

<reference anchor="RFC8020">
  <front>
    <title>NXDOMAIN: There Really Is Nothing Underneath</title>
    <author fullname="S. Bortzmeyer" initials="S." surname="Bortzmeyer"/>
    <author fullname="S. Huque" initials="S." surname="Huque"/>
    <date month="November" year="2016"/>
    <abstract>
      <t>This document states clearly that when a DNS resolver receives a response with a response code of NXDOMAIN, it means that the domain name which is thus denied AND ALL THE NAMES UNDER IT do not exist.</t>
      <t>This document clarifies RFC 1034 and modifies a portion of RFC 2308: it updates both of them.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8020"/>
  <seriesInfo name="DOI" value="10.17487/RFC8020"/>
</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="RFC5110">
  <front>
    <title>Overview of the Internet Multicast Routing Architecture</title>
    <author fullname="P. Savola" initials="P." surname="Savola"/>
    <date month="January" year="2008"/>
    <abstract>
      <t>This document describes multicast routing architectures that are currently deployed on the Internet. This document briefly describes those protocols and references their specifications.</t>
      <t>This memo also reclassifies several older RFCs to Historic. These RFCs describe multicast routing protocols that were never widely deployed or have fallen into disuse. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5110"/>
  <seriesInfo name="DOI" value="10.17487/RFC5110"/>
</reference>

<reference anchor="RFC8618">
  <front>
    <title>Compacted-DNS (C-DNS): A Format for DNS Packet Capture</title>
    <author fullname="J. Dickinson" initials="J." surname="Dickinson"/>
    <author fullname="J. Hague" initials="J." surname="Hague"/>
    <author fullname="S. Dickinson" initials="S." surname="Dickinson"/>
    <author fullname="T. Manderson" initials="T." surname="Manderson"/>
    <author fullname="J. Bond" initials="J." surname="Bond"/>
    <date month="September" year="2019"/>
    <abstract>
      <t>This document describes a data representation for collections of DNS messages. The format is designed for efficient storage and transmission of large packet captures of DNS traffic; it attempts to minimize the size of such packet capture files but retain the full DNS message contents along with the most useful transport metadata. It is intended to assist with the development of DNS traffic- monitoring applications.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8618"/>
  <seriesInfo name="DOI" value="10.17487/RFC8618"/>
</reference>




    </references>


<?line 253?>

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

<t>Original idea at the DNS hackathon (RIPE-NCC / Netnod / DNS-OARC) in March 2025 at the Netnod office in Stockholm.</t>

</section>


  </back>

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

-->

</rfc>

