现在我的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模式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)