Internet-Draft Poisonlicious August 2026
Bortzmeyer, et al. Expires 4 February 2027 [Page]
Workgroup:
Internet Engineering Task Force
Internet-Draft:
draft-bortzmeyer-dnsop-poisonlicious-05
Published:
Intended Status:
Experimental
Expires:
Authors:
S. Bortzmeyer
Afnic
W. Toorop
NLnet Labs
B. Farrokhi
Quad9
M. Rahman
The FreeBSD Foundation
O. Surý
Internet Systems Consortium
O. Moerbeek
PowerDNS

Synchronizing caches of DNS resolvers

Abstract

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

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 4 February 2027.

Table of Contents

1. Introduction

When an organisation operates a big network of DNS resolvers [RFC1034] [RFC1035], for instance for an important public resolver (Section 6 of [RFC9499]), it may be a performance improvement to distribute the result of the resolution process between the resolvers. The same applies to resolvers operated by distinct organisations which have agreed to cooperate. This document standardizes how to do so, using unicast messages to a set of pre-configured peers.

1.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

1.2. Terminology

Network of resolvers
A set of mutually trusting resolvers working together under a common policy, often but not necessarily under the same administration
Peer (or peer resolver)
One of the other resolvers in the network
Originating resolver
A resolver sending data to its peers in the network
Receiving resolver (or receiving peer)
A resolver receiving data from one of its peers in the network
Resolver
As used in Section 6 of [RFC9499]

2. The protocol

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. No acknowledgment is sent or expected. To save work, the resolver MAY send the data only if the TTL is higher than some predefined value.

TSIG [RFC8945] is mandatory to implement but optional to use, following Section 7 of [RFC3365]. Implementations MUST support it, so that peers always have one authentication mechanism in common. Whether a given network of resolvers enables it is outside of the scope of this document.

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). All the resolvers of the network MUST agree on the same policy for this assessment. When they are not under the same administration, this policy MUST be agreed explicitly before deployment, since it cannot be inferred from a shared administrative practice.

Negative answers ([RFC9499], section 3) MUST NOT be transmitted to peers.

A message of this protocol is a response signed like a query. Since there is no request MAC (Section 4.3.1 of [RFC8945]), the MAC MUST be computed over the digest components listed for a request in Section 5.1 of [RFC8945]. This distinguishes it from an ordinary DNS response. The TSIG key SHOULD nevertheless be specific to this protocol. Peers that do not use TSIG need another discriminator, for instance a dedicated port.

This message MUST be a new message (not the message received by the resolver from the authoritative name servers) with data composed from data already obtained and validated by the originating resolver. It MUST contain an Answer section and MAY contain other sections. (So, the Question section is not mandatory.)

The EDNS section MUST be a new one, created to fit the needs of successful transmission to the peer.

Each peer then MAY 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). After all, the goal is to save work for the peers, so Section 5.4.1 of [RFC2181] does not apply here. (Remember all peers trust each other, and have a consistent policy. The data is as trustworthy as if you validated it yourself.) A resolver which cannot rely on its peers applying the agreed policy MUST NOT accept their data. The receiver MAY cache only what is in the Answer section.

3. IANA Considerations

None. [RFC-Editor: you may delete this section]

4. Security Considerations

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. Having all of the peers under the same administration is the simplest way to obtain this trust, but it is not the only one.

The channel between peers also needs protection, preferably with cryptography. ACL and other network techniques are of course useful.

Sharing one TSIG key across the whole network lets any peer impersonate any other (Section 10 of [RFC8945]). Using a distinct key per pair of peers is more important when the peers are not under the same administration.

5. Privacy Considerations

The records transmitted are public, but the messages contain the names that the resolvers have resolved, and therefore reveal to an eavesdropper what their clients looked up [RFC9076]. Removing the question section does not hide this, since the answer section contains the owner name. Using an encrypted transport, for instance DoT [RFC7858] or DoQ [RFC9250], or otherwise protecting the network path between peers, defeats this leakage and is RECOMMENDED when the messages travel over the public Internet.

If the originating resolver sends the original question section in its messages to receiving peers, it can have privacy consequences [RFC9076], for instance in the case of negative answers. When all the peers are under the same administration, these consequences are limited, and the originator SHOULD remove this section or replace it with dummy data. When the peers are under distinct administrations, the question section would disclose the queries of one party's clients to another, and the originator MUST remove it or replace it with dummy data.

6. Operational Considerations

It is reminded that all resolvers in the network need to trust each other. This specification is not meant to be deployed between unrelated resolvers.

The network of peer resolvers has to be configured out-of-band beforehand. The way to do it is out-of-scope for this specification.

8. References

8.1. Normative References

[RFC1034]
Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, DOI 10.17487/RFC1034, , <https://www.rfc-editor.org/info/rfc1034>.
[RFC1035]
Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, , <https://www.rfc-editor.org/info/rfc1035>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8945]
Dupont, F., Morris, S., Vixie, P., Eastlake 3rd, D., Gudmundsson, O., and B. Wellington, "Secret Key Transaction Authentication for DNS (TSIG)", STD 93, RFC 8945, DOI 10.17487/RFC8945, , <https://www.rfc-editor.org/info/rfc8945>.
[RFC9499]
Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219, RFC 9499, DOI 10.17487/RFC9499, , <https://www.rfc-editor.org/info/rfc9499>.

8.2. Informative References

[RFC2181]
Elz, R. and R. Bush, "Clarifications to the DNS Specification", RFC 2181, DOI 10.17487/RFC2181, , <https://www.rfc-editor.org/info/rfc2181>.
[RFC2931]
Eastlake 3rd, D., "DNS Request and Transaction Signatures ( SIG(0)s )", RFC 2931, DOI 10.17487/RFC2931, , <https://www.rfc-editor.org/info/rfc2931>.
[RFC3365]
Schiller, J., "Strong Security Requirements for Internet Engineering Task Force Standard Protocols", BCP 61, RFC 3365, DOI 10.17487/RFC3365, , <https://www.rfc-editor.org/info/rfc3365>.
[RFC5110]
Savola, P., "Overview of the Internet Multicast Routing Architecture", RFC 5110, DOI 10.17487/RFC5110, , <https://www.rfc-editor.org/info/rfc5110>.
[RFC7858]
Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., and P. Hoffman, "Specification for DNS over Transport Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, , <https://www.rfc-editor.org/info/rfc7858>.
[RFC7871]
Contavalli, C., van der Gaast, W., Lawrence, D., and W. Kumari, "Client Subnet in DNS Queries", RFC 7871, DOI 10.17487/RFC7871, , <https://www.rfc-editor.org/info/rfc7871>.
[RFC8020]
Bortzmeyer, S. and S. Huque, "NXDOMAIN: There Really Is Nothing Underneath", RFC 8020, DOI 10.17487/RFC8020, , <https://www.rfc-editor.org/info/rfc8020>.
[RFC8198]
Fujiwara, K., Kato, A., and W. Kumari, "Aggressive Use of DNSSEC-Validated Cache", RFC 8198, DOI 10.17487/RFC8198, , <https://www.rfc-editor.org/info/rfc8198>.
[RFC8618]
Dickinson, J., Hague, J., Dickinson, S., Manderson, T., and J. Bond, "Compacted-DNS (C-DNS): A Format for DNS Packet Capture", RFC 8618, DOI 10.17487/RFC8618, , <https://www.rfc-editor.org/info/rfc8618>.
[RFC9076]
Wicinski, T., Ed., "DNS Privacy Considerations", RFC 9076, DOI 10.17487/RFC9076, , <https://www.rfc-editor.org/info/rfc9076>.
[RFC9250]
Huitema, C., Dickinson, S., and A. Mankin, "DNS over Dedicated QUIC Connections", RFC 9250, DOI 10.17487/RFC9250, , <https://www.rfc-editor.org/info/rfc9250>.
[I-D.hl-dnsop-cache-filling]
Hoffman, P. E. and M. Larson, "Additional Method for Filling DNS Caches", Work in Progress, Internet-Draft, draft-hl-dnsop-cache-filling-00, , <https://datatracker.ietf.org/doc/html/draft-hl-dnsop-cache-filling-00>.
[MQTT]
OASIS, "MQTT Version 5.0", , <https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.docx>.
[GPB]
Google Developers, "Protocol Buffers", <https://protobuf.dev/>.
[dnstap]
Edmonds, R., "dnstap", , <https://dnstap.info/>.

Acknowledgements

Original idea at the DNS hackathon (RIPE-NCC / Netnod / DNS-OARC) in march 2025 at the Netnod office in Stockholm.

Authors' Addresses

Stéphane Bortzmeyer
Afnic
7 avenue du 8 mai 1945
78280 Guyancourt
France
Willem Toorop
NLnet Labs
Science Park 400
1098 XH Amsterdam
Netherlands
Babak Farrokhi
Quad9
Werdstrasse 2
CH-8004 Zürich
Switzerland
Moin Rahman
The FreeBSD Foundation
3980 Broadway St
Boulder, CO 80304
United States of America
Ondřej Surý
Internet Systems Consortium
Czech Republic
Otto Moerbeek
PowerDNS
Netherlands