我知道rndc意味着我可以从远程控制dns服务器。但是,假设我不需要这样的远程功能。我在dns服务器上做了一切。我想要的是有效地添加/更新/删除区域而不影响其他区域。我想出了一些使用rndc添加/更新/删除区域的脚本,如下所示:
rndc addzone mydomain.com '{type master; file "/etc/bind/db.mydomain.com";};'
rndc reconfig
rndc reload mydomain.com
rndc delzone mydomain.com
这似乎很方便。但是,似乎它没有向named.conf.local文件添加任何内容。那么这是否意味着rndc已经从通常的named.conf.local方式接管了控制权?如果是这种情况,有什么区别?我应该使用哪种方式?
谢谢, Elgs
答案 0 :(得分:3)
首先,要使用此功能,您必须启用它,因此在/etc/bind/named.conf.options
中的选项块中我假设您有:
options {
directory "/var/cache/bind";
...
allow-new-zones yes;
...
}
当您使用rndc addzone
时,服务器将在基目录中创建一个名为<hashstring>.nzf
的新文件,如上所述。 &lt; hashstring&gt;是视图名称的哈希。无论如何,当您在停止名称服务器或重新启动后再次启动名称服务器时,将重新读取此文件,因此更改仍然存在。
如果你对这种方式很满意,请坚持下去。唯一的缺点是所有的区域规范都不在named.conf.local中,所以如果你需要修改任何区域选项,你将有两个文件可以查看。