TCB*_*B13 1 domain-name-system bind master-slave dns-zone
我一直在尝试在两台机器之间实现绑定主-> 从设置,但是我在主机上用于通知我的从机的 IP 地址 BIND 方面存在问题。
这是我的设置:
Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10
Run Code Online (Sandbox Code Playgroud)
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; };
};
Run Code Online (Sandbox Code Playgroud)
在奴隶上:
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;
};
Run Code Online (Sandbox Code Playgroud)
首先,通知似乎不起作用,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)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,虽然主机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
选项。从绑定臂:
通知源
notify-source 确定将使用哪个本地源地址和可选的 UDP 端口来发送 NOTIFY 消息。该地址必须出现在从服务器的主区域子句或允许通知子句中。此语句为所有区域设置通知源,但可以通过在配置文件中的区域或视图块中包含通知源语句,在每个区域或每个视图的基础上覆盖。
至于为什么 BIND 会以这种方式运行,这在大多数应用程序中都是相当典型的。本地发起流量的源 IP 默认为与路由关联的接口的主 IP。在 Linux 系统上,您可以通过键入ip route show
和查看src
关键字后面的值来查看与每个路由关联的源 IP 。