number321 发表于 2014-12-13 13:33

bind中关于nsupdate命令的疑问

按照文档中的说明,每次使用nsupdate操作以后,记录不会立即更新到zone配置文件中,会先保存在同名的以.jnl为后缀的文件中,过一段时间将jnl中的内容更新到zone文件中。
如果要手动刷新的话可以用rndc freeze和rndc thaw实现。

我试过
1.自然更新的情况下,zone配置文件中也有记录,jnl文件中也有内容。
2.手动更新(rndc freeze && rndc thaw)的情况下,zone配置文件有记录,jnl文件已经被删除。
那么第一种情况的时候,被添加到zone文件的记录为什么没有在jnl文件中被删除呢。如果遇到意外中断,下次刷新时,jnl文件中还有记录,不会导致里面的旧配置再次被更新到zone文件中吗?

但我实际测试时,发现两者效果是一样的
比如我用nsupdate添加一个A记录。等一段时间,等到更新后,在zone配置文件中能看到这条记录,查看jnl文件也能看到有add的操作。
然后我停掉服务,在zone文件中删除这条A记录,启动后再用rndc freeze和rndc thaw刷新配置。按道理说jnl中还有添加A记录的操作,会刷新到zone文件中,但实际上没有。说明bind是能识别出它里面的内容是上次的旧数据。

请问它是通过什么方式识别的呢?
页: [1]
查看完整版本: bind中关于nsupdate命令的疑问