domain-name-system – 强制转发器DNS请求到TCP模式

domain-name-system – 强制转发器DNS请求到TCP模式,第1张

概述我在多宿主服务器上的SLES10(当前绑定9.6)上设置了DNS服务器.可以从所有内部网络查询此服务器,并为所有内部网络提供答案.我们有两个独立的DNS“主”区域.这些区域中的每一个都由许多权威的 Windows-DNS服务器提供服务. 现在我的linux-server是其中一个区域(私有内部区域)的辅助DNS服务器,并充当另一个区域(公共内部区域)的转发器. 直到最近,这种设置工作没有问题.现在 我在多宿主服务器上的SLES10(当前绑定9.6)上设置了DNS服务器.可以从所有内部网络查询此服务器,并为所有内部网络提供答案.我们有两个独立的DNS“主”区域.这些区域中的每一个都由许多权威的 Windows-DNS服务器提供服务.

现在我的linux-server是其中一个区域(私有内部区域)的辅助DNS服务器,并充当另一个区域(公共内部区域)的转发器.

直到最近,这种设置工作没有问题.现在我得到 – 在查询公共内部区域时
(例如,通过linux客户端上的host命令)错误消息

;; Truncated,retrying in TCP mode

wireshark-dump揭示了原因:第一个查询在UDP模式下出现,答案不适合UDP(由于权威NS的冗长列表),然后在TCP模式下重试,提供正确的答案.

现在的问题是:
我是否可以配置我的绑定以在TCP模式下查询转发器而不先尝试UDP?

更新:尝试使用ASCII-art …

+--------------+   +--------------+   +-----------------+| W2K8R2 DNS   |   | SLES 10 DNS  |   | W2K8R2 DNS      || Zone private +---+ All internal +---+ Zone public     || internal 2x  |   |   Zones      |   | internal 30+ x  |+--------------+   +-+----------+-+   +-----------------+                     |          |                  +--+---+   +--+---+                  |ClIEnt|   |ClIEnt|                  +------+   +------+
解决方法@H_301_23@ 首先,我不会称之为错误,只是一条信息性消息.

其次,DNS服务器将始终应答UDP查询(至少BIND,我找不到禁用UDP的选项),客户端将始终(?)尝试首先发送UDP查询(例如,resolv.conf中没有选项可以更改也不在JVM中) – 如果它们适合UDP数据包(通常请求)

如果您有特定用例,则可以指定使用TCP,例如在shell脚本中使用’dig tcp’或’host -T’进行解析,你可以使用系统调用’sethostent / gethostbyname / endhostent'(参见手册页)在其他情况下强制TCP.

如果你真的想尝试阻止UDP,我能看到的唯一选择是使用iptable规则,但我不确定该设置是否有效.我希望DNS解析完全失败.

总结

以上是内存溢出为你收集整理的domain-name-system – 强制转发器DNS请求到TCP模式全部内容,希望文章能够帮你解决domain-name-system – 强制转发器DNS请求到TCP模式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1093896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存