我已经阅读了一些相关内容,根据我的理解,这是可能的,但是怎么做呢?
我知道 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。