版本信息最后核对:2026-10-25
权威 DNS 切换和记录变更不是一回事。记录变更只改 zone 内容,权威服务器不变;提供商切换要改父区的 NS 委派,影响所有解析器。两者都可能受 TTL 和缓存影响,但 NS 委派的 TTL 通常由父区或注册局控制,不能像普通记录那样提前随意调低。切换完成也不代表全球立即生效,必须按缓存时间观察。
dig +short NS example.com
dig +short SOA example.com
dig +short DS example.com
dig +dnssec DNSKEY example.com
dig +trace example.com
如果域名有子域委派或独立 zone,逐个列出,避免只迁移主域而遗漏子域。确认注册商账号可用、没有被锁定、双因素认证有效,并准备好回滚所需的权限。
dig AXFR @<old-ns> example.com > zone-before.txt
AXFR 常被限制,不能作为唯一手段。导出后检查 A、AAAA、CNAME、MX、TXT、SRV、CAA、NS、通配符、权重、优先级、地理路由、健康检查和 TTL。特别核对域名验证 TXT、邮件 SPF/DKIM/DMARC、CDN 和 API 记录,这些记录缺失往往在切换后数小时才暴露。
制定 TTL 策略。对准备变更的普通记录,在切换前把 TTL 降到提供商支持的低值,并至少等待一个旧 TTL 周期,让旧缓存自然过期。降低 TTL 不会改变已经缓存的结果,也不能缩短父区 NS 的缓存时间。不要为了迁移把所有记录都改成极低 TTL,增加权威服务器压力;切换稳定后再逐步恢复合理值。
处理 DNSSEC。未签名域名只需关注 NS 委派;已签名域名必须保证父区 DS 与当前仍对外服务的权威区发布的 DNSKEY 匹配,否则验证型解析器会返回 SERVFAIL。常见路径有三条:新提供商导入原密钥并保持 DS 不变;新提供商使用新密钥时做双签名/双 DS 过渡(先在当前权威区和新 zone 都发布新 DNSKEY,再更新 DS,最后切换 NS);或者经批准后临时移除 DS,切换完成再重新签名。每条路径都要在测试域名上验证,不能在生产上边切换边试。
在新提供商侧预配置。创建 zone,导入记录,确认 NS 集合、TTL 下限、CNAME 在 apex 的处理方式、代理或别名功能、地理路由和健康检查行为。不同提供商可能把 CNAME 扁平化、改写 TTL 或代理流量,导出再导入后必须逐条比对实际应答,而不是只比对控制台表格。
预验证新权威服务器。直接向新 NS 查询,绕过递归缓存,确认应答权威、记录完整、DNSSEC 签名有效:
dig @<new-ns> example.com A +norecurse
dig @<new-ns> example.com MX +short
dig @<new-ns> example.com TXT +short
dig @<new-ns> example.com DNSKEY +dnssec
同时检查 IPv4/IPv6、TCP/UDP、EDNS 和大小写混合查询。新旧应答应逐条一致,差异必须能解释。
记录切换前的 NS、SOA、DS、关键记录和多个解析器的应答,保存导出文件与时间戳:
dig +short NS example.com > /backup/ns-before.txt
dig +short DS example.com > /backup/ds-before.txt
dig example.com A +noall +answer > /backup/a-before.txt
dig example.com MX +noall +answer > /backup/mx-before.txt
同时记录父区 NS 的 TTL 和当前 DNSSEC 算法、key tag。后续验证要能回答“切换前是什么、切换后是否一致”。
只对将要变更的记录降低 TTL,等待至少一个旧 TTL 周期。对 NS 委派,要接受父区缓存无法提前缩短;对 MX、CAA、TXT 等邮件和安全记录,提前通知相关团队,避免验证或邮件链路在切换窗口中断。降低 TTL 后再次确认权威服务器返回的是新 TTL,而不是提供商缓存了旧值。
把旧 zone 导入新提供商,按名称、类型、值、TTL、优先级和权重做归一化比对。重点检查:
建议用基础设施即代码生成计划并审查差异,但要把提供商自动添加的记录纳入比对。发现差异先修正,不要带着已知差异切换。
如果新提供商沿用原密钥,确认 DNSKEY 与现有 DS 匹配、签名有效后再切 NS。如果使用新密钥,不要在旧权威区仍对外服务时先把 DS 指向一个旧区没有发布的新密钥;应采用双签名/双 DS 过渡:先在当前权威区和新 zone 都发布新 DNSKEY 并等待缓存,再更新 DS,确认每个仍被解析器使用的 DS 都能在当前对外权威区找到对应 DNSKEY,最后切换 NS。父区可能同时容纳多个 DS,过渡期可保留新旧 DS,但每个 DS 都必须能在当前权威区找到对应 DNSKEY;不满足时应先在测试域名演练,或经批准走临时移除 DS 的降级路径。
如果选择临时移除 DS,必须明确这会降低 DNSSEC 保护,属于有安全取舍的变更,需要业务和安全负责人批准。移除和恢复都要留出缓存时间,不能把“先关 DNSSEC 再慢慢修”当作常规操作。
在注册商或父区把 NS 记录替换为新提供商分配的集合。确认集合中的每个 NS 都可达、权威且提供相同 zone 内容;不要在旧 zone 与新 zone 内容不一致时混用两套 NS,否则不同解析器可能得到不同答案。若注册局要求 glue 记录,提前确认地址正确。
切换后立即检查父区委派和完整解析链:
dig +short NS example.com @<parent-ns>
dig +trace example.com
dig @<new-ns> example.com SOA +norecurse
+trace 能看到委派路径和最终权威服务器,适合确认父区是否已经返回新 NS。随后从多个公共解析器和不同地域查询,观察缓存逐步过期后的结果。
持续观察权威查询日志、NXDOMAIN 和 SERVFAIL 比例、DNSSEC 验证结果、解析延迟、邮件投递、CDN 和 API 可用性。至少覆盖一个完整 TTL 周期和一次业务高峰。旧提供商保持在线、zone 不变,直到确认新解析稳定且回滚窗口结束;之后先导出最终 zone,再按流程停用旧 NS 和旧账号。
dig +trace 能到达新权威服务器,应答带权威标志。delv 验证通过,没有 SERVFAIL。新权威服务器应答错误或缺少记录。 先修正记录并直接查询新 NS 验证;如果短时间无法修复,回滚父区 NS 到旧提供商。由于缓存存在,回滚不会立即对所有解析器生效,必须持续观察并按 TTL 估算恢复时间。
DNSSEC 验证失败。 这是最高优先级问题,通常表现为 SERVFAIL。检查 DS 是否指向当前 DNSKEY、算法是否受支持、签名是否过期、父区是否仍缓存旧 DS。能修则补发 DNSKEY 或更新 DS;不能及时修复时,回滚 NS 到旧签名区,或在批准后临时移除 DS,但必须记录安全风险和恢复时间。
解析结果不一致。 检查父区 NS 集合是否混入新旧提供商、glue 是否正确、新提供商各节点是否同步、是否存在地理路由或代理差异。不要通过继续增加 NS 来“稀释”问题,每个 NS 都必须能独立提供正确 zone。
注册商或父区操作失败。 确认账号权限、双因素、域名锁和注册局限制。切换前应准备好第二管理员和应急联系方式;如果无法修改 NS,回滚也会受阻,因此不能把注册商可用性当作理所当然。
邮件或业务验证中断。 优先恢复 MX、SPF、DKIM、DMARC、CAA 和验证 TXT,再排查缓存。不要为了尽快恢复而放宽邮件安全策略或删除验证记录,除非明确知道影响范围。
回滚。 把父区 NS 恢复为旧集合,恢复与旧区匹配的 DS,保留新 zone 以便排查。回滚后继续观察至少一个 TTL 周期,确认 SERVFAIL 和 NXDOMAIN 回落;在确认稳定前不要删除任一方的 zone 或密钥。
合上页面,先回答,再展开对照。
小程序版
微信扫码,随时查命令