不同的权威服务器应该提供它们所服务的区域的一致视图。当身份验证检查不一致时,查询每个公布的权限是否具有相同的所有者、类型和类别。在标准化之前保留未经编辑的响应;简洁的值列表可以隐藏引用、错误和缺失的权威标志。
确定哪些服务器很重要
参考: RFC 1034 §4.2, RFC 1035 §4.1.1.
读取父委托并将其与子顶点 NS 集进行比较。将通告的服务器名称解析为地址并记录查询了哪个地址。一个主机名可以有多个地址,并且任播可以将相同的地址路由到不同的实例。因此,一次成功的查询并不能证明所有可能的后端都是当前的。
使用直接非递归查询,例如 挖@SERVER_IP _dmarc.example .test。 TXT +norecurse。检查响应代码和 AA 标志、答案和权限部分以及任何别名。来自您期望具有权威性的服务器的推荐或非权威响应与具有过时内容的权威答案是不同的结果。
比较数据而不破坏结构
参考: RFC 2181 §5, RFC 1035 §3.3.14, RFC 1982 §3.2.
DNS记录集排序不是策略优先级。对独立记录对象进行排序以进行比较,但保留每个记录对象内的字符串顺序 TXT记录。 TTL 可能因配置或查询上下文而异;记录下来,而不是默默地丢弃它们。递归 TTL 倒计时不应像权威机构的区域配置一样进行比较。
查询 SOA 作为支持上下文。 SOA 序列不是区域的哈希值。匹配的序列不能证明匹配的记录,并且较大的打印整数并不普遍较新,因为序列算术会换行。根据RFC 1982 ,未定义正好相隔一半串行空间的比较;不要强迫他们接受较新/较旧的排序。直接比较所请求的数据并使用提供商的传输或发布日志来解释差异。
再现分歧和无害的重新排序
为 example.test 创建两个独立的权威。两者都发布相同的MX集,但以不同的顺序返回其记录。预期的标准化比较是相等的。接下来给权限A _dmarc.example.test TXT "v=DMARC1; p=none" 和乙 _dmarc.example.test TXT "v=DMARC1; p=reject"。即使两个 SOA 系列故意相同,预期的比较也是不平等的。
使用相同的类型和选项查询两个权限。存储服务器地址、时间戳、响应代码、标志、完整记录和序列。下面保留的历史环回观察对原始离线比较进行了补充。没有更改公共政策或生产DNS服务器。
修复发布路径
参考: RFC 1034 §4.3.5, RFC 8767 §4.
检查一台服务器是否是过时的辅助服务器、是否仍在委派中存在已退休的提供程序或从未收到预期更新的目标。修复支持的发布或传输路径,而不是在多个面板中进行随机重复编辑。确认更改后每个测试机构的预期数据相同。
当怀疑任播或分割视图时,重复相关网络的观察。区分有意的观点政策和偶然的公众不一致。以递归和代表性邮件证据结束,因为权威协议本身无法消除已缓存的答案或证明消息的身份验证。
保留历史实验室证据
保留的捕获日期为 2026 年 11 月 7 日。以下描述的是有限的历史观察,而不是EmailAuth.ai的新执行或测试。
返回对两个环回固定区域权限的实际 UDP 查询 p=none 和 p=reject 对于同一个绝对TXT所有者。两个响应都设置了 AA。捕获保留每个端点、UTC 时间、TTL、响应类型、代码和线路字节。这表明真实观察到的实验室不一致;它不调查公共选播服务。捕获标签为authority_A_policy;权威_B_政策。保留的跑步者和原始捕获包含在本审查包中作为历史证据。他们接受了检查,但没有重新进行本次审查。生产DNS , DNSSEC SMTP结果仍未经过测试。