我已经设置了两个名称服务器,一个主服务器和一个从服务器,如下所示:这链接。主服务器上的网站按预期提供服务,这证明设置正常运行。
不过最近我开始怀疑从服务器与主服务器没有正确同步。在错误检查期间,我尝试重新加载一个随机区域文件:
rndc reload domain.tld
(“domain.tld” 为占位符)
迎接我们的只有这些:
zone refresh queued
以上是返回的消息,无论测试的域是什么。
我尝试搜索整个从服务器任何区域文件(find / -name *.zone),没有结果(但由于我不完全了解 BIND 设置的工作原理,我甚至不确定从属服务器是否应该包含像主服务器一样的区域文件,这使得搜索可能变得多余)。
然后我检查了 named.run 日志,它充满了以下条目:
dumping master file: tmp-CWKpRfrNi0: open: permission denied
在我看来这似乎是权限问题,但老实说我不太确定。顺便说一句,我也尝试过重新加载区域文件后增加序列,但没有运气。
- 有没有办法验证从属服务器是否按预期运行?
- 假设以上信息足以得出结论,错误实际上是罪魁祸首,并且服务器有故障,我该如何解决它?
答案1
来自 CentOS 6 的 bind-9.8.2-0.37 在从属重新启动后显示(对于每个区域,即使它们已经被缓存):
08-Apr-2016 12:15:07.571 zone example.com/IN: loaded serial 2016040103
named.conf 包含以下内容:
logging {
channel general_file { file "/var/log/named/general.log" versions 3 size 5m; severity dynamic; print-time yes; };
category general { general_file; };
};
无需搜索区域文件,您应该在 named.conf 中手动定义它们,因此它们的位置应该很容易确定。也许您的 chroot 配置错误,即 named 运行时认为文件系统的根目录位于 /var/named/chroot 之类的地方,并且没有在那里设置适当的权限。
答案2
更新主服务器上区域的序列号,rndc 重新加载,然后在从服务器上的 /var/named/data/named.run 中 grep 序列号