DF 位总是为 DNS 查询响应设置

网络工程 ipv4 域名解析 ip
2021-07-31 19:31:19

当我尝试使用 Wireshark 捕获数据包时,我观察到 Don't fragment 位始终设置为 1. 所有 TCP 数据包和 2. DNS 查询响应。

我明白为什么情况 1 是这样,这里

现在,我的问题是 1. 为什么它总是设置为 DNS 查询响应?2. 如果这个数据包没有设置 DF 位并且它在去往客户端的途中被分片,它会在客户端造成任何问题吗?

1个回答

所以坦率地说,我不知道这是一回事,也不知道这是为什么 - 但是一些谷歌福能够提供答案。以后请多做一些研究。

从 ServerFault 窃取部分响应: https ://serverfault.com/questions/587625/why-dns-through-udp-has-a-512-bytes-limit

  1. 防火墙通常会对 DNS 数据包设置 512 字节的硬限制(这是可调整的)。根据 IP RFC ( https://www.rfc-editor.org/rfc/rfc791 ):

每个 Internet 目的地都必须能够接收 576 个八位字节的数据报,无论是整块还是要重新组装的片段。

由于 DNS 通常是 UDP(除了区域传输或 DNSSEC 是 TCP),因此无法确保交付。RFC 中的上述声明保证了主机能够处理响应大小。这相应地对应于 576 字节的最小可能 MTU。

  1. 如上所述,如果您使用其他 DNS 功能(DNSSEC、EDNS 等),则可以。通常在这些情况下,您可以增加防火墙上的最大数据包大小。这是一个例子:http : //www.cisco.com/web/about/security/intelligence/dnssec.html