DNS Resolver 指南

如何比较公共 DNS、本地 ISP DNS 与企业 Resolver 的返回差异

同一个域名在不同网络下返回不同答案,并不总是“DNS 坏了”,很多时候只是不同 resolver 的缓存状态、ECS 行为、区域策略或本地运营商处理方式不同。这个 guide 的目标,是把“为什么不同网络解析结果不一样”讲清楚。

  • 比较 public DNS 与 ISP DNS
  • 理解缓存与 ECS 影响
  • 帮助定位解析差异来源

什么时候该单独比较 resolver?

适合单独看 resolver 的信号

  • ✓同一地区不同网络返回不同 IP
  • ✓公共 DNS 与本地 DNS 结果不一致
  • ✓切流后部分用户长时间仍命中旧节点

为什么 resolver 会不同?

不同 resolver 的缓存寿命、递归路径、ECS 支持、运营商本地优化、污染防护和策略规则都可能不同。你看到的差异,往往并不是随机的,而是由这些机制共同造成的。

一个更稳的 resolver 对比顺序

1

确认比较对象

明确是在比较公共 DNS、本地 ISP DNS、企业内部 DNS,还是某个应用内置的解析路径。

2

对比返回记录

看 A、AAAA、CNAME 是否不同,不要只记住“能不能解析”。真正有价值的是它把流量导去了哪里。

3

检查 TTL 与缓存状态

如果刚刚修改过记录,差异可能只是新旧答案并存。TTL 决定了“不同 resolver 多久才会看见同样的新结果”。

4

最后验证访问影响

即使 resolver 返回不同,也要继续对比 HTTP 与 latency,确认这种差异是否真的对应着更慢、更不稳定或更差的边缘质量。

常见 resolver 差异通常意味着什么?

公共 DNS 更快命中新节点

这往往意味着公共 DNS 的缓存已刷新,而本地 ISP DNS 仍保留旧答案。它未必是错误,但会导致一段时间内用户体验分裂。

本地 ISP DNS 命中更近节点

这通常说明本地 resolver 对真实地理或网络位置掌握更准确,或者存在本地化优化。但它也可能造成与你用公共 DNS 验证时看到的结果不一致。

下一步看哪里?

如果你已经确认 resolver 不同导致命中不同边缘,继续看 DNS guide 做更广范围对比;如果你要验证这种差异是否影响页面行为,继续看 HTTP guide。