1. 引言 (Introduction)
域名系统 (Domain Name System, DNS) 概念在 "Domain names - concepts and facilities" [RFC1034] 中规定. 通过 UDP 和 TCP 传输 DNS 查询与响应在 "Domain names - implementation and specification" [RFC1035] 中规定.
本文档给出了 DNS 协议到 QUIC 传输 [RFC9000] [RFC9001] 的映射. 按照 "DNS Terminology" [DNS-TERMS], 这里将 DNS over QUIC 称为 DoQ.
DoQ 映射的目标是:
-
提供与 DoT [RFC7858] 相同的 DNS 隐私保护. 这包括一个选项, 使客户端能够按照 "Usage Profiles for DNS over TLS and DNS over DTLS" [RFC8310] 中的规定, 通过认证域名来认证服务器.
-
与传统 DNS over UDP 相比, 为 DNS 服务器提供改进级别的源地址验证.
-
提供一种传输, 不会因路径 MTU 对其可发送的 DNS 响应大小施加限制.
为实现这些目标, 并支持正在进行的 DNS 加密工作, 本文档范围包括:
-
"stub to recursive resolver" 场景 (本文档中也称为 "stub to recursive" 场景)
-
"recursive resolver to authoritative nameserver" 场景 (本文档中也称为 "recursive to authoritative" 场景), 以及
-
"nameserver to nameserver" 场景 (主要用于区域传送 (XFR) [RFC1995] [RFC5936])
换句话说, 本文档将 QUIC 指定为 DNS 的通用传输.
本文档明确不追求的目标是:
-
不尝试规避中间盒对 DoQ 流量的潜在阻断.
-
不尝试支持服务器发起的事务, 这类事务仅用于 DNS 有状态操作 (DNS Stateful Operations, DSO) [RFC8490].
规定某个应用通过 QUIC 传输, 需要规定该应用的消息如何映射到 QUIC 流, 以及该应用通常如何使用 QUIC. "Hypertext Transfer Protocol Version 3 (HTTP/3)" [HTTP/3] 已为 HTTP 完成了这项工作. 本文档的目的是定义 DNS 消息如何通过 QUIC 传输.
DNS over HTTPS (DoH) [RFC8484] 可以与 HTTP/3 一起使用, 以获得 QUIC 的部分优势. 然而, 对于 recursive to authoritative 和区域传送场景, DoQ 的轻量级直接映射可被视为更自然的选择, 因为这些场景很少涉及中间方. 在这些场景中, HTTP 的额外开销无法由 HTTP 代理和缓存行为等收益抵消.
在本文档中, 第 3 节给出指导拟议设计的理由. 第 4 节规定 DoQ 的实际映射. 第 5 节给出 DoQ 实现、使用和部署方面的指南.