首页/网络/协议速查/NOTIFY 与主从同步时序
DNS 与域名解析60 条

NOTIFY 与主从同步时序

主服务器改完区域立刻用 NOTIFY 通知从服务器「来拉新数据」,比等 SOA refresh 到期更快;SOA serial 必须严格递增。

协议速查网络更新于 2026-10-13

NOTIFY 与主从同步

主服务器改完区域后会立刻用 NOTIFY 通知从服务器「来拉新数据」,比等区域信息里的刷新时间到期快得多。从服务器收到通知后比较序列号,发现自己持有的更旧就发起区域传送拉取新内容。整套机制的关键前提是序列号必须严格递增:用日期格式便于人工管理与识别,但绝对不能回退,回退会被从服务器直接忽略。

基本信息

通知方向主服务器发往从服务器
触发时机区域内容变更后立即发出
从端动作比较序列号,必要时发起传送
关键字段SOA 记录里的序列号
序列号要求只增不减,用日期格式便于管理
兜底机制通知失败时按刷新周期轮询对比

SOA 常见字段

字段含义调优关注点
serial版本号,每次改动递增回退会被从端忽略
refresh从端多久主动检查一次配太长会让故障发现滞后
retry拉取失败后的重试间隔与刷新周期配套调整
expire多久联系不上主端就判定区域过期过长会持续提供旧数据
minimum负缓存相关的最小生存时间影响解析失败的缓存时长

观察序列号与同步

观察序列号与同步
dig @ns1.example.com example.com SOA +short   # 主服务器序列号
dig @ns2.example.com example.com SOA +short   # 从服务器序列号,应当一致
dig example.com SOA +short | awk '{print $3}'  # 序列号是第三个字段
dig @ns2.example.com example.com NOTIFY        # 手工触发通知(需授权)

典型使用场景

  • 变更后确认生效:分别查询主从服务器,核对序列号是否一致
  • 同步故障排查:确认通知是否送达、传送端口是否放行
  • 参数调优:在发现速度与查询开销之间取平衡
  • 迁移演练:确认新权威能正确接收通知并完成同步
  • 审计:检查是否存在序列号长期不变却仍有内容变更的情况
序列号回退是主从同步里最隐蔽的一类故障:主服务器上改动看起来已经生效,从服务器却一直提供旧数据,且不会有明显报错。用日期加序号的格式不仅便于人工识别,也能在跨团队协作时避免有人手工写入一个更小的值。

易错点

  • 刷新周期配得过长,同步故障要很久才被发现,重试与过期参数也要一并调整
  • 序列号回退或被手工改成更小的值,从服务器直接忽略更新
  • 只改了主服务器却忘记触发通知,也没等刷新周期,误判为同步功能坏了
  • 主从服务器序列号不一致时只看主端结论,忽略从端仍在提供旧数据
  • 迁移时未同步刷新周期等参数,新权威的收敛速度与预期不符

数据来源与参考

  • RFC 1996(NOTIFY)
  • RFC 1035 §3.3.13

相关工具

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