← 中文资源

简体中文版本

DNS SERVFAIL — DNSSEC、委派与解析器故障

对比不同解析器结果,直查权威服务器并用 delv 验证 DNSSEC,修复委派缺失、签名过期与转发器故障导致的 SERVFAIL。

阅读英文原文

现象

dig 返回 status: SERVFAIL,域名之前一直正常;部分解析器失败、部分能返回答案;整个 zone 的所有记录类型都失败;公共解析器返回 SERVFAIL,而直接查询权威服务器却有响应。

诊断

先确认失败来源,再绕过递归解析:

dig +noall +comments example.com
dig @1.1.1.1 example.com +noall +comments
dig @ns1.example.com example.com SOA +norecurse
delv example.com
dig +trace example.com | tail -30

若权威服务器直接返回 NOERROR 和 SOA,说明 zone 已加载,问题在委派或 DNSSEC 验证。delv 会给出 secure、insecure、bogus 或 indeterminate,其中 bogus 表示验证失败,常见于 RRSIG 过期、DNSKEY 缺失或 DS 与当前密钥不匹配。+trace 展示从根到权威的委派链,可发现 NS 记录指向非权威服务器或缺少 glue 记录。

修复

恢复权威服务并保证各服务器数据一致;在注册商处修正 NS 与 glue;DNSSEC 故障需发布匹配的 DNSKEY 与 DS,并在签名过期前重新签名 zone,同时递增 SOA serial 让从服务器同步。只有单个解析器异常时,应修复其转发器或清除缓存,而不是关闭 DNSSEC 验证。

rndc sign example.com
rndc reload

移除 DS 会让整个 zone 失去 DNSSEC 保护,且传播缓慢;故障期间更改 NS 还可能因 TTL 缓存延长影响时间。

验证

分别查询权威服务器与至少两个公共解析器,均应返回 NOERROR 且答案一致;delv 应报告 secure;等待负缓存 TTL 过期后,原先的 SERVFAIL 应消失。若仍失败,先复查父域委派,再考虑调整 DNSSEC。