我想知道是否有一个命令可以运行来获取我的 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).
尽管如此:
- 不确定它只会转储服务器为主的区域
- 您必须解析输出,因为它基本上不是区域列表,而是完整转储。
对于你的第二个问题,其实有两种可能:
看起来 bind9 实现了一个新功能来管理这个,请参阅http://ftp.isc.org/isc/bind9/cur/9.11/doc/arm/Bv9ARM.ch04.html#catz-info
编写一个脚本,从主配置生成从配置。