Internet-Draft | DNS Transport Signaling | June 2025 |
Stenstam, et al. | Expires 25 December 2025 | [Page] |
This document proposes a mechanism for authoritative DNS servers to opportunistically signal their support for alternative transport protocols (e.g., DNS over TLS (DoT), DNS over HTTPS (DoH) and DNS over QUIC (DoQ)) directly within the Additional section of authoritative DNS responses. This "hint-based" approach aims to enable resolvers to discover and upgrade transport connections more efficiently, thereby improving privacy, security, and performance for subsequent interactions.¶
The mechanism is designed to not require any protocol change. It is safe, backward-compatible, and effective even when DNSSEC validation of the hint is not possible or desired.¶
This document proposes an improvement on the opportunistic (but blind) testing of alternative transports suggested in RFC9539 by providing a mechanism by which a responding authoritative server may signal what alternative transports it supports.¶
TO BE REMOVED: This document is being collaborated on in Github at: https://github.com/johanix/draft-johani-dnsop-transport-signaling. The most recent working version of the document, open issues, etc, should all be available there. The authors (gratefully) accept pull requests.¶
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 25 December 2025.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
The Domain Name System (DNS) primarily relies on UDP and TCP for communication between resolvers and authoritative servers. While these protocols are well-established, there is a growing interest in leveraging modern transport protocols like DNS over TLS (DoT) [RFC7858], DNS over HTTPS (DoH) [RFC9461] and DNS over QUIC (DoQ) [RFC9250] to enhance privacy, security, and performance.¶
Existing efforts to signal service connection information, such as the SVCB and HTTPS DNS records [RFC9460] [RFC9461], primarily focus on service discovery mechanisms where a client explicitly queries for these records, often from a parent zone. While robust, this approach can introduce additional latency and requires explicit configuration at the parent zone level.¶
This document proposes an "DNS Opportunistic Transport Signaling" (DNS OTS) mechanism. DNS OTS, aka an "OTS Hint" allows an authoritative DNS nameserver to directly convey its transport capabilities as a hint within the Additional section of responses to queries where it identifies itself as an authoritative nameserver for the requested zone. This direct, in-band signaling provides a low-latency discovery path, even when a formal, validated signal is not available. Furthermore, this is achieved without any changes to the DNS Protocol.¶
An attempt at utilizing more modern, and in particular, more private transports between resolvers and authoritative nameservers was introduced in [RFC9539]. The idea there was to opportunistically try to send the query to the authoritative nameserver over multiple transports with no prior knowledge of whether a transport was supported in the receiving end or not.¶
The drawback with that approach is that without any significant deployment of authoritative support the resolver end will mostly spend cycles and traffic on a wasted effort. For this reason there seems not to be any known implementations.¶
Furthermore, in Appendix B of [RFC9539] requirements for improving the defense against an active attacker are listed. The first requirement is:¶
A signaling mechanism that tells the recursive resolver that the authoritative server intends to offer authenticated encryption.¶
This document aims to provide exactly such a mechanism while staying within the current DNS protocol. Therefore the transport signaling provided will be opportunistic, and as such fit well as an improvement to [RFC9539].¶
Note to the RFC Editor: Please remove this entire section before publication.¶
When designing a mechanism that rely on sending new information in DNS responses without changing the current DNS protocol, the Additional section has the major advantage of being ignored by legacy software. This property makes it possible to essentially deploy the proposed mechanism immediately, as it will not cause problems with existing DNS infrastructure.¶
Existing authoritative nameservers will not provide any OTS Hint in the Additional section.¶
Existing resolvers will actively ignore any OTS Hint in the Additional section.¶
Only DNS nameservers (authoritative or recursive) that are aware of the proposed mechanism will use it.¶
The downside is that it is not possible to strictly rely on anything specific being present in the Additional section, as it may be stripped off by a middle man or even by the sending nameserver (eg. due to packet size constraints). For this reason it is not possible to provide more than an opportunistic transport signal.¶
Another issue is whether the data provided may be trusted or not. This is usually a major issue and the primary reason that data in the Additional section is actively ignored by resolvers. In this particular case, though, even an untrusted transport signal is better than no signal at all. Furthermore, the only effect of a forged or otherwise incorrect transport signal is a, typically failed, connection attempt to an authoritative nameserver that does not support the advertised transport. This will cause immediate fallback to "Do53", i.e. traditional DNS over UDP/TCP and the non-availability of the advertised transport will be remembered by the resolver (for some suitable time).¶
Hence, using the Additional section for opportunistic transport signaling has vastly more benefits than drawbacks.¶
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.¶
Authoritative Nameserver (Auth Server): A DNS server that holds the authoritative zone data for a specific domain.¶
Recursive Nameserver (Resolver): A DNS server that processes user queries, performing iterative lookups to authoritative servers to resolve domain names.¶
OTS Hint: An SVCB record included opportunistically in the Additional section of an authoritative DNS response, intended to signal the responding authoritative nameserver's transport capabilities.¶
SVCB Record: Service Binding record, as defined in [RFC9460].¶
The core of this proposal is for an authoritative nameserver to include an SVCB record in the Additional section of its responses under specific conditions.¶
This consists of three parts. The first two are the behaviour of the authoritative nameserver receiving the query and the rehaviour of the recursive nameserver receiving the response. The final part is a new EDNS(0) option that defines an OPT-OUT capability.¶
Recursive nameservers adopting this mechanism SHOULD implement the following logic:¶
OPT-OUT Possibility: If the resolver already thinks that it knows the transport capabilities of the authoritative nameserver it is about to send a query to it may opt out from DNS transport signaling by including an EDNS(0) "No-OTS" option in the query.¶
Opportunistic Parsing: When receiving an authoritative DNS response, the resolver SHOULD parse the Additional section for SVCB records.¶
Owner Check: If an SVCB record is found whose owner name matches an authoritative nameserver identified in the Authority or Answer sections of the current response, the resolver MAY consider this an OTS Hint.¶
DNSSEC Validation (Optional but Recommended): * The resolver SHOULD attempt to DNSSEC validate the OTS Hint. This involves validating the SVCB record itself and its corresponding RRSIG (if present) against the DNSSEC chain of trust for the zone that owns the SVCB record (e.g., dnsprovider.com for ns.dnsprovider.com).¶
If validation succeeds: The OTS Hint is considered a trusted signal. The resolver MAY then prefer the signaled alternative transports for subsequent queries to that specific authoritative nameserver.¶
If validation fails, or no RRSIG is present: The OTS Hint MUST be treated as an unvalidated hint. The resolver MAY still opportunistically attempt to use the signaled alternative transports, but MUST be prepared for immediate fallback to traditional transports (UDP/TCP) if the connection fails. This is particularly relevant for scenarios like vanity names (e.g., ns.customer.com where customer.com is an unsigned zone, but the underlying server ns.dnsprovider.com is capable).¶
Prioritization: * Any DNSSEC-validated SVCB record found via explicit query (e.g., ns.example.com for a queried domain MUST take precedence over any unvalidated OTS Hint.¶
The OTS Hint is a mechanism to discover capabilities opportunistically, not to override trusted delegation or service configuration.¶
Fallback: Resolvers MUST always be prepared to fall back to traditional UDP/TCP transport if an attempt to use an alternative transport based on an OTS Hint (especially an unvalidated one) fails or times out.¶
Resolvers implementing the DNS OTS Hint mechanism have several options for caching the transport signals received via OTS Hints.¶
A suggested primary strategy is to set the EDNS(0) No-OTS option when no transport signaling information is needed (because the resolver already knows the authoritative nameservers transport capabilities from a previous response or for some other reason).¶
Three example caching strategies are listed below. Other strategies are possible. Each strategy has different trade-offs in terms of efficiency, responsiveness to changes, and resource usage:¶
Standard DNS Cache: Treat the SVCB record like any other DNS record, caching it according to its TTL. This is the simplest approach and will simply cause the resolver to fall back to UDP for one query if the transport signal data has expired.¶
Cache-Until-Fail: Cache the transport signal until a connection attempt fails, then invalidate the cached entry. This approach uses more aggressive caching based on the assumption that changes to transport capabilites are expected to be rare, and there is no risk of presenting any data that is no longer correct. The possible downside is that the resolver will not learn about possible new transports that become available. E.g., with an "alpn=doq", the resolver will not learn that the authoritative server later started to support DNS-over-TLS (in addition to DoQ) if it is successfully using the DNS-over-QUIC connection.¶
Success-Based Refresh: Refresh the transport signal cache entry each time a successful connection is made using that transport. This provides a balance between efficiency and responsiveness but requires additional bookkeeping.¶
For a more detailed analysis of possible caching logic, see [RFC9539], section 4.¶
Note that the resolver always has the option of not using the EDNS(0) No-OTS option whenever the cache entry is getting close to expiry.¶
Given the variety of deployment scenarios and operational requirements, this document does not mandate a specific caching strategy. Implementers SHOULD choose a strategy that best fits their operational needs, considering factors such as:¶
The importance of minimizing connection attempts¶
The impact of failed connection attempts¶
The computational cost of different caching strategies¶
The memory requirements of maintaining cache state¶
The chosen strategy SHOULD be documented in the implementation's configuration options to allow operators to make informed decisions about its use.¶
To provide a mechanism for resolvers to explicitly opt out of receiving transport signals, this document defines a new EDNS(0) option called "No-OTS" (NOTS). When included in a query, this option signals to the authoritative server that the resolver does not want to receive any transport signals in the response.¶
The typical use case is to set the EDNS(0) No-OTS option when the resolver already has the transport information it needs.¶
The EDNS(0) No-OTS option is structured as follows:¶
1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0: | OPTION-CODE | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 2: | OPTION-LENGTH | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+¶
Field definition details:¶
OPTION-CODE: 2 octets / 16 bits (defined in [RFC6891]) contains the value TBD for No-OTS.¶
OPTION-LENGTH: 2 octets / 16 bits (defined in [RFC6891]) contains the length of the payload in octets. For the No-OTS option, this value MUST be 0 as there is no payload.¶
When an authoritative server receives a query containing the EDNS(0) No-OTS option, it SHOULD NOT include any OTS Hints in the response, regardless of whether it would normally do so based on the conditions described in Section 3.1.¶
This option provides a clean way for resolvers to opt out of receiving transport signals, which may be useful in scenarios where:¶
The resolver has already established transport preferences for a particular authoritative server¶
The resolver does not support or does not want to use alternative transports¶
The resolver wants to minimize response sizes¶
The resolver is operating in an environment where transport signals are not needed or desired¶
The No-OTS option is designed to be a simple, lightweight mechanism that can be used to disable transport signaling without affecting the normal operation of DNS resolution.¶
The idea to use an SVCB alpn parameter for transport signaling originated with the work on DELEG [I-D.draft-ietf-deleg]. The current document uses the same data format, but as an opportunistic addition to the Additional section rather than as integral part of a changed delegation mechanism.¶
Both mechanisms have distinct use cases, and pros and cons. The major advantage of the DELEG mechanism is that it cannot be spoofed or filtered, as it is an integral part of an upcoming protocol change.¶
The opportunistic mechanism described here has the major advantage of being available immediately without any changes to the DNS protocol. Furthermore, as it is a signal directly from an authoritative nameserver, a single OTS Hint may allow the recipient recursive nameserver to upgrade the transport used for all the zones served by that authoritative nameserver (which may be millions) without the need to make any changes to the zones, nor to the parent zones.¶
Given the current DNS landscape with a limited number of very large providers of authoritative DNS service and a limited number of large providers of recursive DNS service the opportunistic model described here has the potential of enabling upgrading the transport for a significant fraction of the DNS traffic with a limited amount of effort.¶
Spoofing of Unvalidated Hints: An OTS Hint that cannot be DNSSEC validated (e.g., for ns.example.com where example.com is unsigned) is susceptible to spoofing by an on-path attacker. Such an attacker could insert a fake SVCB record advertising a non-existing transport, thereby denying connection over that transport. However, since the hint is opportunistic and not required for DNS resolution, the worst-case scenario is that the resolver attempts a connection that fails and then falls back to traditional transports. Security for the actual DNS data remains unaffected. The cryptographic validation of TLS/QUIC (via X.509 certificates) for DoT/DoQ would still protect the integrity and privacy of the connection itself.¶
DNSSEC Validation: When a OTS Hint is signed by DNSSEC (e.g., the ns.dnsprovider.net SVCB record from a signed dnsprovider.net zone), it provides a trusted signal. Resolvers SHOULD leverage DNSSEC validation to distinguish between trusted and unvalidated hints.¶
No New Attack Vectors: This mechanism does not introduce new attack vectors for DNS data itself, as it primarily concerns transport discovery. It relies on the existing security properties of DoT, DoH and DoQ for actual session security.¶
Safe Rollout: As existing recursive nameservers carefully avoid data in the Additional section that they do not need, the OTS Hint will be ignored by everyone except recursive nameservers that understand the OTS Hint.¶
No-OTS enables a downgrade attack: If an attacker is able to inject a No-OTS option to an outbound query then no transport signal will be provided. However, this is a consequence of the opportunistic nature of the OTS Hint and not worse than not being able to do transport signaling at all.¶
Response Size: Including an SVCB record in the Additional section will increase the size of UDP responses. Authoritative server operators should consider the potential for UDP fragmentation or TCP fallback if responses become excessively large, though a single SVCB record is typically small. Recursive nameservers should usually set the EDNS(0) No-OTS when they already have the transport signaling information.¶
Server Configuration: Authoritative server implementations will need configuration options to enable this feature and manage the identities list.¶
Rollout Strategy: This mechanism supports a gradual rollout. Authoritative servers can begin sending hints without requiring changes from resolvers, and resolvers can begin processing hints without requiring all authoritative servers to implement the feature.¶
Monitoring: As there is extremely limited data on effects of alternative DNS transports for communication resolver to authoritative nameserver it is strongly suggested that monitoring (of use, resource consumption, etc) is considered.¶
This document defines a new EDNS(0) option, entitled "No-OTS", assigned a value of TBD in the "DNS EDNS0 Option Codes (OPT)" registry.¶
+-------+--------------------------+----------+----------------------+ | Value | Name | Status | Reference | +-------+--------------------------+----------+----------------------+ | TBD | No-OTS | Standard | ( This document ) | +-------+--------------------------+----------+----------------------+¶
Note to the RFC Editor: In this section, please replace occurrences of "(This document)" with a proper reference.¶
Note to the RFC Editor: Please remove this entire section before publication.¶
The TDNS Framework of experimental DNS servers developed and maintained by the Swedish Internet Foundation implements this draft (see https://github.com/johanix/tdns). TDNS has support for both the authoritative nameserver and recursive nameserver parts of the draft.¶
The participants of the DELEG Working Group, Peter Thomassen and Christian Elmerot.¶
Initial public draft¶