我在双 IP 堆栈中运行 Debian 8 + Bind9 的两台机器之间设置了一个小的 Master->Slave DNS 方案。
主从都拥有绑定使用的 IPv4 和 IPv6,由配置参数强制执行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; x.x.x.5; };
正如我的奴隶在区域配置上的那样:
zone "example.dev" {
type slave;
masters { xxxx:xxxx:xxxx:xxxx::xxx2; x.x.x.2; };
file "...";
};
此设置工作正常,但是通过检查日志文件(正如我所料),主控会在每次区域更改时通知从属两次:
May 20 20:57:53 salvedns named[8568]: zone example.dev/IN: notify from x.x.x.2#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
x.x.x.5
确实是同一 DNS 服务器的地址,并尝试首先通过 IPv6 通知它,如果失败则通过 IPv4 重试?另外,如何在药膏masters
声明上做同样的事情?
谢谢你。
我不相信有一个配置选项可以满足您的要求。但是,我也不认为双重通知真的值得关注。
虽然它在此配置中是多余的,但它导致的开销很小,通常根本没有问题。
一般来说,接收多个通知消息并不超出规范,最初主要来自主 + 其他从属,但现在也有双栈主机,甚至原始规范都期望这样: