Blog·Tanky WooABOUTRSS

Bind9 Notify 问题

15 Oct 2014

遇到一个问题, DNS master端之前只有ip 192.168.0.200, 现在又添加了一个ip 192.168.0.100, 其中192.168.0.100是主ip, 192.168.0.200是secondary ip.

slave上master的配置只包含之前配置的192.168.0.200

修改zone文件的serial number后, slave并没有及时同步, 监控发现slave的serial number和master的serial number不一致.

等了几分钟至几十分钟后, 会陆续同步恢复.

如果配置正确, master端会主动发NOTIFY信息, 应该是很快就会同步更新.

查看此配置文档, 关于bind9 的master和slave, master修改配置后, 主动给 slave 发NOTIFY, 有以下几个配置控制:

然后经过抓包(在master上抓取向slave发送NOTIFY信息的包)发现:

00:37:25.152884 IP 192.168.0.100.50326 > 192.168.2.50.53: 47421 notify [b2&3=0x2400] [1a] SOA? intra.domain.com. (79)
00:37:25.178583 IP 192.168.2.50.53 > 192.168.0.100.50326: 47421 notify Refused 0/0/0 (35)

发现NOTIFY信息被拒绝了. 并且这里走的是主ip, 也就是新配的ip, 而这个ip不在slave的master配置中, 即不在slave的allow-notify ip列表里. 所以被拒绝了.

方法之一是在slave的master语句列表中加上master端新增的主ip.

方法之二是在master端使用notify-source指定具体从哪个ip发NOTIFY消息, 修改后抓包:

00:41:57.576905 IP 192.168.0.200.34407 > 192.168.2.50.53: 40373 notify [b2&3=0x2400] [1a] SOA? intra.domain.com. (80)
00:41:57.603706 IP 192.168.2.50.53 > 192.168.0.200.34407: 40373 notify* 0/0/0 (36)

至于陆续恢复, 是因为zone文件配置的Refresh时间:

1H         ; Refresh