BIND 9:rndc 重新加载无效

BIND 9:rndc 重新加载无效

我在 FreeBSD 10 上以受限配置运行 BIND 9.10.2 端口,并且遇到了一个问题,rndc reload即使 SOA 序列已正确递增,也无法获取任何(主要主)区域文件更改。

该命令本身似乎成功了:

#rndc reload
server reload successful

在日志中我看到:

May  9 16:03:47 y named[81516]: all zones loaded
May  9 16:03:47 y named[81516]: running

但只有重新启动才能named获取区域更新。

rndc zonestatus my_zone.com打印旧序列。因此,BIND 无法重新读取区域文件。

我该如何调试它?

答案1

如果这确实是一个动态更新的区域(allow-update/update-policy由于区域文件已指定,因此直接编辑区域文件是不安全的!

在这样的设置中,BIND 负责维护区域文件;缓冲日志文件 ( .jnl) 中的更改并定期重写区域文件本身。

对区域数据的所有更改都应通过动态更新协议进行,并由 BIND 管理,而不是通过直接更改区域文件进行。无论如何更改区域文件都会导致行为不一致,因为区域文件内容将与日志内容和状态不同步named

简而言之,通常你使用动态更新对此类区域进行所有更改(例如使用nsupdate或任何其他客户端),但如果出于某种原因你必须直接控制区域文件,你可以使用以下方法暂时暂停动态更新:rndc freeze然后继续使用rndc thaw)。暂停更新是一种相当具有侵入性的操作(任何更新都将失败,并且更改历史记录可能会被清除,具体取决于ixfr-from-differences),因此您可能不应该在正常操作期间执行此操作。

相关内容