绑定9 – 次要区域文件仅在重新启动后更新

我的设置的快速说明。 主要区域在Windows服务器上运行dns。 次要区域是绑定的runnung。 如果我删除区域文件,并重新启动绑定传输工作正常。 意味着区域文件将被创build与最新的信息。 如果现在添加或删除Windows服务器上的条目,绑定日志说:

named[18697]: zone xxx.xxx/IN: transferred serial 144 named[18697]: transfer of 'xxx.xxx/IN' from 192.168.111.4#53: Transfer completed: 1 messages, 5 records, 212 bytes, 0.109 secs (1944 bytes/sec) named[18697]: zone xxx.xxx/IN: sending notifies (serial 144) 

但区域文件不更新! 如果我再次删除文件并重新启动绑定,我将得到更新的logging。 任何人一个想法是什么我的问题在这里? 谢谢!

这是有点推测,直到它被确认如果问题是专门关于区域文件,而不是区域内容。

BIND不会立即将区域传输(对于从属区域)或更新(对于dynamic更新区域)的数据写入区域文件,而是.jnl将更改caching在日志文件( .jnl )中,并定期刷新所有更改到主区域文件。

这不会以任何方式影响正在提供的数据; 无论是否已合并到主区域文件中,都会提供新数据。

此外,目前的BIND版本默认甚至不使用人性化的基于文本的主文件格式作为从属区域,以支持更高效的二进制格式(没有实际的缺点,因为您不直接处理从属区域的文件) 。

从这里学到的教训是,在文件由BINDpipe理的情况下,你不应该真正在看文件内容,而应该查看它所服务的数据。

如果您出于某种原因不得不查看文件内容而不是查询正在运行的named进程,那么您将需要以一种同时考虑日志的方式来读取该文件。

例如named-compilezone -j -o - example.com db.example.com

(或者named-compilezone -f raw -j -o - example.com db.example.com如果该文件是原始 (二进制)格式的。)