如何列出我的 BIND9 作为主服务器管理的所有域名?

如何列出我的 BIND9 作为主服务器管理的所有域名?

我想知道是否有一个命令可以运行来获取我的 BIND9 当前在我的主 DNS 服务器上管理的域名的完整列表。

假设,诸如:

named --list

这将为我提供当前在该主机上设置的所有区域的所有名称。


现在,询问的原因是我设置从属 BIND9 的方式是为每个主条目添加一个新条目。例如:

zone "example.app" {
    type slave;
    file "/var/cache/bind/example.app.zone";
    masters {  192.168.0.1;  };
    allow-transfer { none; };
};

这允许我的从 BIND9 向主 BIND9 请求信息。它可以工作,并且当您有几个条目时就可以找到。当您的 DNS 数量超过 50 时,这不仅是乏味的,您还会犯很多错误,这意味着没有第二个 DNS 来处理这些错误,并且没有任何信息告诉您第二个 DNS 丢失了......

我认为可能有一种更好的方法来设置从站,即由主站管理的任何域名都将在从站上复制。但我不希望我的奴隶管理其他任何人的 DNS。所以只允许我的主人(在我的例子中是192.168.0.1)进行更改。

任何一种解决方案对我来说都很好。当然,第二个会更好。

答案1

首先,通常每个帖子只问一个问题,因为这对于网站的可访问性和参考性更好......

对于你的第一个问题,你可以要求bind转储它当前管理的区域,请参阅dumpdb以下命令rndc

  dumpdb [-all|-cache|-zones|-adb|-bad|-fail] [view ...]
                Dump cache(s) to the dump file (named_dump.db).

尽管如此:

  • 不确定它只会转储服务器为主的区域
  • 您必须解析输出,因为它基本上不是区域列表,而是完整转储。

对于你的第二个问题,其实有两种可能:

  1. 看起来 bind9 实现了一个新功能来管理这个,请参阅http://ftp.isc.org/isc/bind9/cur/9.11/doc/arm/Bv9ARM.ch04.html#catz-info

  2. 编写一个脚本,从主配置生成从配置。

相关内容