DNS 解析链路与排障速查¶
DNS 问题往往表现为“偶发、慢、跨网络差异明显”。排障时先确认:客户端是否拿到了正确的 DNS 服务器、是否命中缓存、是否存在分流/污染、权威记录是否正确。
1. 解析链路(从客户端到权威)¶
- 客户端 stub resolver → 本地/网关 DNS(递归)
- 递归解析器:根 → TLD → 权威(并做缓存)
- 权威 DNS:返回 A/AAAA/CNAME/NS 等记录
2. 先看“用的谁的 DNS”¶
Windows:
Get-DnsClientServerAddress
Linux:
cat /etc/resolv.conf
resolvectl status 2>/dev/null || true
3. 常用排障命令¶
dig example.com A
dig +trace example.com
dig @8.8.8.8 example.com
nslookup example.com
关注点:
- 是否返回 CNAME 链过长
- TTL 是否异常(太短导致频繁回源,太长导致修复传播慢)
- 是否存在 split-horizon(内外网返回不同结果)
4. 典型问题清单¶
- 解析“慢”:递归缓存未命中、上游丢包、EDNS/MTU 问题、DoT/DoH 代理不稳定
- 解析“错”:本地 hosts 覆盖、公司代理/网关劫持、过期缓存未刷新
- 解析“不到”:权威未生效、NS 配置错误、域名未委派、区域传送/防火墙阻断