递归 DNS 解析器

递归 DNS 解析器替客户端完成整条从根到权威的查询,并缓存结果;ISP、家庭路由、公共 DNS、企业 DNS、VPN/代理内置解析器都是它的来源。

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

[!info] related notes

递归 DNS 解析器

一句话定义

递归 DNS 解析器(Recursive Resolver) 负责替客户端完成整个「根 → 顶级域 → 权威」的查询链,并把结果缓存起来返回给 Stub Resolver。

核心机制 / 工作原理

它的核心能力是 递归查询 + 缓存

收到 www.example.com A

问根:.com 去哪?
问 TLD:example.com 去哪?
问权威:www.example.com 的 A 是什么?

缓存 300 秒,返回客户端

冷缓存时它可能要依次访问根、顶级域、权威三层;缓存变热后,大多数同类查询直接从缓存回答,不再外出。

常见来源

  • ISP 提供的 DNS
  • 家庭路由器转发器(它本身也是个递归/转发器)
  • Google Public DNS(8.8.8.8)
  • Cloudflare(1.1.1.1)
  • 阿里公共 DNS(223.5.5.5)
  • 企业内部 DNS
  • VPN 或代理客户端内置 DNS
  • 云厂商 VPC 内部 DNS(如 169.254.x.x 类元数据域名、VPC 内 *.internal

最小例子 / 最小场景

你在 Windows 上执行:

Resolve-DnsName anyrouter.top -Server 1.1.1.1

这里 1.1.1.1 就是一台公共递归解析器。它如果没缓存,会自己走完根/TLD/权威,再把答案回给你。

边界与易混淆点

  • 它通常「不」负责回答其他域的权威数据:递归解析器不是 anyrouter.top 的权威,只是帮你去问权威。
  • 你以为的 DNS 服务器可能不是递归解析器192.168.x.x 常只是 Forwarder(见 dns-forwarder)。
  • 递归解析器看到的源 IP 是「发出查询的那台」(通常是你的出口/Forwarder),所以 GeoDNS 常按递归解析器位置而非你的真实位置返回(见 geodns)。
  • 不同递归解析器缓存状态不同,这是「同一域名不同机器结果不同」的常见原因(见 why-same-domain-different-ip)。
  • 它对客户端身份可见(知道是谁在查),这是 ODoH 想解决的问题(见 oblivious-doh-odoh)。
创建于 2026/7/31 更新于 2026/7/31