我一直在尝试在两台机器之间实现绑定 master->slave 设置,但我对主机上用于通知我的从机的 IP 地址 BIND 存在问题。
这是我的设置:
Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10
Master 有一个权威区域site.com
,它被配置为在区域更改时通知所有从站。该区域工作正常。它对查询和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
?有没有我可以强制执行的配置?这台机器拥有 3 个 IP,一个用于网站,另一个用于电子邮件,另一个用于 DNS……我需要让它仅用于10.0.0.2
DNS,但显然listen-on
似乎不适用于传出流量……
我怎样才能解决这个问题?
您正在寻找
notify-source
选项。从BIND ARM:至于为什么 BIND 会以这种方式运行,这在大多数应用程序中是相当典型的。本地发起流量的源 IP 默认为与路由关联的接口的主 IP。在 Linux 系统上,您可以通过键入并查看关键字
ip route show
后面的值来查看与每个路由关联的源 IP 。src