跳到主要内容

附录 A. 为什么不能直接使用返回 SOA 的所有者名称?

在本文档中, 我们只针对被否定名称正好就是该域名的 NXDOMAIN 应答, 推导某个域不存在. 如果解析器向 TLD example 的名称服务器发送查询, 请求 www.foobar.example 的邮件交换 (MX) 记录, 随后收到 NXDOMAIN, 它只能记录 www.foobar.example (以及其下所有内容) 不存在这一事实. 无论随附的 SOA 记录是否只针对域 example, 这一点都成立. 不能据此推断 foobar.example 不存在. 随附的 SOA 记录表示区域顶点 (zone apex), 而不是最近的现有域名. 因此, 使用 authority 部分中 SOA 记录的所有者名称来推导 "NXDOMAIN cuts", 目前肯定是不可以的.

从 NXDOMAIN 回复中的 SOA 推导某个节点不存在, 当然可能有助于应对随机 qname 攻击, 但这超出了本文档的范围. 这需要解决本节第一段提到的问题. 一种可能的解决方案是: 当收到带有 SOA 的 NXDOMAIN, 且该 SOA 在树中比查询名高出一个以上标签时, 对位于 QNAME 与 SOA 所有者名称之间的域发送请求. (执行 DNSSEC 验证或 QNAME 最小化的解析器无论如何都需要这样做.)