我的团队中较旧的缓存 DNS 服务器配置了 BIND 9.11.4;它使用 53 作为源端口号。
options {
...
query-source port 53;
...
}
同时,新版本安装了 BIND 9.16.23;由于指定端口号query-source
已被弃用,我只需按如下所示设置此选项。
query-source address *;
文件的其余部分/etc/named.conf
已准备就绪。当我调用时nslookup {a domain which is not defined in /etc/named.conf} {the private ip of the cache dns server}
,新文件在 TCPDUMP 中显示以下内容:
18:33:50.968991 IP {the public ip}.50181 > 192.5.5.241.53: 29151% [1au] A? _.com. (46)
18:33:50.969044 IP {the public ip}.14081 > 192.5.5.241.53: 31087 [1au] NS? . (40)
18:33:51.768842 IP {the public ip}.32109 > 192.33.4.12.53: 4413% [1au] A? _.com. (46)
18:33:51.768918 IP {the public ip}.21620 > 192.33.4.12.53: 2272 [1au] NS? . (40)
18:33:52.568677 IP {the public ip}.59713 > 199.7.83.42.53: 29280% [1au] A? _.com. (46)
18:33:52.568677 IP {the public ip}.49493 > 199.7.83.42.53: 14473 [1au] NS? . (40)
有什么方法可以修复传出源端口号吗?还是我只能寻找其他方法?
答案1
一般认为,使用单一固定源端口号对于 DNS 来说是不可接受的。DNS 实现的期望实际上是尽可能地从尽可能广泛的范围内随机化源端口,以减轻缓存中毒风险。
如果您环境中的某些东西依赖于使用单个源端口,那么这就是您真正应该着手修复的地方。您之前的配置很奇怪,而新配置的行为符合预期和期望。