QNAME 最小化

QNAME 最小化让递归解析器每跳只发送完成委派所需的最小名称,而不是把完整域名一股脑发给根和 TLD,从而减少信息暴露。

#type / concept #status / growing #tech / network #protocol / dns

[!info] related notes

QNAME 最小化

一句话定义

QNAME 最小化(QNAME Minimisation,RFC 7816) 是一种隐私优化:递归解析器在查询链每一跳,只发送「完成当前委派所需的最小名称」,而不是把完整域名(www.private-project.example.com)提前暴露给根和 TLD。

核心机制 / 工作原理

传统解析器可能向根服务器发送完整名称:

问根:www.private-project.example.com 的 A 是多少?

但根服务器只需要知道顶级域:

问根:.com 的 NS 是什么?(只发 "com.")
问 .com:example.com 的 NS?(只发 "example.com.")
问 example.com:private-project.example.com 的 NS?
问 private-project:www... 的 A

每一层只能看到完成它那一步委派所需的最小片段,无法从根/TLD 那里拼出你最终查的完整域名。

最小例子 / 最小场景

未启用最小化:

根看到的 QNAME: www.secret.internal.example.com

启用最小化:

根看到的 QNAME: com.
TLD 看到的 QNAME: example.com.

根与 TLD 完全不知道你在查 secret.internal

边界与易混淆点

  • 减少暴露,但不加密:链路上的旁观者仍可能看到每跳的 QNAME 片段;要保密还需 DoH/DoT/DoQ(见 dns-over-https-doh)。
  • 个别权威服务器对「最小化查询」实现不规范(例如要求完整 QNAME 才回答),会导致解析失败;解析器通常对此做降级回退。
  • 最小化主要影响「根/TLD 看到什么」,不改变最终答案;它与 GeoDNS 用的源 IP / ECS 是不同维度(见 edns-client-subnet-ecsgeodns)。
创建于 2026/7/31 更新于 2026/7/31