我一直在尝试在两台机器之间实现绑定主->从设置,但是在主机器上用于通知从机器的 IP 地址 BIND 方面我遇到了问题。
这是我的设置:
Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10
主服务器有一个权威区域,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
不适用于传出流量......
我怎样才能解决这个问题?
答案1
您正在寻找notify-source
选项。从绑臂:
通知源
通知源确定将使用哪个本地源地址和可选的 UDP 端口来发送 NOTIFY 消息。此地址必须出现在从属服务器的主控区域子句或允许通知子句中。此语句为所有区域设置通知源,但可以通过在配置文件的区域或视图块中包含通知源语句来按区域或视图覆盖。
至于 BIND 为何如此行事,这在大多数应用程序中都很常见。本地发起的流量的源 IP 默认为与路由关联的接口的主 IP。在 Linux 系统上,您可以通过键入ip route show
并查看关键字后面的值来查看与每个路由关联的源 IP src
。