BIND9:创建新区域的“正确”方法是什么?

BIND9:创建新区域的“正确”方法是什么?

我在 Linux 机器上设置了 BIND9,并且我玩这个nsupdate命令已经有一段时间了。它对于更改区域的 RR(命令update createupdate delete)非常有效。我想知道应该如何创建新区域。似乎没有办法nsupdate做到这一点。

到目前为止,我总是复制现有的区域文件,然后对其进行更改。但是,我正在寻找一种不那么痛苦的方法。我很想知道你们是如何做到这一点的。

答案1

除了复制一些骨架文件之外似乎没有其他办法(不要在此骨架中使用 FQDN,并且相同的文件适合任何新区域)。

较新的 BIND 具有rndc addzone永久添加区域到绑定配置的命令没有将其添加到 named.conf 而无需重新加载/重新配置 BIND(运行之前区域文件应该已经存在rndc addzone)。

我使用将区域“骨架”复制到某个新的永久位置然后运行适当的脚本rndc addzone

答案2

我总是编写脚本。编写一个骨架区域文件,将区域添加到配置中,重新加载 BIND,就完成了。脚本可以手动触发,也可以通过 SSH、Web 服务或其他任何可以调用命令的自动化方式自动触发。

答案3

我管理着大约 50 个区域,虽然不是很多,但仍然需要手动完成很多工作,因此我决定创建一个工具,使我能够创建类似 .ini 的文件并使用变量,并可以为 Postfix 设置必要的条目(又名 SPF、DMARC、DKIM)。

否则,我不知道有什么好方法可以管理 BIND9 中的文件。不仅如此,这些文件是原始数据。换句话说,您需要知道确切的 DNS 语法,然后才能编辑这些文件。我发现这相当复杂。在我使用这个工具之前,我过去只是复制/粘贴现有​​区域,编辑它,添加对的引用name.conf.local并重新加载。无论哪种方式都很繁琐。使用我的工具,我创建非常简单的文件并运行ipmgr命令¹.

domain=example.com
mail=mail
dynamic=letsencrypt

[mail]
subdomains=mail
key_ttl=30m

[website]
subdomains=${website_subdomains}

默认 TTL、website_subdomains等在全局文件中定义。所以我所要做的就是复制/粘贴、更改参数domain=...、运行ipmgr、完成(请注意,ipmgr负责根据需要重新启动 BIND9)。


¹ 请注意,由于它有许多依赖项,因此重新编译需要一些工作。如果你使用的是 Ubuntu LTS,你应该能够从电力供应协议

相关内容