列出在BIND中加载的所有区域

我正在尝试迁移一个有几千个区域加载的DNS服务器。 named.conf文件有大约17种不同的包含,其中一些文件也包含在其中,还有大量的注释等等。这是一团糟!

我想获得当前加载到BIND中的所有区域的列表。 我看着rndc dumpdb,但它不显示我只是区域。

而不是跟随凌乱的包含文件,是否有一个更简单的方法来获得BIND内的授权区域列表? 谢谢!

您可以运行rndc dumpdb -zones来创build一个名为cache_dump.db的文件。 该文件将包含所有权威区域,并将在BIND的数据目录中创build。

确认rndc dumpdb是最好的方法。

就我而言,我发现在同一台服务器上运行了2个独立的绑定实例(不要问),一个做forward dns,一个做reverse dns。 没有指定PID,它附加到只做反向dns的只显示了我。

如果您只想以其规范forms打印configuration(包括任何包含文件),则可以简单地调用:

named-checkconf -p (可选用-t /some/chroot/dir如果BIND运行chroot并且configuration需要从chroot目录读取)

这使所有的包含文件变平,删除所有的注释并整齐地格式化所有的东西。

虽然输出将包括静态configuration的区域,但不会列出dynamic区域,例如添加了rndc addzone

添加– 所有这一切对我来说(在Ubuntu的Ubuntu 16.04.2 LTS(xenial))

 sudo rndc dumpdb -all && cat /var/cache/bind/named_dump.db 

以下是确切的命令列出启动过程中加载的区域。 这在RHEL6.7 x86_64上进行了testing。

 /usr/sbin/named-checkconf -z -t /var/named/chroot | grep loaded 

例:

 [root@dnsserver ~]# /usr/sbin/named-checkconf -z -t /var/named/chroot | grep loaded zone 0.0.127.in-addr.arpa/IN: loaded serial 2008040700 zone 19.58.10.in-addr.arpa/IN: loaded serial 2008040701 zone 11.54.10.in-addr.arpa/IN: loaded serial 2008040700 zone example.com/IN: loaded serial 2008040702 zone ./IN: loaded serial 2008040700