如何启用 TCP 进行 DNS 解析?

如何启用 TCP 进行 DNS 解析?

我已经阅读了一些相关内容,根据我的理解,这是可能的,但是怎么做呢?

我知道 UDP 对于 DNS 解析来说要好得多,但是由于存在很多问题和限制,我需要使用 TCP,这真的可能吗?我该怎么做?

我正在运行 Centos 5.5,我想要的是任何 DNS 查询都使用 TCP 而不是 udp。

谢谢!

答案1

据我所知这是不可能的。在 OpenBSD 中,你可以添加options tcp/etc/resolv.conf获得你想要的东西,至少理论上是这样,但 Linux 中不存在这个选项。

您也无法配置 BIND 来执行此操作。请参阅此主题,其中 Paul Vixie 本人暗示这无论如何都是一个很糟糕的主意:http://groups.google.com/group/comp.protocols.dns.bind/browse_thread/thread/2272f6c39dcfe364

答案2

您最有可能使用的是 BIND 名称服务器,它默认在 TCP 和 UDP 上运行。您需要做的就是允许 TCP 端口 53 上的流量到达您的服务器。

答案3

DNS 使用 UDP 来解析查询,使用 TCP 来传输区域,UDP 数据限制为 512 字节及以上将自动使用 TCP。

相关内容