And*_*w B 4 domain-name-system bind glue-record
这个问题是类似的,但没有详细说明为什么NS
无法获得记录的令人困惑的情况。
我们的缓存 DNS 环境之一(RHEL 5.8、BIND 9.3.6-20.P1.el5_8.4)已完全停止为区域返回任何有用的数据。通常这类问题最终会成为陈旧NS
或粘连的记录,但在这种特殊情况下,我似乎甚至无法让缓存报告NS
该区域的记录。
dig @mycache somedomain NS
返回SERVFAIL
。根本没有缓存任何名称服务器记录。dig +trace
显示健康的委托路径,最终名称服务器返回响应。dig
针对最终名称服务器手动运行查询返回有效NS
记录,相应A
记录存在并与胶水一致等。是什么赋予了?为什么NS
我从 DNS 缓存中没有任何记录可以获取,甚至没有错误记录?
如果NS
记录没有权威答案,那么除了无法确定权限之外,没有什么可以缓存的。这是已缓存的内容,DNS 客户端无法获取服务器内存中有关蹩脚名称服务器的信息。(或者更确切地说,这与您将要获得的一样接近)
通常,您可以通过将NS
缓存中的记录与您在 Internet 上找到的内容进行比较来识别陈旧的名称服务器记录的问题,但在这种情况下,没有NS
可缓存的权威记录。胶水记录本身并不具有权威性;没有权威的答案,根本就没有权威的 nameserver。
这里通常发生两件事之一:
dig +trace
正在从您的本地缓存中获得一个中间名称服务器的陈旧答案,目前确实存在问题。我在另一个问题中介绍了这种行为。NXDOMAIN
或SERVFAIL
在追胶记录寻找权威域名服务器时,此事件已被缓存。即使问题已得到纠正,或者胶水已指向其他地方,名称服务器也不会尝试再次请求它,直到内部计时器到期。为相关区域请求缓存清除通常会重置它。后一种情况通常是罪魁祸首。如果您想绝对确定,可以转储名称服务器的运行时缓存并查看内存中的胶水。(即 BIND rndc dumpdb
)请注意,这是一项非常昂贵的操作,除非您可以将转储范围限制为单个区域,并且通常在高负载情况下要避免这种情况。