![离线一段时间的 BIND 从属设备的预期行为是什么?](https://linux22.com/image/733613/%E7%A6%BB%E7%BA%BF%E4%B8%80%E6%AE%B5%E6%97%B6%E9%97%B4%E7%9A%84%20BIND%20%E4%BB%8E%E5%B1%9E%E8%AE%BE%E5%A4%87%E7%9A%84%E9%A2%84%E6%9C%9F%E8%A1%8C%E4%B8%BA%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我们遇到过这样的情况:BIND 从属服务器无法将任何区域数据写入文件系统。当此服务器重新启动并且 BIND 重新启动时,它启动时使用的区域文件版本比主服务器上的版本要旧。
在此期间,它能够从主服务器接收 IXFR 传输,只是无法将这些更改保留到 HDD。
这让我想知道 BIND 服务器的预期行为是什么?在进入服务之前,它不会与主服务器进行一些检查,这似乎有点设计缺陷。
作为参考,这是从属端的绑定版本:
$ rpm -q bind
bind-9.8.2-0.47.rc1.el6_8.2.x86_64
我确实找到了这个参考:
其中规定如下:
区域通知和刷新
除了服务器重新启动或使用 rndc 命令强制进行区域传输时,还有两种机制可使从属服务器检查其区域副本是否为最新。检查和更新的过程称为区域刷新:
我将其解释为 BIND 在启动阶段没有做任何特殊的事情。
答案1
嗯,没有完全读完所有文档。同一页上有一段话说明了以下内容:
当服务器重新启动时,它会发出已加载区域的通知(以防在服务器未运行时更新了这些区域)。同样,当加载从属区域时,新重新启动的命名服务器将为每个区域启动刷新(使用抖动时间间隔,以便不会同时启动所有刷新)。
因此,从这一点来看,BIND 从属服务器将向主服务器发送通知,然后协调 IXFR 以赶上并开始提供更新的区域信息。