dig AXFR 是什么
AXFR 是 DNS 区域传送协议:客户端向权威服务器请求整个 zone 的数据。运维侧用它对账主从同步、核对记录是否一致;安全侧则把它当作审计项——不应无条件对任意来源开放,否则等于把全部主机名与内网结构公开。排查时要区分『被拒绝』与『传送中途失败』,两者指向完全不同的问题。
基本信息
| 协议要求 | AXFR 必须走 TCP 53(不是 UDP) |
|---|---|
| 适用平台 | BIND 9(dig)、Windows(部分工具)、各类权威服务软件 |
| 授权前提 | 仅对自有域名与获授权服务器执行 |
| 常见结果 | 成功输出整个 zone;被拒为 REFUSED;中途失败为连接中断 |
典型使用场景
- 主从对账:比较主从两侧 zone 内容是否一致
- 迁移前备份:把旧服务商的 zone 数据完整取回
- 安全审计:确认自有权威服务器未对公网无条件开放 AXFR
- 故障定位:判断是记录配置问题还是同步问题
- 清单核对:整理某域下实际存在的全部主机名
区域传送尝试
区域传送尝试
# 标准 AXFR 请求(默认即走 TCP)
dig AXFR example.com @ns1.example.com
# 显式指定 TCP,排除 UDP 相关干扰
dig AXFR example.com @ns1.example.com +tcp
# 只统计返回的记录条数,用于主从比对
dig AXFR example.com @ns1.example.com | grep -v ';' | wc -l
# 与授权从机地址比对,确认 ACL 是否按预期放行结果判读
| 结果 | 含义 | 处置方向 |
|---|---|---|
| 完整输出 zone | 来源已获授权 | 核对记录内容与序列号 |
| Transfer failed | 被拒绝或连接问题 | 检查 allow-transfer 与来源地址 |
| REFUSED | 服务器明确拒绝 | 确认 ACL 配置是否按设计收紧 |
| 传送中断 | TCP 连接被中断 | 检查中间设备会话老化与超时 |
主从对账时不要只比记录条数:序列号、TTL、记录类型与目标名都要核对,条数相同但内容不同的情况并不少见。
仅对自有域名与获授权服务器执行 AXFR:无条件允许区域传送会把全部主机名与网络结构暴露给任意人,在安全审计中属于明确的发现项。