即使中间子域不存在,如何检查深层子域的存在?

即使中间子域不存在,如何检查深层子域的存在?

假设test.example.com不存在,并且NXDOMAIN在运行时给出dig,但我知道subdomain.test.example.com存在,并且NOERROR在执行相同操作时给出,是否有办法检查深层子域是否存在,即使中间子域可能不一定存在。具体来说,我在探测或查询时寻找subdomain.test.example.com指向深层子域存在的提示?

答案1

假设 test.example.com 不存在,并且在运行 dig 时给出 NXDOMAIN,但我知道 subdomain.test.example.com 存在

根据 DNS 规范,这是不可能的。或者换句话说:这意味着该区域的权威名称服务器已损坏。

RFC 8020:NXDOMAIN:下面真的什么都没有

当迭代缓存 DNS 解析器收到 NXDOMAIN 响应时,它应将其存储在其缓存中,然后该节点或该节点下的所有名称和资源记录集 (RRset) 都应被视为无法访问。对此类名称的后续查询应引发 NXDOMAIN 响应。

答案2

我同意帕特里克的观点,但我想更清楚地说明一下实际的期望是什么:

如果在 处有记录subdomain.test.example.com但在 处没有记录test.example.com,这并不意味着test.example.com“不存在”,这种空节点类型的术语是空的非终结符(有时是耳鼻喉科)。

当你查询某个空的非终端名称时,正确的响应类型是不是 NXDOMAIN(这意味着“没有这个名字”)而是NODATA(这意味着“没有所请求类型的记录”,在 ENT 情况下,无论您要求哪种类型)。

为了清楚起见,在部分中,NODATA响应类型是:响应代码。NOERRORSOAAUTHORITY

有迹象表明可以存在进一步的子域的原因是,您收到的响应不是NXDOMAIN。如果您还确定此名称下没有记录(即,它是一个空的非终端),则一定有一些子域(向下一个或多个级别)实际上有某些东西。

另一个方面,即问题所暗示和 Patrick 所讨论的,是一些名称服务器实现存在错误,NXDOMAIN甚至在响应不适当的情况下也会发送。
这种实现缺陷会导致提供不一致的数据,其中本应是树形结构的东西实际上被分解成不相连的部分。这种行为在任何依赖于先前观察到的响应的解析器看来尤其失败,因为NXDOMAIN这些响应实际上意味着什么,并且无法在 DNSSEC 中表示出来。

相关内容