我试图阻止网络服务器对 DNS 服务器执行 IPv6 查找 (AAAA)。Web 服务器在接口上没有设置 IPv6 地址。在 sysctl.conf 中禁用 IPv6 也没有任何影响,网络服务器不断向 DNS 服务器发送每个主机名的 A 和 AAAA 请求(我执行了 tcpdump)。
谁能帮我停止网络服务器发送 IPv6 主机名查找?
额外信息:
这是在我的内部网络上。TCP转储:
webserver.internal.43831 > internaldns.internal.domain: [bad udp cksum 629d!] 63585+ A? someserver.internal. (43)`
webserver.internal.43831 > internaldns.internal.domain: [bad udp cksum 32dd!] 40337+ AAAA? someserver.internal. (43)
internaldns
返回 A 记录的 IP 和 AAAA 的 NXDOMAIN,因为没有设置一个。
没有理由禁用 IPv6 AAAA 查找(至少您没有给我们提供),所以我对您的回答是,请停止试图超越您的系统并让它按照预期的方式工作。
通过现在禁用 IPv6 查找,您只是为将来在您将 IPv6 添加到您的环境中并且某些系统突然无法正常工作时遇到神秘问题做好了准备。
未来环境的可预测性/正确性远远超过虚假 DNS 请求中几个字节的可忽略成本。
也就是说,如果您仍想使用这种步兵枪,最简单的解决方案(实际上是我所知道 的唯一解决方案)是编译并安装一个不支持 IPv6 的解析器。
如果你做了这样可怕的事情,请确保在不少于 5 个地方(你的站点的文档存储库、MOTD/问题、SSH 横幅、机器本身的标签以及给你老板的备忘录中)进行详细记录,以便当将来它坏了,有可能有人能够快速修复它,而不必弄清楚机器是否被切除了。