摘要

  • RESINFO 让解析器用一条权威记录声明 QNAME 最小化、可返回的扩展 DNS 错误代码与 HTTPS 诊断页面。
  • 认证连接或本地 DNSSEC 验证能防止第三方伪造回答,却不会自动核验每项声明是否在具体查询中兑现。
  • 解析器声誉、客户端选择政策、任播节点一致性、查询轨迹与最终业务结果各有自己的证据边界。

最值得警惕的不是假回答

假设客户端已经完成加密解析器发现。它在认证连接中发送 RD=0 的 RESINFO 查询,收到 AA=1、且只有一条格式正确的记录。记录里有 qnamemin,列出了 Blocked、Censored、Filtered 等 EDE,还给出一条 HTTPS 帮助链接。

如果这时有人把解析器标成“隐私已验证”,证据就被抬高了一层。现有收据只能说明这台被认证的解析器作出了这些陈述。它没有展示权威服务器实际看到了哪些标签,没有制造一次受控过滤并检查错误代码,也没有证明同一任播地址背后的另一实例给出相同回答。

RFC 9606 直接承认,加密解析器可能返回不准确的 RESINFO。问题因此不是协议遗漏,而是使用者是否尊重它的边界。认证回答可以是真实来源的不实陈述;来源真实性与内容准确性从来不是同一个判断。

发现、取回与选择是三件事

DNR 或 DDR 可以发现加密 DNS 解析器及其 Authentication Domain Name。发现阶段回答“候选服务在哪里、用什么名称认证”。它既没有替客户端选中服务,也没有描述可选功能是否启用。

随后,客户端以 ADN 为 QNAME 查询 RESINFO。若 DDR 使用 resolver.arpa,也可以查询这个特殊名称。RD 必须清零,因为这份信息属于当前解析器,不该通过普通递归从上游取回。若回答没有 AA,客户端必须丢弃。理解 RESINFO 的解析器应给出恰好一条记录;格式无效的记录不进入判断。

为了抵抗伪造,客户端还要么在已经认证的安全连接中查询,要么自行完成 DNSSEC 验证。resolver.arpa 只能使用前一种办法。一个不理解 RESINFO 的解析器可能把查询递交上游,此后返回的正面答案可能来自别的解析器甚至攻击者。仅看字段内容而丢掉传输上下文,会让一条“权威”外观的记录借来不属于它的身份。

这些步骤分别证明发现关系、直接回答形式与来源完整性。它们尚未证明客户端应当选择谁。

qnamemin 是配置声明,不是逐跳录像

qnamemin 是存在即为真的布尔属性,表示解析器被配置为按 RFC 9156 尽量减少向权威服务器发送的隐私敏感名称。它故意很短,因此也没有携带测试名称、缓存状态、委派过程、例外处理或回退路径。

若要核验行为,运营者需要控制一个域名,准备可说明的缓存状态,在各层权威端观察实际查询,并记录解析器实例、时间和每一步暴露的标签。软件或配置改变后,还要用同一方法复测。

这样的轨迹也只覆盖一次实验。它不能保证所有名称与未来时刻,却比自述多了一项关键东西:执行事实。RESINFO 说“我被这样配置”,权威端轨迹说“这次我确实这样做了”。两者都重要,不能互相冒名。

exterr 说明能说什么,不说明决定是否合理

exterr 列出解析器可能返回的 Extended DNS Error 代码。出现 Blocked、Censored 或 Filtered,表示解析器可以在相关情况下给出这类理由。它不保证每次过滤都有 EDE,不证明过滤规则获得授权,也不证明分类正确或应用会把理由展示给人。

RFC 9606 给出了一个很有价值的纠错环。若客户端实际收到的 EDE 不在列表中,它可以重新查询 RESINFO。若差异仍在,客户端可以认定自述不准确并弃用它。这里,运行中的事实拥有纠正清单的权力。

反方向不能简单推理。一个已声明的代码长期没有出现,可能只是测试没有触发条件,也可能是逐步发布、不同实例或陈旧记录。要分辨这些原因,必须把测试查询、DNS 回答、EDE、预期政策、时间和到达实例放在同一份记录里。

HTTPS 页面不是政策裁判

infourl 指向通用诊断材料与问题报告方式。它必须使用 HTTPS;无效值会被忽略。标准明确把它定位为 IT 人员的排障资料,而非最终用户的选择界面。

HTTPS 可以保护到指定信息服务器的连接,不能证明页面完整、及时或已经执行。写下过滤原则不等于每次过滤都符合原则,提供申诉渠道也不等于申诉获得处理。自动化系统应保存该页面的地址与版本,但不能把它当成授权书或行为测量。

任播让“这台解析器”变成采样问题

共享 ADN 或任播地址的一组解析器实例应该公布一致的 RESINFO。这里的“应该”需要工程执行。不同客户端可能到达不同节点;同一客户端在读取自述与开展测试之间也可能改走另一条路。配置发布往往有先后。

每次采集因此要保存测量位置、目标、连接、时间、TTL,以及能够观察到的实例线索。同一个 ADN 下若出现两种记录,差异本身就是结果,不能用平均值制造一个不存在的统一配置。

反过来,两条记录完全相同也不证明运行路径相同。两个节点可能复制了同一自述,却运行不同版本;也可能在记录短暂不一致时做出相同行为。声明历史与行为历史必须分别版本化,再按时间与路径关联。

声誉属于本地政策

当某项属性无法在选择时直接验证,RFC 9606 建议只有在解析器按照本地政策具有足够声誉时才使用它。声誉可以来自用户配置、管理员配置或内置可信列表。

这条规则把最后决定还给承担查询风险的一方。IANA 统一键名;解析器发表声明;安全连接确认发言者;本地政策决定信任额度。任何登记项和认证回答都不能强迫客户端选择服务。

Lu Heng 强调的运行代码优先原则,在这里不是反标准。恰恰相反,最小共同规范让承诺可以比较,而本地观察防止承诺吞掉现实。RFC 9606 的成功不应以“多少客户端显示绿灯”衡量,而应以差异能否被准确发现和解释衡量。

来源