在两台运行双IP栈的Debian 8 + Bind9的机器之间,我有一个小的Master-> Slave DNSscheme。
master和slave都拥有绑定使用的IPv4和IPv6,通过configuration参数listen-on listen-on-v6 transfer-source transfer-source-v6 notify-source notify-source-v6 query-source address query-source-v6 address 。
目前我的主人设置为通知奴隶为:
notify yes; also-notify { xxxx:xxxx:xxxx:xxxx::xxx5; xxx5; };
由于我的奴隶有一个区域configuration如下:
zone "example.dev" { type slave; masters { xxxx:xxxx:xxxx:xxxx::xxx2; xxx2; }; file "..."; };
这个设置工作正常,但是通过检查日志文件(并且如我所料),主服务器在每个区域更改时通知从服务器两次:
May 20 20:57:53 salvedns named[8568]: zone example.dev/IN: notify from xxx2#52041: zone is up to date May 20 20:57:53 salvedns named[8568]: zone example.dev/IN: notify from xxxx:xxxx:xxxx:xxxx::xxx2#51347: zone is up to date
有一次,通过IPv4和另一个通过IPv6。
有没有一种方法,我可以告诉绑定服务器xxxx:xxxx:xxxx:xxxx::xxx5 xxx5确实是同一个DNS服务器的地址,并尝试通过IPv6通知它,如果失败重试通过IPv4? 另外,如何在“ masters声明”上做同样的事情?
谢谢。
我不相信有一个configuration选项,将会做你所要求的。 不过,我也不相信双重通知真的是值得担忧的。
虽然在这个configuration中是多余的,但是它导致的开销是最小的,并且通常没有问题。
一般来说,接收到多个通知消息并不在规范之外,原来主要是从主控+其他从属,现在也是双栈主机,甚至连原来的规格都期望这样 :
4.2。 每个从设备可能会收到相同的NOTIFY请求的几个副本:一个来自主要主设备,另一个来自其他从设备,因为该从设备传输新的区域并通知其潜在对等设备。 NOTIFY协议支持这种多重性,它要求只有在更新了SOA RR或已经确定不需要更新之后才由主/从发送NOTIFY,这实际上意味着在成功的区域传输之后。 因此,禁止交付重新sorting,任何从属收到的最后一个NOTIFY将是最新的变化。 由于从服务器总是只从其已知主服务器请求SOA和AXFR / IXFR,所以在每个主服务器完成每个区域更新后,它将有机会重试其针对SOA的QUERY。