技术文章 / 网络、VPN 与防火墙

DNS 查询出现 Server Failure 或 SERVFAIL,如何排查转发器、防火墙 53 端口和缓存?

SERVFAIL 表示 DNS 服务器无法完成查询。应从权威区域、转发器、TCP/UDP 53、DNSSEC、超时和缓存顺序排查。

先说结论

SERVFAIL 表示 DNS 服务器无法完成查询。应从权威区域、转发器、TCP/UDP 53、DNSSEC、超时和缓存顺序排查。 现场判断时,先核对“权威区域状态”和“转发器可达性与超时”是否与正常路径一致,再决定是否需要继续处理“TCP/UDP 53 防火墙策略”。

不要先改配置:先确认现象

这类网络与安全边界问题先从“权威区域状态”和“转发器可达性与超时”划定故障边界,再继续核对“TCP/UDP 53 防火墙策略”。先保存当前状态、时间点和一组正常对照,证据明确后再决定是否需要修改生产配置。

从最便宜的检查开始

检查点为什么要看建议动作
01 · 权威区域状态核对权威区域状态的现状、日志和最近变更,并与问题发生时间对齐;先只读确认,再决定是否需要变更。记录“权威区域状态”的当前值、证据来源和检查时间;需要调整时只改一个条件,并保留原配置用于回退。
02 · 转发器可达性与超时核对转发器可达性与超时的现状、日志和最近变更,并与问题发生时间对齐;先只读确认,再决定是否需要变更。把“转发器可达性与超时”的结果与正常对象、日志时间线和实际业务路径对照,先确认它是原因还是伴随现象,再进入变更。
03 · TCP/UDP 53 防火墙策略核对TCP/UDP 53 防火墙策略的当前配置、命中日志和正反向路径;网络类问题要同时验证去程、回程和变更前后的差异。记录“TCP/UDP 53 防火墙策略”的当前值、证据来源和检查时间;需要调整时只改一个条件,并保留原配置用于回退。
04 · 递归与根提示配置核对递归与根提示配置的现状、日志和最近变更,并与问题发生时间对齐;先只读确认,再决定是否需要变更。记录“递归与根提示配置”的当前值、证据来源和检查时间;需要调整时只改一个条件,并保留原配置用于回退。
05 · DNSSEC/EDNS 兼容检查DNSSEC/EDNS 兼容的实际配置和查询结果,并把客户端、DNS 服务器、转发器和防火墙路径放在同一条链路上判断。把“DNSSEC/EDNS 兼容”的结果与正常对象、日志时间线和实际业务路径对照,先确认它是原因还是伴随现象,再进入变更。
06 · 负缓存与服务器缓存核对负缓存与服务器缓存的现状、日志和最近变更,并与问题发生时间对齐;先只读确认,再决定是否需要变更。记录“负缓存与服务器缓存”的当前值、证据来源和检查时间;需要调整时只改一个条件,并保留原配置用于回退。
只读检查示例
nslookup example.com 192.0.2.53
Resolve-DnsName example.com -Server 192.0.2.53

处理时控制变量

  1. 先做只读检查,记录时间点、受影响对象和第一处异常;优先验证“权威区域状态”与“转发器可达性与超时”。
  2. 如果基础连通或配置正常,再把检查推进到“TCP/UDP 53 防火墙策略”“递归与根提示配置”,并保留日志、事件或命中记录作为证据。
  3. 确认“TCP/UDP 53 防火墙策略”与“递归与根提示配置”的证据能够解释现象后再改配置;涉及“DNSSEC/EDNS 兼容”时,先保存原值并写清回退触发条件。
  4. 先在受控对象上完成“负缓存与服务器缓存”相关验证,再扩大到真实用户或业务流量;观察期内同时复查日志和异常访问。

验收要覆盖完整业务流程

  • 从用户或业务入口完成端到端验证,不只验证“权威区域状态”单点状态。
  • 复查“DNSSEC/EDNS 兼容”与“负缓存与服务器缓存”是否达到预期,并确认没有引入新的绕行或权限扩大。
  • 归档“权威区域状态”到“负缓存与服务器缓存”的关键证据、变更前后配置、业务测试和回退点,后续复发时可直接对照。

常见无效操作

  • 把“能解析某个域名”当成 DNS 全部正常,忽略不同记录类型、缓存和转发路径。
  • 为了临时恢复而让终端长期直连公网 DNS,破坏域内解析和审计边界。
  • 一次改多个参数,最后即使恢复也无法知道真正根因。

继续排查时常问的问题

DNS 查询出现 Server Failure 或 SERVFAIL时,第一步应该查什么?

先确认影响范围,并从“权威区域状态”和“转发器可达性与超时”开始做只读验证;第一目标是找到最早出现异常的层,而不是立即改配置。

为什么单个端口或单个测试成功,业务仍然可能失败?

因为完整业务通常还依赖认证、名称解析、后端服务、权限或回程路径。需要继续验证“TCP/UDP 53 防火墙策略”与“递归与根提示配置”等上层依赖。

修复后怎样确认问题不会很快再次出现?

复测业务操作后,再检查“DNSSEC/EDNS 兼容”和“负缓存与服务器缓存”对应的日志与状态,并保留变更记录、观察结果和回退点。

上一篇内网严格禁止上网,业务系统只需解析厂商域名,DNS 条件转发器应该如何设计?下一篇企业部署两台 DNS 服务器后,条件转发器、缓存和根提示是否必须保持一致?

需要结合实际环境进一步判断?