我们组织的主要 DNS 服务器是 Windows Server 2008,它设置了两个转发器。我偶然注意到我们的防火墙上除了标准 UDP 查询外,还向转发器发送常规 TCP 请求。我在服务器上运行了 Wireshark,发现速率有所不同,但大约为每秒 2 个数据包。所有数据包几乎相同:
<server> <forwarder> TCP 62 55148 > domain [SYN] Seq=0 Win=8192 Len=0 MSS=1460 SACK_PERM=1
有时转发器会通过重置做出响应:
<forwarder> <server> TCP 60 domain > 55148 [RST, ACK] Seq=1 Ack=0 Win=0 Len=0
这是正常的、预期的行为吗?还是我应该担心?我没有看到我们的其他 DNS 服务器表现出同样的行为。这是我们唯一通过 TCP 发送一些 DNS 数据包的 Windows 服务器。
答案1
如果您进一步深入研究这些数据包捕获,您可能会发现这些 TCP 请求遵循 512 字节的截断 UDP 响应。或者,这可能是执行区域传输的尝试,但您说这是一个转发器,这让我不太相信这一点。
在没有通过 UDP 工作的 EDNS 的情况下,DNS 软件通常会尝试 TCP 重试以获取完整的数据包。[SYN]
后面跟着[RST, ACK]
意味着远程服务器没有监听该端口并返回经典的“连接被拒绝”。
如果确实发生了这种情况,您需要找出远程服务器拒绝 TCP 会话的原因。DNS 服务器无法获取完整回复负载的影响完全取决于请求该负载的应用程序以及该数据的使用方式。