自动承担多个区域文件的主控

自动承担多个区域文件的主控

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

我注意到在我的配置中,我有很多区域是这样定义出来的:

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

我觉得这非常低效。有没有办法自动加载指定目录中的所有文件options { directory "/some/folder" },并假设每个文件都是 master?

答案1

不,没有办法在named.conf及其包含的文件中执行此操作。每个区域都必须明确定义,并且至少要定义类型和数据源。如果多个区域包含的记录完全重复,则可以让它们引用同一个文件,但这是唯一的捷径。

其他选择在全局选项块(allow-transferalso-notify等)中设置了它们的默认值,但您只能定义每个区域和至少必填字段。

为了完整起见,我将提到 BIND 新版本中的一个例外,我强烈建议不要这样做。您可以使用新rndc addzone功能远程动态创建区域,但这实际上会创建一个额外的配置文件,该文件具有散列名称(即文件名中的随机字符)和.nzfBIND“知道”要加载的后缀。这是很坏从可维护性的角度来看,它违反了最小惊奇/惊讶原则;主配置文件没有引用这些附加配置文件,其他管理员不知道这些文件的内容正在被加载,除非他们熟悉该功能。(大多数 DNS 管理员都因为它的新颖性而这样做)

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

addzone 区域 [类 [视图]] 配置

在服务器运行时添加区域。此命令要求将 allow-new-zones 选项设置为 yes。命令行上指定的配置字符串是区域配置文本,通常放置在 named.conf 中。

配置保存在名为 hash.nzf 的文件中,其中 hash 是根据视图名称生成的加密哈希值。当 named 重新启动时,该文件将加载到视图配置中,以便添加的区域在重新启动后可以保留。

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

$ rndc addzone example.com'{类型主控;文件“example.com.db”;};'

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

另请参阅 rndc delzone 和 rndc modzone。

相关内容