我在FreeBSD 10上运行了一个绑定9.10.2端口,在一个被监禁的配置中,而且我遇到了一个问题,即使SOA序列号正确地递增,rndc reload也不会获取任何(主主)区域文件的更改。
该命令本身似乎成功:
#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不知何故未能重新读取区域文件。
我如何调试这个?
发布于 2015-05-10 00:10:53
如果这确实是一个动态更新的区域(指定了allow-update/ update-policy ),那么直接编辑区域文件是不安全的!
在这种设置中,是BIND维护区域文件;缓冲日志文件(.jnl)中的更改并定期重写区域文件本身。
区域数据的所有更改都将通过动态更新协议进行,并由BIND管理,而不是通过对区域文件的直接更改进行管理。无论如何,更改区域文件将导致不一致的行为,因为区域文件内容将与日记内容和named状态不同步。
简而言之,通常您使用动态更新(使用例如nsupdate或任何其他客户端)对这样的区域进行所有更改,但是如果您出于某种原因绝对必须直接控制区域文件,您可以使用rndc freeze临时挂起动态更新,然后继续使用rndc thaw)。挂起更新是一种相当侵入性的操作(任何更新都会失败,更改历史可能会根据ixfr-from-differences被删除),所以您可能不应该在正常操作中这样做。
https://serverfault.com/questions/690807
复制相似问题