权威服务器无响应是什么
递归解析返回 SERVFAIL,而域名本身配置看起来没问题时,常见原因是权威服务器不可达、未在 53 上监听、被封禁或对特定来源拒绝服务。定位方法是从权威服务器视角取证:先列出该域的 NS 记录,再逐台直查,用较短的超时快速暴露失联的那一台,最后用非递归查询确认是否返回权威应答(AA 标志)。
基本信息
| 适用平台 | 通用 DNS(dig、nslookup、在线探测工具) |
|---|---|
| 关键命令 | dig NS、dig +norecurse、dig +time=2 +tries=1 |
| 关键标志 | aa(权威应答)、rcode(SERVFAIL/REFUSED/TIMEOUT) |
| 常见成因 | 权威服务器宕机、防火墙仅对部分来源放行、上游封禁 UDP 53 |
典型使用场景
- 递归返回 SERVFAIL 且与 DNSSEC 无关:逐台直查权威定位失联节点
- 更换 DNS 服务商后解析不稳定:确认老 NS 是否已下线而记录仍在
- 部分地区解析失败:确认是路径问题还是权威侧对来源的限制
- 主从架构排查:确认从机是否在监听并应答查询
直查各权威与委派目标
直查各权威与委派目标
# 先列出该域的全部权威
dig +short example.com NS
# 逐台直查,用短超时快速暴露失联节点
for ns in $(dig +short example.com NS); do printf '%s ' "$ns"; dig +time=2 +tries=1 @$ns +short example.com A || echo TIMEOUT; done
# 非递归查询看是否返回权威应答
dig +norecurse +time=2 @ns1.example.com example.com | grep -E 'status|flags'
# 观察是否需要 TCP 才会应答(部分网络屏蔽 UDP 53)
dig +tcp +time=3 @ns1.example.com example.com | grep -E 'status|flags'结果判读
| 返回情况 | 含义 | 下一步 |
|---|---|---|
| 带 aa 标志的正常答案 | 权威应答正常 | 问题可能在递归侧或路径 |
| TIMEOUT | 该权威无响应 | 检查其监听状态与来源 ACL |
| REFUSED | 拒绝你的来源 | 确认是否对特定网段放行 |
| SERVFAIL | 服务器内部处理失败 | 查该服务器的日志与后端数据 |
| UDP 失败但 TCP 成功 | UDP 53 路径被拦 | 检查中间防火墙与安全策略 |
权威服务器可能对『非授权来源』限速甚至伪造响应:从一个网络环境测出异常,不代表全局故障。多环境(含公网探测)交叉验证才能定性。
忘记加 +norecurse 会让权威拒绝递归查询而返回 REFUSED,容易被误读成配置错误:对权威服务器发起查询时必须显式使用非递归。