RFC 9250 - 基于专用QUIC连接的DNS (DoQ)
发布日期: 2022年5月
状态: 提案标准 (Proposed Standard)
作者:
- C. Huitema (Private Octopus Inc.)
- S. Dickinson (Sinodun IT)
- A. Mankin (Salesforce)
摘要 (Abstract)
本文档描述了使用 QUIC 为 DNS 提供传输机密性的方法. QUIC 提供的加密具有与 TLS 提供的类似属性, 而 QUIC 传输消除了 TCP 固有的队头阻塞问题, 并提供比 UDP 更高效的数据包丢失恢复. DNS over QUIC (DoQ) 具有与 RFC 7858 中指定的 DNS over TLS (DoT) 类似的隐私属性, 以及与经典 DNS over UDP 类似的延迟特性. 本规范描述了 DoQ 作为 DNS 通用传输的使用, 包括存根到递归、递归到权威以及区域传输场景的使用.
目录 (Contents)
主要章节
- 1. Introduction (简介)
- 2. Key Words (关键词)
- 3. Design Considerations (设计考虑)
- 3.1. Provide DNS Privacy (提供 DNS 隐私)
- 3.2. Design for Minimum Latency (最小延迟设计)
- 3.3. Middlebox Considerations (中间盒考虑)
- 3.4. No Server-Initiated Transactions (无服务器发起的事务)
- 4. Specifications (规范)
- 4.1. Connection Establishment (连接建立)
- 4.1.1. Port Selection (端口选择)
- 4.2. Stream Mapping and Usage (流映射和使用)
- 4.2.1. DNS Message IDs (DNS 消息 ID)
- 4.3. DoQ Error Codes (DoQ 错误代码)
- 4.3.1. Transaction Cancellation (事务取消)
- 4.3.2. Transaction Errors (事务错误)
- 4.3.3. Protocol Errors (协议错误)
- 4.3.4. Alternative Error Codes (替代错误代码)
- 4.4. Connection Management (连接管理)
- 4.5. Session Resumption and 0-RTT (会话恢复和 0-RTT)
- 4.6. Message Sizes (消息大小)
- 4.1. Connection Establishment (连接建立)
-
- Implementation Requirements (实现要求)
- 5.1. Authentication (身份验证)
- 5.2. Fallback to Other Protocols on Connection Failure (连接失败时回退到其他协议)
- 5.3. Address Validation (地址验证)
- 5.4. Padding (填充)
- 5.5. Connection Handling (连接处理)
- 5.5.1. Connection Reuse (连接重用)
- 5.5.2. Resource Management (资源管理)
- 5.5.3. Using 0-RTT and Session Resumption (使用 0-RTT 和会话恢复)
- 5.5.4. Controlling Connection Migration for Privacy (控制连接迁移以保护隐私)
- 5.6. Processing Queries in Parallel (并行处理查询)
- 5.7. Zone Transfer (区域传输)
- 5.8. Flow Control Mechanisms (流量控制机制)
-
- Security Considerations (安全考虑)
-
- Privacy Considerations (隐私考虑)
- 7.1. Privacy Issues with 0-RTT data (0-RTT 数据的隐私问题)
- 7.2. Privacy Issues with Session Resumption (会话恢复的隐私问题)
- 7.3. Privacy Issues with Address Validation Tokens (地址验证令牌的隐私问题)
- 7.4. Privacy Issues with Long Duration Sessions (长期会话的隐私问题)
- 7.5. Traffic Analysis (流量分析)
-
- IANA Considerations (IANA 考虑)
- 8.1. Registration of a DoQ Identification String (DoQ 标识字符串的注册)
- 8.2. Reservation of a Dedicated Port (专用端口的保留)
- 8.3. Reservation of an Extended DNS Error Code: Too Early (扩展 DNS 错误代码的保留: Too Early)
- 8.4. DNS-over-QUIC Error Codes Registry (DNS-over-QUIC 错误代码注册表)
-
- References (参考文献)
- 9.1. Normative References (规范性参考文献)
- 9.2. Informative References (信息性参考文献)
附录
- Appendix A. The NOTIFY Service (NOTIFY 服务)
关键特性
DoQ 的主要优势
- 隐私保护: 与 DoT 相同级别的 DNS 隐私保护
- 低延迟: 支持 0-RTT 数据传输, 减少握手延迟
- 无队头阻塞: QUIC 的多流特性避免 TCP 的队头阻塞问题
- 连接迁移: 支持网络切换时的无缝连接迁移
- 高效恢复: 更好的数据包丢失恢复机制
技术规范要点
- 默认端口: UDP 853
- ALPN 标识符: "doq"
- 消息编码: 2字节长度字段 + DNS 消息内容
- 流映射: 每个 DNS 查询使用独立的双向 QUIC 流
- 消息 ID: 必须设置为 0 (由流 ID 提供关联)
安全与隐私
- 加密: 基于 TLS 1.3 的 QUIC 加密
- 身份验证: 支持严格和机会主义使用配置文件
- 填充: 支持 EDNS(0) 填充和 QUIC 数据包填充
- 地址验证: 防止地址放大攻击
相关资源
- 官方原文: RFC 9250
- 官方页面: RFC 9250 DataTracker
- 勘误表: RFC Editor Errata
相关 RFC
- [RFC 9000] - QUIC: A UDP-Based Multiplexed and Secure Transport
- [RFC 9001] - Using TLS to Secure QUIC
- [RFC 7858] - DNS over TLS (DoT)
- [RFC 8484] - DNS over HTTPS (DoH)
- [RFC 9114] - HTTP/3