首页/网络/网络排障速查/僵尸委派(Lame Delegation)识别
DNS 与解析排查46 条

僵尸委派(Lame Delegation)识别

父域把子域委派给了一台『并不为该子域提供权威服务』的服务器:表现为解析器不断超时/回退,部分解析器返回 SERVFAIL。

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

僵尸委派是什么

僵尸委派(Lame Delegation)指父域把子域委派给了一台并不为该子域提供权威服务的服务器:该服务器收到查询后不返回权威答案,或者干脆拒绝响应。结果是解析器轮询到这台服务器时超时或报错,用户侧表现为『时好时坏』或部分解析器返回 SERVFAIL。常见成因是更换 DNS 服务商后父域 NS 记录未清理干净。

基本信息

适用平台通用 DNS(dig 的 +norecurse 与 +trace)
识别方法直查 NS 列表中的每台服务器,检查是否返回 aa 标志的权威答案
典型症状解析时好时坏、部分解析器 SERVFAIL
常见成因更换服务商后父域 NS 残留旧服务器

典型使用场景

  • 解析结果不稳定:逐台验证 NS 列表,找出失效的那一台
  • 更换 DNS 服务商后的验证:确认旧 NS 记录是否已从父域移除
  • 子域委派上线:确认新委派的服务器确实为该子域提供权威服务
  • 多解析器结论不一致:定位是哪台权威导致的分歧
  • 例行巡检:把 NS 列表逐台验证纳入域名健康检查

识别方法

识别方法
# 非递归直查,检查是否返回权威应答(aa 标志)
dig +norecurse @ns1.example.com sub.example.com A | grep -E 'flags|status'
# 逐台验证 NS 列表中的每一台
for ns in $(dig +short sub.example.com NS); do printf '%s ' "$ns"; dig +norecurse +time=2 +tries=1 @$ns sub.example.com A | grep -o 'flags: [a-z ]*' | head -1; done
# 观察完整委派链条
 dig +trace sub.example.com | tail -20

结果判读

返回情况含义处置方向
带 aa 的权威答案该服务器配置正常继续检查列表中的其他服务器
无 aa 标志的答案疑似僵尸委派核对父域 NS 记录
REFUSED服务器不为该域服务从父域移除该 NS 记录
超时无响应服务器失联或被策略拦确认其可用性或移除记录
僵尸委派的典型时间点是被换掉的 DNS 服务商关停旧服务器:在此之前一切正常,关停当天开始出现间歇性解析失败。修复动作是更新父域 NS 记录并等待 TTL 过期。
修复时只改子域不清理父域委派不会生效:委派信息保存在父域,必须由父域的 NS 记录层面修改。

易错点

  • 把轮询导致的间歇失败当成网络抖动:忽略 NS 列表中有一台已失效的服务器
  • 修复时只改子域不清理父域 NS:问题依旧存在
  • 只验证一台 NS 就下结论:僵尸委派恰恰只在部分服务器上出现
  • 忽略 TTL:父域改动后未等待过期,误判为修复无效
  • 更换服务商时不做双跑验证:旧 NS 关停当天才暴露问题

数据来源与参考

  • RFC 1034(委派机制)
  • RFC 1912:常见 DNS 配置错误(含 lame delegation)

相关工具

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