1.allow-notify
allow-notify 定义了一个匹配列表并且只应用于从dns区域(slave zone),比如,这个列表是一个ip列表,它
2. 触发同步的过程
http://www.edu.cn/wgjq_8179/20091022/t20091022_414762.shtml
首先介绍主从服务器的同步过程。触发同步过程的原因有4种:1.从域名服务器刚刚启动;2.主域名服务器的Serial值增大;3.执行了rndc reload命令;4.到了主从服务器的同步更新时间。
主从域名服务器开始同步(见图1):
1. 主服务器向从服务器发送notify消息
2. 从服务器收到主服务器发送notify消息,向主服务器返回一个notify response消息。
3. 从服务器向主服务器发送SOA query消息。
4. 主服务器向从服务器返回SOA response消息。
5. 从服务器收到SOA response消息后,比对自身的Serial值,如果发现主服务器的Serial值大于自身的Serial值,那么就发送Zone transfer request消息。
6. 主服务器返回Zone transfer response消息。
7. 主服务器执行Zone transfer。
一个同步问题:
主从DNS 服务器一个物理网卡上都绑定了多个ip,其中的某个ip作为ns1/ns2的地址。
搭建好之后出现无法同步问题,在ns2的syslog文件中出现
client a.b.c.d view external: received notify for zone '1.10.in-addr.arpa': not authoritative
其中该ip为ns1网卡上的某个地址,说明在进行notify时没有按照预期使用ns1的ip地址进行notify,该地址不是这个zone的权威,也不是被允许的notify地址,需要用notify-source 指定ns1 ip。
在ns2的配置文件中添加allow-notify { ns1 ip;};
问题2.
修改db的serial后,执行rndc reload,不进行同步,单独执行rndc reload zoneA,报错:
rndc: 'reload' failed: dynamic zone
原因是,该zone是动态更新的域,配额文件中有
allow-update { key "hadoo"; };
不允许手动更新,手动修改 serial也会报错,
需要执行如下步骤:
rndc freeze(冻结动态更新)
edit the serial (修改序列号)
rndc reload (更新)
rndc thaw (解冻)
这样就可以执行成功
或者使用默认隐式的allow-update { none; };