如何在 Ubuntu 上打开 BIND 的调试日志?

如何在 Ubuntu 上打开 BIND 的调试日志?

我在 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 xx您想要查看的调试级别在哪里)。

  • 要查看服务器正在做什么,rndc您必须在前台模式下运行服务器named -g -d xx再次是调试级别)。

  • 要配置文件日志记录,请打开 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

相关内容