DNS查询是否总是通过UDP传输?
我花了一些时间研究这个主题,但似乎找不到确切的答案,因此我相当有信心这不是重复的,尽管我的问题是基于安全需求,但我认为它仍然是安全的在这里询问,但是让我知道是否需要将其移至安全社区。 从本质上讲,DNS查询是否曾经使用TCP(如果这样,这会发生什么情况)?同样,我只在谈论查询。他们有可能通过TCP传输吗?如果域的最大长度不能超过253个字节,而UDP数据包则可以最大为512个字节,那么查询是否总是会像UDP一样出局?我认为可解析的查询可能不够大,无法要求使用TCP。如果DNS服务器收到对大于253字节的域的请求,服务器会丢弃它/不尝试解决它吗?我敢肯定,我在这里做了一些错误的假设。 在某些情况下,我正在与安全小组合作,将DNS查询加入其安全监视工具中,并且由于各种原因,我们决定将通过DNS服务器和域控制器上的标准数据包捕获来捕获此流量。核心要求是捕获所有DNS查询,以便它们可以识别哪个客户端尝试解析任何给定的域。基于此要求,我们与捕获DNS响应或其他流量(例如区域传输)无关,这也是由于我们需要尽可能限制日志量这一事实所驱动。因此,我们计划仅捕获发往DNS服务器并通过UDP发送的DNS查询。有关更多背景信息(问题范围在这里蔓延),现在有人提出我们可能需要扩展安全性。的可见性,以便他们可以监视诸如在DNS上运行的秘密通道之类的活动(这也需要捕获DNS响应以及随后的TCP流量)。但是即使在这种情况下,我也认为任何出站DNS流量都将以查找/查询的形式出现,并且即使来自恶意来源,它们也总是通过UDP传输(由于第一段中的原因)。因此,这带来了一些其他问题: 我们至少不会使用我概述的方法来捕获一半的对话吗?还是客户端会发出不是查询形式的DNS流量?(可能像对DNS服务器响应的某种回复,并且可能最终通过TCP发出) 是否可以将DNS查询修改为使用TCP?DNS服务器会接受并响应通过TCP发出的DNS查询吗? 不确定是否相关,但我们确实将DNS请求限制在授权的DNS服务器上,并阻止所有其他通过端口53出站的流量。我绝对是菜鸟,因此对于我的问题不符合要求,我们深感抱歉,并告诉我我应该如何修改。