DNS Forwarder

DNS Forwarder 不一定自己访问根服务器,而是把查询继续转交给更上游的递归解析器;家庭路由器和企业内网常扮演这一角色。

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

[!info] related notes

DNS Forwarder

一句话定义

DNS Forwarder(转发器) 是一种 DNS 服务器,它不(一定)自己从根开始递归,而是把收到的查询继续转交给上游的某个递归解析器。

核心机制 / 工作原理

转发链可以很长:

电脑 Stub Resolver

家庭路由器 (Forwarder)

ISP DNS (Forwarder / 递归)

更上层递归解析器

所以你在 Windows 里看到的 DNS 服务器 192.168.x.x 通常只是 Forwarder;真正完成递归查询的可能是运营商服务器。

为什么需要 Forwarder

  • 集中策略:企业内网统一走某个 DNS 做过滤/审计。
  • 减少外联:内网缓存 + 统一出口。
  • 访问控制:只让 Forwarder 出网,终端不能直接访问外网 53。
  • 分流:特定域名发给特定上游(类似 Mihomo 的 nameserver-policy,见 mihomo-dns-redir-host-vs-fake-ip)。

最小例子 / 最小场景

/etc/resolv.conf 里写 nameserver 10.0.x.x,而 10.0.x.x 是一台把一切查询 forward8.8.8.8 的 dnsmasq。终端以为 10.0.x.x 是解析器,实际递归发生在 8.8.8.8

边界与易混淆点

  • Forwarder ≠ 递归解析器:Forwarder 可以完全不碰根服务器;若上游也只转发,则最终必有一个节点真正递归。
  • 排障时「我配的 DNS 是 X」常是误导——X 可能只是转发起点,真正的解析路径要看最末端的递归者。
  • 透明重定向:某些网络会把所有 UDP 53 流量重定向到自己的 Forwarder,导致 nslookup example.com 8.8.8.8 并不真的到达 8.8.8.8(见 dns-filtering-hijacking-pollution)。
  • Forwarder 自己也可能有缓存,是缓存链中的一层(见 dns-caching-hierarchy)。
创建于 2026/7/31 更新于 2026/7/31