先看现象。必应站长工具的抓取诊断对 www.lu0.cn 一直返回 DNS 解析失败,可我在自己机器上跑 nslookup 能拿到 5 个 A 记录,TTL 还剩 300 秒。站点前面挂着 CDN,回源用的是另一组地址。

真正麻烦的地方在于,几个原因的现象几乎一样。权威 NS 对境外递归节点响应很慢,Bing 出口节点等到超时就直接记成解析失败。还有一种是域名同时存在 CNAME 和 A 记录,部分递归解析器走到 CNAME 链中间就断了。

还有一种情况,解析记录改过 IP,个别节点还缓存着旧地址,连过去 SYN 无响应也被归进 DNS 失败。

另外,DNSSEC 签名过期,做验证的递归服务器拿不到可信应答,只能返回失败。

先换公共递归服务器模拟境外解析

nslookup www.lu0.cn 1.1.1.1

从根域逐级追一遍权威应答

dig +trace www.lu0.cn A

随后确认是否存在 CNAME 与 A 混用

dig www.lu0.cn CNAME +short

剩下的就是把解析结果和报错时间点按 UTC 对齐

改完先别撤,确认这几项。第二天抓取诊断里解析失败的记录归零,抓取统计的错误分类中 DNS 一项占比降到一成以下,日志里开始出现正常的 200 抓取。

这里还有个坑。站点挂 CDN 时 Bing 解析到的是边缘地址,报错时间点要按 UTC 折算,否则很容易把正常解析误判成故障。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189