首页/网络/网络排障速查/权威服务器无响应:从解析器视角取证
DNS 与解析排查46 条

权威服务器无响应:从解析器视角取证

当递归返回 SERVFAIL 且与 DNSSEC 无关时,常见原因是权威服务器不可达/未监听/被封:用 +norecurse 直查权威并用 +time 快速失败取证。

网络排障速查网络更新于 2026-10-13

权威服务器无响应是什么

递归解析返回 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,容易被误读成配置错误:对权威服务器发起查询时必须显式使用非递归。

易错点

  • 只从一个网络测权威就宣布宕机:实际是本方向到 53 端口的路径问题
  • 忘记 +norecurse:权威拒绝递归查询,返回的 REFUSED 被误判为配置错误
  • 只看 NS 列表不逐台验证:失联的那一台被隐藏在轮询中,表现为『时好时坏』
  • 忽略 UDP 与 TCP 的差异:部分网络只拦 UDP 53,用 +tcp 可快速验证
  • 把 SERVFAIL 一律归因于权威:也可能来自父域的 DS 或委派配置问题,需要交叉排除

数据来源与参考

  • RFC 1034(权威服务器角色)
  • BIND 9 dig 手册(+norecurse)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌