我一直试图在两台机器之间实现绑定master-> slave设置,但是我在master上使用的IP地址BIND通知我的slave机器有问题。
这是我的设置:
Master: master.site.com - 10.0.0.2 Slave: slave.site.com - 10.0.0.10
主站拥有site.com的权威区域,并且configuration为在区域更改时通知所有从站。 该区域正常工作。 它答复罚款查询和dig @10.0.0.2 -t SOA site.com
所以,在主人我有这个named.conf.options :
options { directory "/var/cache/bind"; dnssec-validation auto; auth-nxdomain no; listen-on { 10.0.0.2; }; listen-on-v6 { any; }; allow-query { any; }; recursion yes; allow-recursion { localhost; }; allow-notify { localhost; }; allow-transfer { localhost; 10.0.0.10; }; version none; notify yes; also-notify { 10.0.0.10; }; };
在奴隶:
options { directory "/var/cache/bind"; dnssec-validation auto; auth-nxdomain no; listen-on { 10.0.0.10; }; listen-on-v6 { any; }; allow-query { any; }; recursion yes; allow-recursion { localhost; }; allow-notify { localhost; 10.0.0.2; }; allow-transfer { localhost; 10.0.0.2; }; version none; };
要开始,通知似乎不工作,在从机上使用tcpdump我得到这个消息:
02:32:50.269377 IP 10.0.0.1.15271 > 10.0.0.10.53: 64103 notify [b2&3=0x2400] [1a] SOA? site.com. (85) 02:32:50.269662 IP 10.0.0.10.53 > 10.0.0.1.15271: 64103 notify Refused- 0/0/0 (27)
正如你可以看到,虽然主设置为在10.0.0.2发送通知时侦听它使用它的主要IP地址10.0.0.1发送它们,逻辑上,我的奴隶拒绝通知…
为什么主人没有通过10.0.0.2发送通知? 有什么configuration我可以强制吗? 这台机器拥有3个IP,一个用于网站,另一个用于电子邮件,另一个用于DNS …我只需要使用DNS 10.0.0.2 ,但显然listen-on似乎不适用于传出stream量。 。
我怎样才能解决这个问题?
您正在寻找notify-source选项。 从BIND ARM :
通知源
notify-source决定使用哪个本地源地址和UDP端口来发送NOTIFY消息。 该地址必须出现在从属服务器的主区段子句或allow-notify子句中。 此语句为所有区域设置通知源,但可以通过在configuration文件的区域或视图块中包含通知源语句,在每个区域或每个视图的基础上重写。
至于为什么BIND这样performance,这是大多数应用程序的相当典型。 本地发起的stream量的源IP默认为与该路由关联的接口的主IP。 在Linux系统上,您可以通过inputip route show并查看src关键字后面的值来查看与每个路由关联的源IP。