我在 Ubuntu 上运行了一个 BIND 服务器,但无法查找 www.microsoft.com 或 Microsoft 上的任何记录。其他所有域名(如 google.com 和 yahoo.com)似乎都运行正常。我正在寻找一些关于如何改进日志记录的建议,以找出 BIND 为何在此域名上遇到问题。
我已经将查询通道捕获到 default_syslog 中,并且看到了到达服务器的查询,但我没有看到 BIND 服务器尝试查找这些名称的 IP 地址的努力的结果。
症状
> ping www.microsoft.com
查找失败,表示未找到主机
> dig @A.B.C.D www.microsoft.com
也超时,其中 ABCD 是这个内部 DNS 服务器的 IP 地址。
其他查询似乎运行良好
目前,我使用 db.root 作为根服务器,并且在此配置中没有设置转发器。我希望此服务器能够确定 microsoft.com 的根服务器,然后能够从那里找到记录。感谢您就如何改进 BIND 中的日志记录详细信息以及在何处查找日志消息提出任何建议。
答案1
如何查看正在发生的事情:
要实时查看服务器正在做什么,如果您已经
rndc
配置了运行rndc trace x
(x
您想要查看的调试级别在哪里)。要查看服务器正在做什么,
rndc
您必须在前台模式下运行服务器named -g -d x
(x
再次是调试级别)。要配置文件日志记录,请打开 named.conf 并编辑/添加日志记录部分,例如:
logging { channel default_file { file "/var/log/named.log" size 10m; severity info; print-time yes; print-severity yes; print-category yes; }; category default{ default_file; }; };
请注意,这会将日志记录配置为“信息”级别及更高级别。这会为实时服务器转储大量信息。可能的值包括“extra”、“debug”、“info”、“error”、“fatal”和“dynamic”(必须在命令行上为动态提供 -d 的值)。
你的服务器出了什么问题:
您的服务器在尝试递归解析域名时循环回到自身。由于这种情况只发生在您知道的一个域名上,因此很可能是您的hosts
文件中存在问题,或者您的named.conf
文件本身存在问题(可能是后者)。
获取request failed: duplicate query
几乎总是与forwarders
循环回到服务器或类似设备的指令有关的问题。
答案2
这可能是缓存问题。您尝试过清除缓存吗?
rndc flush # all entries
rndc flushname microsoft.com # all entries for microsoft.com supported from bind 9.3