好的,
假设我有 2 个 BIND 服务器(主服务器和从服务器),主服务器发生故障。从服务器仍可响应查询...但是,它们在文件系统上没有区域文件...
如果我重新启动从属设备,它还会知道区域的内容吗?
是否有一个程序可以重写该从属设备上的区域文件,然后我只需更改配置即可使其成为主设备?
答案1
假设您file
在从属区域的定义中指定了(这是常见的做法),则区域数据将存储在该文件中,并且在重新启动后可用。
来自奴隶区手册部分:
如果指定了文件,则每当区域更改时,副本都会写入此文件,并在服务器重新启动时从此文件重新加载。建议使用文件,因为它通常可以加快服务器启动速度并消除不必要的带宽浪费。
然而,值得注意的是,如果主服务器长时间不可用,区域过期计时器最终将发挥作用;如果在字段指定的时间内SOA
EXPIRE
(通常是几周)无法联系到主服务器,那么具有从属区域的服务器将停止为该区域提供服务。
可以将从属区域更改为主区域,但值得注意的是,现代 BIND 版本对masterfile-format
主区域和从区域 (主区域为text
,从区域为),因此如果您只是从切换到 ,raw
则文件的格式可能与预期不同。 请覆盖设置或转换区域文件 (例如)。type
slave
master
masterfile-format
named-compilezone -f raw example.com db.example.com