rndc和手动操作named.conf.local之间有什么区别

时间:2014-02-12 17:43:22

标签: dns bind

我知道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

1 个答案:

答案 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中,所以如果你需要修改任何区域选项,你将有两个文件可以查看。