将权威DNS更改移至解析器获取域数据的位置。一个成功的 名称服务器 变化并不能证明 SPF, DKIM, DMARC 或接收路线幸存。在更改委派之前保留有效记录和依赖关系,并保持旧服务和新服务可用,同时缓存可以使用其中之一。
盘点有效区域
参考: RFC 1034 §4.2, RFC 1035 §3.3.14, RFC 6376 §3.1.
识别当前的父委托和所有权威服务器。从实际DNS主机获取授权导出或 API 清单。普通查询无法枚举所有可能的情况 DKIM选择器,因此将导出与发送服务配置和最近签名的消息标头结合起来。包括 apex SPF 、 DMARC 、活动和退休选择器、自定义 返回路径 记录、 MX 、它们的地址依赖关系以及部署的传输策略记录。
记录准确的所有者名称、类型、TTL 和值。保留TXT资源记录边界和字符串片段。清点别名和子委托,而不是仅复制递归查找看到的最终值。诸如扁平化或托管记录之类的提供者功能需要在目的地具有明确的等效功能;它们可能无法在基本区域文件导出中幸存。
在切换之前构建目的地
参考: RFC 4034 §5, RFC 4035 §2.4.
将审核后的数据导入目的地,检查差异并直接查询每个新的权威服务器。其 SOA 和 apex NS 值可能故意与旧提供商不同;仅当迁移计划明确授权更改时,身份验证数据才应有所不同。检查相对名称输入是否不重复区域后缀。
对于签名区域,请协调父 DS 和子 DNSKEY 转换与提供商支持的迁移过程。复制普通记录而不进行协调 DNSSEC 可以使验证解析器拒绝其他可见的数据。请勿删除 DS 或禁用验证作为临时默认设置。在安排搬迁之前确定确切的连续性或过渡程序。
重现丢失选择器故障
使用名为 example.test 的隔离实验室区域。旧当局有 示例.测试。 TXT中的 300 个“ v=spf1 -all ”, _dmarc.example.test. 300 IN TXT "v=DMARC1; p=none" 和 s1._domainkey.example 。 300 IN TXT “夹具=选择器存在”。最后一个值是标记,而不是DKIM密钥。准备一个故意省略 s1 的目标副本。
跑步 挖掘@OLD_IP s1._domainkey.example 。 TXT +norecurse 和 挖掘@NEW_IP s1._domainkey.example 。 TXT +norecurse,替换实验室服务器地址。预期的比较确定了新权威机构中缺失的标记。恢复它,重复所有确切的所有者/类型查询并保留前后答案。此夹具测试库存完整性,不是有效的 DKIM签名.
切换并观察两条路径
参考: RFC 1034 §4.2, RFC 2308 §5, RFC 8767 §4.
如果支持的计划需要,请提前充分降低适用的 TTL;旧的缓存 TTL 不会追溯缩短。 RFC 8767还允许在指定的刷新失败条件下进行有界陈旧服务,因此 TTL 并不是通用的消失期限。通过授权注册工作流程更新父委派,然后观察父引用和递归解析以及直接的新服务器答案。委托、肯定答案和否定答案可以有不同的缓存历史记录。
保留旧的DNS服务,直到迁移的相关缓存和操作条件清除为止。回滚是另一种分布式更改,而不是瞬时撤消。仅在记录一致、验证解决方案在适用的情况下有效并且已测试代表性合法邮件路径后才关闭。生产迁移和邮件测试仍悬而未决。下面保留的历史装置提供了一个有限的DNS保留示例。
保留历史实验室证据
保留的 2026 年 11 月 7 日捕获(已检查但未在此处重新运行)记录了隔离套接字实验室向新旧固定区域权限查询s1._domainkey.example .test。目的地最初返回NXDOMAIN ,而旧权限返回标记。在历史跑步者中描述的合成添加之后,目的地返回标记。保留的捕获保留了这种狭隘记录保存情况的确切查询名称和之前/之后的答案;这不是客户迁移计划或批准。捕获标签为migration_missing_s1;迁移_旧_s1;修复后迁移。历史跑步者和原始捕获包含在此评论包中;他们的存在并不是新的执行主张。生产DNS 、 DNSSEC和SMTP结果仍未经过测试。