SOA 记录是什么
SOA(Start of Authority)是每个 DNS 区域必备且唯一的记录,声明这个区域的权威是谁、管理员怎么联系,以及主从同步与缓存超时的五个参数。它既是区域文件的「元数据」,也是主从服务器判断是否需要同步的依据:序列号一变,从服务器就必须拉取更新。
基本信息
| 类型 | SOA(TYPE 6) |
|---|---|
| 字段 | MNAME、RNAME、SERIAL、REFRESH、RETRY、EXPIRE、MINIMUM |
| MNAME | 该区域的主权威服务器名 |
| RNAME | 管理员邮箱,@ 用点号表示 |
| SERIAL | 区域版本号,变化即触发从服务器同步 |
| 规范 | RFC 1035 §3.3.13、RFC 1912 §2.2、RFC 2308(负缓存) |
典型使用场景
- 排查从服务器不同步:先看主从 SOA 的 SERIAL 是否一致
- 修改记录后忘记递增序列号,导致解析结果迟迟不生效
- 调整负缓存时长:MINIMUM 影响「域名不存在」这类否定回答的缓存时间
- 迁移权威服务器时同步修改 MNAME,让外部知道新的权威来源
- 审计区域配置:检查管理员邮箱是否正确可联系
查看 SOA 与同步状态
查看 SOA 与同步状态
dig +noall +answer example.com SOA
# example.com. 3600 IN SOA ns1.example.com. hostmaster.example.com. (
# 2026101301 7200 3600 1209600 300 )
dig @ns1.example.com example.com SOA +short # 主服务器上的序列号
dig @ns2.example.com example.com SOA +short # 从服务器上的序列号,应一致
dig +trace example.com SOA | tail -5 # 看权威链条从哪里开始
rndc reload example.com # BIND 上重载区域(需权限)字段读法与取值
| 字段 | 含义 | 常见取值 |
|---|---|---|
| MNAME | 区域主权威服务器域名 | ns1.example.com |
| RNAME | 管理员邮箱,点号代替 @ | hostmaster.example.com |
| SERIAL | 区域版本号,通常用日期加序号 | 2026101301 |
| REFRESH | 从服务器检查更新的间隔(秒) | 7200 即两小时 |
| RETRY | 同步失败后的重试间隔(秒) | 3600 |
| EXPIRE | 超过此时长未同步则判定区域失效 | 1209600 即两周 |
| MINIMUM | 影响否定回答的缓存时长 | 300 至 3600 |
SERIAL 不只是版本标记:从服务器按它判断「我的是不是旧的」。改完记录忘记递增 SERIAL,从服务器根本不会来同步,表现为主服务器解析正确、备用服务器还返回旧结果——这是主从架构里最容易忽略的一条。
MINIMUM 常被误解为「默认 TTL」:按 RFC 2308,它实际控制的是否定回答(NXDOMAIN 等)的缓存时长,而 SOA 记录自身的缓存时长由记录外层的 TTL 决定,两者不是一回事。