自动承担几个区域文件的主人

现在我正在移动我的主服务器,我花了一些时间来精简和简化它的一些设置,现在它已经到了DNS服务器(在新的设置中绑定9.9.5)。

我注意到在我的configuration中,我有很多这样定义的区域:

zone "123.123.123.123.in-addr.arpa" in { type master; file "123.123.123.123"; }; zone "123.123.123.124.in-addr.arpa" in { type master; file "123.123.123.124"; }; zone "example.com" in { type master; file "example.com"; }; zone "example.net" in { type master; file "example.net"; }; // With another ~20 definitions like that 

这对我来说似乎是非常低效的。 有没有办法自动加载所有文件find目录口径的options { directory "/some/folder" } ,并假设每个主?

不,在named.conf及其包含的文件中没有办法做到这一点。 每个区域都必须明确定义,并且至less要有一个types和数据源。 如果它们包含的logging应该是完全相同的,则可以让多个区域引用相同的文件,但这是唯一的捷径。

其他选项可以在全局选项块( allow-transferalso-notify等)中设置它们的默认值,但是您坚持最低限度地定义每个区域和必填字段。

为了完整起见,我会提到一个例外,我强烈build议不要使用BIND的新版本。 你可以使用新的rndc addzonefunction来远程创build一个区域,但是真正做的是创build一个具有哈希名称的附加configuration文件(即文件名中的随机字符)和BIND“知道”的.nzf后缀。加载。 从可维护性的angular度来看,这是非常糟糕的 ,因为它违反了最less惊讶/惊讶的原则 ; 主configuration文件没有引用这些额外的configuration文件,其他pipe理员将不知道这些文件的内容正在加载,除非他们熟悉该function。 (和非常DNSpipe理员是由于其新颖)

https://ftp.isc.org/isc/bind/9.10.3rc1/doc/arm/man.rndc.html

addzone区域[class [view]]configuration

在服务器运行时添加一个区域。 该命令要求将allow-new-zones选项设置为yes。 在命令行中指定的configurationstring是通常放置在named.conf中的区域configuration文本。

configuration保存在一个名为hash.nzf的文件中,其中hash是从视图名称生成的encryption哈希。 当named被重新启动时,文件将被加载到视图configuration中,这样添加的区域在重新启动后可以保留。

这个示例addzone命令会将区域example.com添加到默认视图:

$ rndc addzone example.com'{type master; 文件“example.com.db”; };”

(请注意区域configuration文本周围的括号和分号。)

另请参阅rndc delzone和rndc modzone。