BIND9:发送有关特定 IP 地址的通知

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并不似乎与即将离任的交通工作...

我怎样才能解决这个问题?

And*_*w B 5

您正在寻找该notify-source选项。从绑定臂

通知源

notify-source 确定将使用哪个本地源地址和可选的 UDP 端口来发送 NOTIFY 消息。该地址必须出现在从服务器的主区域子句或允许通知子句中。此语句为所有区域设置通知源,但可以通过在配置文件中的区域或视图块中包含通知源语句,在每个区域或每个视图的基础上覆盖。

至于为什么 BIND 会以这种方式运行,这在大多数应用程序中都是相当典型的。本地发起流量的源 IP 默认为与路由关联的接口的主 IP。在 Linux 系统上,您可以通过键入ip route show和查看src关键字后面的值来查看与每个路由关联的源 IP 。