隐藏的 DNS 主站只向一个从站发送通知

Rob*_*Rob 5 domain-name-system bind

我的隐藏 DNS 主机只向一个区域的名称服务器之一发送通知,我有 3 个命名服务器 ns0、ns1 和 ns2,它们都运行绑定 9.7.3.dfsg-1ubuntu4.1。

处理更新时,主 (ns0) 似乎表现正常。

ns0 (192.168.2.50)

zone domain.org/IN: sending notifies (serial 2012060703)
client 192.168.2.52#42892: transfer of 'domain.org/IN': AXFR-style IXFR started: TSIG rndc-key
client 192.168.2.52#42892: transfer of 'domain.org/IN': AXFR-style IXFR ended
Run Code Online (Sandbox Code Playgroud)

ns2 (192.168.2.52)

client 192.168.2.50#3762: received notify for zone 'domain.org': TSIG 'rndc-key'
zone domain.org/IN: Transfer started.
transfer of 'domain.org/IN' from 192.168.2.50#53: connected using 192.168.2.52#55747
zone domain.org/IN: transferred serial 2012060704: TSIG 'rndc-key'
transfer of 'domain.org/IN' from 192.168.2.50#53: Transfer completed: 1 messages, 34 records, 1028 bytes, 0.001 secs (1028000 bytes/sec)
Run Code Online (Sandbox Code Playgroud)

ns1 上没有任何反应。我已经调高了日志记录级别,但是 syslog 中没有关于实际名称服务器绑定已发送通知的信息,所以我想这是它没有记录的内容。

我也试过看 tcpdump,它从不尝试只通知 ns1 ns2

192.168.2.50.56278 > 192.168.2.52.53: [udp sum ok] 56418 notify [b2&3=0x2400] [1a] [1au]
? SOA? domain.org. domain.org. [0s] SOA ns1.domain.net. dnsmaster.domain.net. 
? 2012060801 10800 3600 604800 3600 ar: rndc-key. ANY [0s] TSIG hmac-md5.sig-alg.reg.int. fudge=300 maclen=16 origid=56418 error=0 otherlen=0 (174)
Run Code Online (Sandbox Code Playgroud)

权威区域有 ns1 和 ns2 记录

$ORIGIN domain.org.
$TTL 3h
@   IN  SOA ns1.domain.net. dnsmaster.domain.net. (
        2012060801  ; Serial yyyymmddnn
        3h  ; Refresh After 3 hours
        1h  ; Retry Retry after 1 hour
        1w  ; Expire after 1 week
        1h )    ; Minimum negative caching of 1 hour

@   3600    IN  NS  ns1.domain.net.
@   3600    IN  NS  ns2.domain.net.
Run Code Online (Sandbox Code Playgroud)

// 编辑

我已also-notify {192.168.2.51;192.168.2.52;};明确添加到区域文件中,并且一切正常,ns1 和 ns2 都收到通知消息并且传输成功。

我的印象是绑定会自动向区域上的所有 NS 记录发送通知,也许它被窃听了?

小智 7

你试过设置这个吗?

notify-to-soa yes;

来自 BIND 9 配置参考:

通知到 SOA

如果是,请不要根据 SOA MNAME 检查 NS RRset 中的名称服务器。通常不会向 SOA MNAME (SOA ORIGIN) 发送 NOTIFY 消息,因为它应该包含最终主机的名称。然而,有时,从属服务器在隐藏的主服务器配置中被列为 SOA MNAME,在这种情况下,您希望最终的主服务器仍然向 NS RRset 中列出的所有名称服务器发送 NOTIFY 消息。


Eig*_*ony 2

在对此了解不多的情况下,将 SOA 设置为 ns1 是否足以混淆 ns0 以阻止其发送更新?

@   IN  SOA ns1.domain.net.
Run Code Online (Sandbox Code Playgroud)

即确实将其设置为,

@   IN  SOA ns0.domain.net.
Run Code Online (Sandbox Code Playgroud)

解决这个问题(尽管我知道这可能会导致其他问题)