除了手动改变它,MTU是如何设置的?

我最近发现了一个无法连接到我们的服务器的Windows 7客户端 。 原来问题是服务器被设置为1514的MTU,客户端设置为1504。

服务器运行CentOS和grep -i MTU /etc/sysconfig/network-scripts/ifcfg*什么都不显示。 非公开接口eth1仍然是1500.在MTU上,我们的服务器端其他机器都没有1500以外的东西。

在客户端,还有另外一台Windows 7机器,也有1504台机器。把这些机器离开现场,导致他们再次工作(但我不知道这是不是MTU不好,或者是否新的位置导致Windowsselect一个有效的一个),但失败一次带回来。

  1. 什么会导致这两个Windows机器有这个非标准的MTU设置? Windows如何确定MTU设置?

  2. 为什么eth0的MTU设置为1514? Linux如何确定MTU设置?

  3. 我是否应该从现在开始将MTU=1500硬编码到我所有的ifcfg文件中,因为担心别的东西会使它更高? 什么会覆盖1500的默认值?

客户端可以执行pathMTU发现 ,这是两个设备之间完整path上最小的MTU,然后减lessMTU匹配。 对于不应该被分割的stream量,如IPSec,这是特别必要的。

正如Shane Madden在上面的评论中提到的那样,在path上丢弃的ICMP数据包将打破这一点。 我怀疑市场上有一些交换机在默认情况下阻塞了所有的ICMP,因此我会检查是否引入了新的交换机或路由器,以及是否需要启用ICMPstream量。