我的设置的快速说明。 主要区域在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
如果该文件是原始 (二进制)格式的。)