路由器上的 MTU 设置如何影响设备?

路由器上的 MTU 设置如何影响设备?

这更像是一个需要澄清的问题,而不是寻求解决方案。我读过很多关于路由器和设备上 MTU 调整的问题和答案,但我不明白我的家庭设置发生了什么。

我的 ISP 为我提供了稳定的 100 Mbps 无源光纤互联网连接。我使用常规网站和服务器时没有遇到任何问题,但我的公司 VPN(Cisco Any Connect)在访问公司内联网网站时总是出现超时。

简单的 ping 测试显示丢失率约为 45%(丢失率非常高)。仅当连接到 VPN 时才会出现这种情况。

在到达主 ISP 路由器(光纤)之前,我有一个 Wifi 路由器,我的计算机通过以太网 LAN 端口连接到该路由器,因此我在我的设置中使用了 2 个路由器。

 PC <--> WiFi Router (10.0.0.0/24) <--> ISP fiber router (192.168.1.0/24) <--> Internet

经过长时间的搜索后,我开始使用以下命令调整连接到公司 VPN 的以太网接口中的 MTU(我的计算机运行的是 Windows 10 Pro):

# Find the best MTU size without fragments
ping www.google.com -f -l 1294

# List interfaces and MTU
netsh interface ipv4 show interfaces

# List subinterfaces
netsh int ipv4 show subinterface

# Change MTU for Ethernet Card
netsh int ipv4 set subinterface "Ethernet" mtu=1294 store=persistent

如您所见,经过大量测试,我发现 1294 这个值是最佳值。实际上,使用 1464 时不会出现碎片,但只有当我更改为 1294 时,Intranet 站点才能正常工作。

现在,通过在 PC 上设置 1294,我可以完美地访问所有内联网站点和连接,不会出现任何掉线或超时(ping 丢失率降至 <5%)。

然后我将 PC 以太网卡 MTU 的值恢复为 1500(Windows 默认值),然后将 2 个路由器上的 MTU 更改为 1294,并重新启动它们,同时重新启动 PC。我尝试一次只更改每个路由器上的 MTU,但最终对两个路由器都进行了更改。

但是……更改路由器上的 MTU 值不会影响我的 PC 连接。我需要更改 MTU,以便以太网卡在连接到 VPN 时正常工作且不会出错。

应该是那樣嗎?

顺便说一句,我的 ISP 连接非常稳定。在 VPN 之外对许多站点进行 ping 测试时,我完全没有损失。

答案1

问题可能是大型数据包无法在您的公司网络上工作。我从未听说过在 MTU 低于 1500 时会出现此问题,但这似乎就是问题所在。您使用 ping 执行的操作会分解(分段)任何大于 1294 字节的数据包,以便它们可以作为较小的数据包传输网络。数据包需要重新组装回其原始大小,通常在您正在与之通信的机器上进行。MTU 设置将此应用于所有数据包。

现在,VPN 对碎片化是透明的。如果您的路由器强制对 VPN 数据包进行碎片化以达到 1294 字节的 MTU,那么这些数据包在互联网上传输的最大大小为 1294 字节。问题是企业网络内的 VPN 服务器会将它们重新组装为完整大小并将它们吐出为完整大小的数据包。因此,VPN 服务器之外的有缺陷的企业网络看到的数据包大于 1294 字节。您需要在 VPN 封装之前应用 MTU。因此,离开 VPN 服务器的数据包也将被碎片化。

相关内容