首页 / 内容指南 / 当前文章

DNS 的 Primary、Secondary、Hidden Primary、SOA Serial、Refresh、Retry、Expire、NOTIFY、AXFR、IXFR、TSIG 和 XFR-over-TLS 有什么区别?

发布于 2026-08-26 · Content Fleet 编辑部

DNS 的 Primary、Secondary、Hidden Primary、SOA Serial、Refresh、Retry、Expire、NOTIFY、AXFR、IXFR、TSIG 和 XFR-over-TLS 有什么区别?

一句话结论

Primary是Secondary获取zone数据的来源;Secondary通过transfer保持权威副本;Hidden Primary不直接列在公共NS中;SOA Serial表示zone版本;Refresh决定正常轮询间隔,Retry决定失败后重试,Expire决定多久联系不上Primary后停止权威服务;NOTIFY提示有变化;AXFR传整个zone,IXFR尝试传差异;TSIG以共享密钥认证DNS消息,XFR-over-TLS加密传输通道。

Primary 是什么

Primary authoritative server持有本地配置或数据库中的原始zone数据,并作为一个或多个Secondary的transfer来源。它不一定直接对公网查询提供服务,也不必等同于SOA MNAME所指主机,具体架构由运营配置决定。

Secondary 是什么

Secondary authoritative server通过AXFR或IXFR从已配置Primary获取zone副本,并对外提供相同权威数据。它不是缓存递归解析器;复制的数据具有权威性,且在Expire之前可独立响应客户端。

Primary 与旧称 Master

较新DNS术语使用Primary和Secondary,旧文档及软件配置可能使用Master与Slave。理解时可映射角色,但迁移配置必须查具体产品语法,不能仅批量替换关键字。

Hidden Primary 是什么

Hidden Primary作为transfer源但不列入zone公共NS RRset,不直接承载普通权威查询。公开Secondary从它同步,可隔离编辑与签名系统,减少原始数据源暴露并便于多供应商发布。

Hidden Primary 不是天然不可发现

即使不在NS中,网络流量、配置泄露或错误ACL仍可能暴露它。应使用防火墙、最小transfer ACL、TSIG或TLS认证保护,而不是只依赖“DNS里没写名字”。

Stealth Secondary 是什么

某些Secondary也不在公开NS中,可作为中间transfer源、备份或内部权威节点。它与Hidden Primary的区别在于zone数据来源:前者从其他服务器传输,后者持有原始配置。

Transfer Dependency Graph

多层Primary/Secondary应形成无环依赖图。Secondary可同时作为下游服务器的Primary,但不能出现transfer循环。深层拓扑会增加传播延迟,需监控每一层Serial和更新时间。

SOA Serial 是什么

SOA记录的Serial是32位zone版本号。Secondary比较本地与Primary Serial判断是否需要更新。它不是Unix时间的协议强制格式,也不能用普通整数大小关系替代Serial Number Arithmetic。

Serial 为何不能简单比较

32位值会回绕,RFC 1982定义序列号算术。直接用“远端数字大于本地”在回绕附近会判断错误。DNS软件应实现标准比较,脚本也应调用可靠库或工具。

日期格式 Serial

常见人工格式如YYYYMMDDnn便于阅读,但不是协议要求。一天修改次数超过nn范围、回滚旧zone或自动系统并发更新时容易冲突。数据库驱动系统可使用单调序列,但必须避免倒退。

Serial 不变会怎样

即使zone文件内容改变,Secondary看到相同Serial通常不会transfer,因此继续提供旧数据。每次权威内容变化都必须可靠增加Serial,并在发布管道中把Serial检查作为门槛。

Refresh 是什么

Secondary成功加载zone后等待SOA REFRESH秒,再向Primary查询SOA以检查Serial。它控制正常状态下的最大轮询节奏之一,不是记录TTL,也不决定客户端缓存多久。

Retry 是什么

若SOA检查或transfer失败,Secondary按RETRY间隔再次尝试。Retry通常小于Refresh,以便故障恢复后尽快追上。设置太短会在Primary故障时制造请求风暴。

Expire 是什么

如果Secondary在EXPIRE时间内始终无法成功刷新,它必须停止把旧副本作为有效权威zone提供。Expire是数据安全阈值,避免无限服务过时zone;它不是自动删除zone文件的保证。

Expire 后客户端看到什么

服务器可能对该zone返回SERVFAIL或不再视为已加载,具体表现依实现。监控应在远早于Expire时告警“距过期剩余时间”,而不是等公共解析中断才发现。

Minimum 与 Expire 无关

SOA MINIMUM当前主要参与负缓存TTL语义,不控制Secondary副本保留时间。Expire才定义长期无法联系Primary后的权威有效期。两个字段都以秒表示,因而容易被误配。

NOTIFY 是什么

Primary在zone变化后向Notify Set发送DNS NOTIFY,提示Secondary尽快检查。收到有效NOTIFY后,Secondary通常向通知来源查询SOA,确认Serial变大才发起AXFR或IXFR。

NOTIFY 不携带完整 zone

NOTIFY是best-effort变更提示,不是复制协议。消息丢失不会永久阻断同步,因为Secondary仍按Refresh轮询。防火墙只放行NOTIFY而阻止transfer,Serial会被发现但数据无法更新。

Notify Set 是什么

默认通常包含NS RRset中除SOA MNAME外的服务器,也可显式加入stealth Secondary。多供应商环境应配置精确目标,避免向不接受transfer的公共NS乱发通知。

为什么查询通知来源

深层依赖图中,其他已配置Primary可能尚未获得新版本。Secondary收到NOTIFY后应优先向消息来源查SOA,避免从仍落后的另一个节点判断“无需更新”。

NOTIFY 风暴怎么避免

Primary可随机延迟通知各Secondary,但不应超过Refresh。大量zone同时更新时应控制批次、连接和传输并发;Secondary也应合并重复通知,而不是每条都启动独立AXFR。

AXFR 是什么

AXFR是完整authoritative zone transfer,通过TCP传输整个zone的一致副本。响应可由多个DNS消息组成,通常以SOA记录界定开始和结束。它适合首次同步、增量历史不足或恢复完整状态。

AXFR 为什么使用 TCP

完整zone通常远超UDP消息容量,AXFR规范限定TCP。开放53/UDP供普通查询但忘记允许Primary与Secondary之间53/TCP,是transfer超时的常见原因。

AXFR 的原子加载

Secondary应先完整接收并校验新zone,成功后原子替换正在服务的副本。不能边传边把半个zone暴露给查询;失败时应保留之前有效副本,直到成功更新或Expire。

AXFR 的安全风险

若对任意客户端开放AXFR,攻击者可批量枚举主机名与记录。虽然公开DNS本身可被主动查询,完整transfer仍显著降低收集成本。Primary应按地址和密码学身份限制授权Secondary。

IXFR 是什么

IXFR是incremental zone transfer,Secondary提供当前Serial,请求从该版本到新版本的差异。若Primary保留足够变更日志,能减少带宽和加载成本,特别适合大型且频繁更新的zone。

IXFR 不保证一定增量

Primary缺少所需历史、差异过大或实现策略决定时,可以回退为完整数据响应。网络与容量规划不能假设每次IXFR都很小;监控应区分增量成功和AXFR fallback。

AXFR 与 IXFR 如何选择

首次同步必须获得完整zone;日常更新优先IXFR通常更高效。Secondary可先请求IXFR并接受完整回退。关键不是强制永不AXFR,而是确保两种路径都通过鉴权、防火墙和容量测试。

Dynamic Update 与 IXFR 的区别

DNS UPDATE允许授权客户端修改Primary zone;IXFR让Secondary获取已发生变化的差异。前者改变源数据,后者复制结果。开放Update权限不等于允许Transfer,TSIG key也应按用途分离。

TSIG 是什么

TSIG使用预共享密钥和消息摘要认证DNS消息来源并保护完整性与时间有效性,常用于zone transfer、NOTIFY和Dynamic Update。双方需要预先安全配置同一密钥及算法。

TSIG 不提供机密性

TSIG不会加密DNS内容。能监听链路的观察者仍可看到zone记录,只是难以伪造通过验证的消息。需要防被动监听时使用XFR-over-TLS或受保护网络。

TSIG 与 ACL

IP ACL限制允许发起transfer的源地址,TSIG验证持有共享密钥的实体。两者组合比单独依赖源IP更稳健,但经代理或NAT时要理解实际连接端点。密钥应按Secondary或信任域分离。

TSIG 密钥轮换

先在双方部署新密钥并允许重叠验证,切换签名来源,确认所有transfer与NOTIFY成功后再撤销旧密钥。直接替换会造成Secondary无法更新,直至Expire中断。

XFR-over-TLS 是什么

XoT用TLS承载AXFR或IXFR,为Primary与Secondary之间的transfer提供通道机密性并可提供端点认证。AXFR over TLS称AXoT,IXFR over TLS称IXoT。

XoT 与 DoT 的区别

两者都使用TLS,但用途不同:DoT通常是客户端到递归解析器的DNS查询隐私,XoT专门保护权威服务器之间的zone transfer。端口、认证和连接策略按相应标准配置。

Strict TLS 与 Mutual TLS

Strict TLS让Secondary认证连接到的Primary;Mutual TLS还让Primary认证Secondary客户端证书。部署可结合TLS认证、TSIG和ACL,需按transfer group的威胁模型选择。

Transfer Group 一致策略

一个zone可能经过多层服务器传输。只加密一段而其他段仍走明文,整体zone内容仍有弱点。RFC 9103要求保护目标下整个transfer group采用一致XoT策略,AXFR与IXFR都不能遗漏。

ZONEMD 是什么

ZONEMD为完整DNS zone提供消息摘要,可验证独立zone内容,与传输通道正交。它不替代TSIG或TLS;大型动态zone计算成本也需要评估。

多Primary 架构

Secondary可配置多个Primary并比较Serial、可达性或RTT。多Primary必须来自一致的更新系统,避免两个源独立编辑造成分叉。Serial相同但内容不同是严重配置错误。

Multi-primary 的 Serial 冲突

若两个Primary各自递增Serial并写不同内容,Secondary可能根据先后获取不确定版本。应采用单一写入源、共享数据库或可靠冲突协调,不能把DNS transfer当作双向合并系统。

Anycast Secondary

同一权威服务可在多地点Anycast,但每个节点或集群都需获得一致zone。不要用外部查询只检查一个Anycast路径;应从内部节点指标监控Serial与transfer状态。

常见错误一:只检查文件 Serial

配置文件已加Serial,不代表Primary已成功reload并服务该版本。应查询Primary权威SOA、各Secondary SOA和应用日志,验证实际运行数据而非磁盘文本。

常见错误二:NOTIFY 成功就算同步

NOTIFY响应只说明通知被接受,不证明后续SOA检查或transfer成功。要检查Secondary新Serial、transfer日志和外部权威回答。

常见错误三:TSIG key通用

一个密钥同时用于所有Secondary、Update和控制操作会扩大泄露影响。按用途和对端分离,限制算法、时间偏差、源地址和zone权限,并建立轮换清单。

防火墙检查

普通DNS查询需要53/UDP和必要的53/TCP;AXFR使用TCP,IXFR可涉及UDP或TCP并可能回退。XoT使用TLS连接。实际端口与软件配置应明确,不要只验证ICMP或UDP查询成功。

监控哪些指标

记录每个zone在每个节点的Serial、最后成功SOA检查与transfer时间、transfer类型和字节数、NOTIFY发送与接收、TSIG失败、距Expire剩余时间、加载失败和XoT证书到期。

迁移安全顺序

先让新Secondary可从Primary完成受保护的AXFR并持续接收IXFR/NOTIFY,确认公共查询一致,再把它加入NS和父区委派;等待TTL后才移除旧节点。Hidden Primary迁移也应保留transfer重叠期。

排障顺序

从Secondary权威查询本地SOA Serial,与通知来源Primary比较;检查Refresh/Retry/Expire状态、NOTIFY来源、TCP连通性、ACL与TSIG;确认IXFR历史及AXFR回退;最后检查zone校验和原子加载错误。

FAQ

1. NOTIFY会把新记录推送给Secondary吗?

不会。它只是提示尽快检查SOA,真正数据通过AXFR或IXFR传输。

2. IXFR一定比AXFR小吗?

不一定。历史不足或策略选择时会回退完整transfer,差异很大时也未必更省。

3. TSIG能隐藏zone内容吗?

不能。它提供消息认证和完整性,不提供加密;机密性使用XFR-over-TLS等机制。

4. Secondary联系不上Primary还能回答多久?

在最后成功刷新后通常可服务到SOA EXPIRE期限,具体状态应查询服务器实现。

5. Refresh越短同步越快吗?

轮询会更频繁,但NOTIFY已可快速触发;过短会增加故障时负载,应综合设置。

6. Hidden Primary需要写进公共NS吗?

不需要,这正是隐藏架构的特征;公开Secondary通过私有配置知道其transfer地址。

7. Serial相同是否证明zone内容相同?

按正确运营应相同,但错误多Primary或漏增Serial可能造成同Serial不同内容,需额外一致性检查。

8. XoT后还需要TSIG吗?

取决于认证策略。TLS提供通道保护,TSIG提供DNS消息级共享密钥认证,两者可组合并与ACL协作。

IETF权威资料

  • https://www.rfc-editor.org/rfc/rfc5936.html
  • https://www.rfc-editor.org/rfc/rfc1995.html
  • https://www.rfc-editor.org/rfc/rfc1996.html
  • https://www.rfc-editor.org/rfc/rfc1982.html
  • https://www.rfc-editor.org/rfc/rfc8945.html
  • https://www.rfc-editor.org/rfc/rfc9103.html
  • https://www.rfc-editor.org/rfc/rfc8976.html

最终运行原则

把同步链路拆成明确证据:Serial说明版本,NOTIFY只负责加速发现,AXFR/IXFR复制数据,TSIG验证消息,TLS保护通道,Expire限制旧副本寿命。每个zone都应有无环transfer拓扑、冗余Primary、最小权限密钥、完整TCP路径和距Expire告警。发布完成的判据不是“Primary文件已保存”,而是所有权威节点实际服务同一新Serial并通过内容一致性验证。