有没有办法自动同步 BIND(9)服务器之间的所有区域,以便我在将区域添加到主服务器时不必将区域添加到从服务器?
答案1
查看 BIND 9.7.2-P2,其中有“rndc addzone”和“rndc delzone”语句,允许您从正在运行的服务器“远程”添加和删除区域。
我有一篇论文提供了上个月在 NANOG 上给出的一些例子。
ftp://ftp.isc.org/isc/pubs/pres/NANOG/50/DNSSEC-NANOG50.pdf
虽然这不会返回并清理您当前遇到的任何混乱,但它确实可以让您轻松地同步能够使用“rndc”进行管理的机器。
[是的,回复一个相当老的帖子,但是 BIND 9.7.2-P2 足够酷,值得这样做]
添加另一个更新(几年后,但希望它能够帮助在搜索结果中遇到此问题的人们),我想建议使用目录区域。
BIND 9.11 (2018) 中引入的目录区域允许通过在主服务器和辅助服务器之间共享的特殊区域自动配置区域(添加和删除)。
完整信息请参见: https://kb.isc.org/docs/aa-01401
答案2
如果您使用的是 flatfile 后端,我不知道有什么方法可以本地执行此操作以用于 bind9。有各种 DB 支持的系统可以帮助实现自动化。或者您可以编写脚本:
我用区域列表和区域的主 NS IP 填充一个文本文件,并将其粘贴到我允许从属服务器访问的网站上。从属服务器定期获取此文件,如果文件发生变化,它们会解析它并生成一个 named.conf,并告诉 bind 重新加载配置。它是“自动的”,因为我不必手动 ssh 到我的辅助服务器并更新配置,但它仍然是 bind9 外部的。
您还可以使用更高级别的配置管理系统,例如木偶,管理整个 DNS 基础设施。不过这有点复杂。
答案3
答案4
如果您正确编写区域并确保 named.conf 位于 /var/named 中,则在整个 /var/named 树上使用 rsync 效果很好。但它不适用于动态更新,并且有点违背“应该如何做事”的原则。
我还尝试将所有要传播的域塞入一个特殊区域,并在从属服务器上使用一个简单的脚本根据它们在主区域中看到的内容重建named.conf。基本上与上面的文本文件相同,但从DNS提供它以保持所有内容在带内。我应该在最终丢失它之前发布脚本=/
在每个人和他们的妈妈都有自己的域名的时代,令我惊讶的是,到目前为止还没有一个与 Bind 集成的好的解决方案 =/