这个问题是相似的,但没有详细说明为什么无法获得NSlogging的混淆案例。
我们的一个cachingDNS环境(RHEL 5.8,BIND 9.3.6-20.P1.el5_8.4)已经不再为区域返回任何有用的数据。 通常这种问题最终是一个陈旧的NS或胶水logging,但在这种特殊情况下,我似乎甚至没有得到caching来报告区域的NSlogging。
dig @mycache somedomain NS返回SERVFAIL 。 根本没有名称服务器logging。 dig +trace显示一个健康的委托path,最终的名称服务器返回一个响应。 手动对最终名称服务器运行dig查询会返回一个有效的NSlogging,相应的Alogging存在并与胶水等同意 是什么赋予了? 为什么我没有从DNScaching中获取NSlogging,甚至没有logging?
如果没有对NSlogging的权威答案,那么除了确定权限的失败之外没有其他的caching。 这是已经被caching的内容,并且DNS客户端无法获取有关lame nameservers的服务器内存信息。 (或者说,这与你将要得到的一样接近)
通常你可以通过比较caching中的NSlogging和你在互联网上find的东西来识别陈旧的名称服务器logging的问题,但是在这种情况下,没有权威的NSlogging来caching。 胶水logging本身并不具有权威性。 没有权威的答案,根本没有权威的域名服务器 。
两件事之一通常发生在这里:
dig +trace从本地caching中获取中间名称服务器的陈旧答案,目前确实存在问题。 我已经在另一个问题中介绍了这种行为。 NXDOMAIN或SERVFAIL时追求胶水logging查找权威的名称服务器,并且这个事件已被caching。 即使问题得到解决,或者胶水已经被指向其他地方,名称服务器也不会在内部计时器到期之前再次询问。 请求有关区域的caching清除通常会重置。 后者通常是罪魁祸首。 如果你想绝对确定,可以转储你的域名服务器的运行时caching并查看内存中的胶水。 (即BIND的rndc dumpdb )请注意,这是一个非常昂贵的操作,除非您可以将转储范围限制为单个区域,并且通常在高负载情况下需要避免。