我目前有一台 DNS 服务器,它充当我们许多域的主 DNS 服务器。我想设置一台全新的辅助 DNS 服务器。有什么方法可以自动让新服务器上的 BIND 充当主服务器上所有域的辅助 DNS 服务器?
以防万一,我在主服务器上安装了 Webmin。我相信 Webmin 有一个选项,可以在一台服务器上创建新的主区域时,在另一台服务器上创建一个区域作为辅助区域,但我不知道有什么方法可以为多个服务器批量创建辅助区域现存的主区域。也许我遗漏了什么。
有没有办法在全新的从属 DNS 服务器上为现有主 DNS 上的所有 DNS 区域“批量创建”DNS 从属区域?
答案1
编写脚本来执行此操作不会花很长时间,特别是如果您以域名来命名区域文件。
ls master.dir > domain.list
foreach domain (`cat domain.list`)
echo 'zone "$domain" { type slave; file "slave/$domain"; masters { 1.2.3.4 }; };' >> named.conf.slaves
end
并添加include named.conf.slaves;
到你的named.conf
答案2
在 Webmin 中,当您配置新的从服务器时,您将可以选择将主服务器上的所有区域复制到新的从服务器。Virtualmin 文档中有一节关于从 DNS 服务器的部分,如果您只使用 Webmin,则只需跳过让 Virtualmin 使用从服务器的最后部分。Webmin 的步骤相同。
http://www.virtualmin.com/documentation/dns/slave-configuration
具体来说,您想要的选项是“在从属区域上创建所有现有的主区域?”,它将复制所有数据。
如果需要的话,Webmin 将来还可以将从服务器转变为主服务器。
答案3
因为这已经登上头版了:
配置rndc
并设置选项
allow-new-zones yes;
在你的 中named.conf
。然后你可以从命令行添加新的从属区域(无需手动编辑从属上的 named.conf),使用
rndc addzone example.com '{ type slave; masters { master_ip; }; };'
rndc reconfig
您可以轻松编写脚本并针对您想要添加的任何其他区域重复此操作。
答案4
最简单的方法是从主服务器复制配置。
一个简短的 perl 脚本应该能够用 slave 替换 master 关键字,并将指针添加到 master。
正如克里斯托弗所说,您还需要修改主机的配置以允许从主机进行区域传输。
我还注意到绑定的安全通知,它表明您应该确保所有区域都有允许查询子句。