用变更计划取代传播截止日期
DNS TTL 有助于确定何时重新考虑缓存的信息。它不会在全球范围内安排每个接收器开始使用替代品的时刻 SPF 政策或 DKIM 钥匙。不同的解析器在不同的时间获取旧的答案,权威服务器可能并不都提供新数据,并且应用程序可以有自己的查找和重试行为。
有用的变革计划将权威出版物与下游观察分开。 “ DNS主机接受编辑”是比“相关权威服务器返回预期答案”更早的里程碑。这两个语句都没有确定特定邮件接收者用于一分钟前发送的消息的内容。从每个里程碑的证据开始制定时间表,而不是笼统地承诺DNS需要固定的小时数。
了解正在观察哪个 TTL
权威资源记录具有与其发布的数据关联的 TTL。缓存的响应通常会报告缓存数据的剩余生命周期,因此两个递归解析器可以返回具有不同剩余 TTL 的相同文本。这些值描述了不同的缓存状态;它们不是记录预期配置的两个相互竞争的声明。 RFC 1035 ,第 4.1.3 节; RFC 1034 ,第 6.2.1 节.
如果现有记录具有较长的 TTL,则减少该值不会向后到达已存储较旧答案的缓存。在实质性更改之前计划减少,并允许考虑之前的缓存窗口。在将其视为维护计划的一部分之前,请确认较低的 TTL 确实已得到服务。这是规划指导,而不是证明每个缓存都已被观察到。
别名链添加了不同的依赖关系。别名记录和目标记录集可以具有不同的 TTL 和不同的运算符。客户端的短 TTL CNAME 不会强制同时刷新已缓存的目标键。在尝试解释时间之前写下两个名字。
分别对新旧答案进行建模
考虑一个虚构的SPF更新: mail.example.com。解析器 A 在 09:50 获取旧策略,TTL 为 3,600 秒。 10:00,权威运营商将发布的TTL更改为300。10:10,运营商替换策略。解析器 A 的早期条目在其原始缓存生命周期内仍然可用,直到 10:50(没有其他行为)。第一个在 10:10 之后查看的第二个解析器可能已经返回替换内容。
这个例子是发明的算术,而不是测量或保证的到期时间表。它的教训是,在 10:00 降低 TTL 不会重写解析器 A 的 09:50 条目。操作工作表应保留先前的数据、先前的 TTL、权威机构观察到 TTL 更改的时间、内容更改的时间以及后续采样的解析器答案。
对于DKIM轮换,请保留单独的里程碑以发布新版本 选择器,验证其可用性,启动使用它的签名并淘汰旧的选择器。仅DNS缓存算法无法决定先前发送的邮件何时完成验证。发送方的排队、重试和保留要求也属于轮换决策。 RFC 6376 ,第 3.1 和 3.6 节.
包括否定答案和中断行为
新创建的名称可能没有以前的正面记录。解析器可以保存较早的NXDOMAIN或NODATA结果。否定响应的基于 SOA 的生命周期与新发布的 TTL 值不同 TXT记录。因此,更改新的TXT TTL 不会删除之前缓存的缺失。 RFC 2308 ,第 3 节和第 5 节.
对于简单的到期故事来说,还有一个明确的标准例外。 RFC 8767允许在无法权威刷新过期条目时提供陈旧数据。是否发生这种情况取决于解析器和故障条件。不要仅仅因为返回的答案具有较小的非零 TTL,就认为它是新鲜的。 RFC 8767 ,第 4-5 节.
这些案件应该改变调查,而不是导致任意的额外等待期。如果当局不同意,请纠正出版一致性。如果仍然出现否定响应,请检查其原始问题和 SOA 上下文。如果无法访问权限,请恢复或调查可用性,而不是重复编辑已经正确的TXT记录。
选择回答发布问题的观察结果
在更改之前,从相关机构和选定的递归路径捕获准确的记录及其 TTL。然后,针对相同的端点重复相同的所有者、类型和类。包括与受影响环境相关的路径(如果可用);一些公共解析器仍然是样本,而不是对每个邮件接收者的人口普查。
建议的查询是 挖@RESOLVER_IP mail.example.com 。 TXT, 与 挖掘@AUTH_IP mail.example.com 。 TXT +norecurse。使用 UTC 时间戳保存完整响应,并在使用前标记所有占位符。本地缓存刷新仅更改本地缓存路径。它无法清除远程接收器的递归缓存,因此它不是全局完成控制。
准确报告结果:哪些权威机构同意,哪些采样解析器返回新值,以及哪些观察结果仍然缺失。然后通过预期服务发送受控消息并检查实际身份验证身份和接收者结果。此草案未执行任何DNS查询或消息测试。所需的解析器比较,包括 TTL、响应类型、权限和观察时间,仍处于开放状态。