3. Design Considerations
This section and its subsections present the design guidelines that were used for DoQ. While all other sections in this document are normative, this section is informative in nature.
3.1. Provide DNS Privacy
DoT [RFC7858] defines how to mitigate some of the issues described in "DNS Privacy Considerations" [RFC9076] by specifying how to transmit DNS messages over TLS. The "Usage Profiles for DNS over TLS and DNS over DTLS" [RFC8310] specify Strict and Opportunistic usage profiles for DoT including how stub resolvers can authenticate recursive resolvers.
QUIC connection setup includes the negotiation of security parameters using TLS, as specified in "Using TLS to Secure QUIC" [RFC9001], enabling encryption of the QUIC transport. Transmitting DNS messages over QUIC will provide essentially the same privacy protections as DoT [RFC7858] including Strict and Opportunistic usage profiles [RFC8310]. Further discussion on this is provided in Section 7.
3.2. Design for Minimum Latency
QUIC is specifically designed to reduce protocol-induced delays, with features such as:
-
Support for 0-RTT data during session resumption.
-
Support for advanced packet-loss recovery procedures as specified in "QUIC Loss Detection and Congestion Control" [RFC9002].
-
Mitigation of head-of-line blocking by allowing parallel delivery of data on multiple streams.
This mapping of DNS to QUIC will take advantage of these features in three ways:
-
Optional support for sending 0-RTT data during session resumption (the security and privacy implications of this are discussed in later sections).
-
Long-lived QUIC connections over which multiple DNS transactions are performed, generating the sustained traffic required to benefit from advanced recovery features.
-
Mapping of each DNS Query/Response transaction to a separate stream, to mitigate head-of-line blocking. This enables servers to respond to queries "out of order". It also enables clients to process responses as soon as they arrive, without having to wait for in-order delivery of responses previously posted by the server.
These considerations are reflected in the mapping of DNS traffic to QUIC streams in Section 4.2.
3.3. Middlebox Considerations
Using QUIC might allow a protocol to disguise its purpose from devices on the network path using encryption and traffic analysis resistance techniques like padding, traffic pacing, and traffic shaping. This specification does not include any measures that are designed to avoid such classification; the padding mechanisms defined in Section 5.4 are intended to obfuscate the specific records contained in DNS queries and responses, but not the fact that this is DNS traffic. Consequently, firewalls and other middleboxes might be able to distinguish DoQ from other protocols that use QUIC, like HTTP, and apply different treatment.
The lack of measures in this specification to avoid protocol classification is not an endorsement of such practices.
3.4. No Server-Initiated Transactions
As stated in Section 1, this document does not specify support for server-initiated transactions within established DoQ connections. That is, only the initiator of the DoQ connection may send queries over the connection.
DSO does support server-initiated transactions within existing connections. However, DoQ as defined here does not meet the criteria for an applicable transport for DSO because it does not guarantee in-order delivery of messages; see Section 4.2 of [RFC8490].