我对计算MTU有什么误解?


14

好的,我刚刚解决了几个Xserve,Netgear GSM7224和Drobo B800i之间的巨型帧问题。原来Xserves(Mac OS X 10.6.8 Server)和Drobo B800i接受MTU的字节数通常是预期的(1500-9000),但是Netgear似乎希望它包含各种以太网标头/页脚(预告片) ),最后我最终为Xserves&Drobo配置了9000的MTU,并将Netgear端口设置为9216的MTU。

我已经使用以下命令在Netgear上测试和验证两个Xserve之间的MTU(注意:这是Mac OS X命令,Windows和Linux有所不同):

ping -D -s <mtu> <ip_address>

traceroute -F <ip_address> <mtu>

前者man页面中的用法为:“指定要发送的数据字节数。默认值为56,当与8个ICMP标头数据组合时,它转换为64个ICMP数据字节。” 在测试中,我发现,ping -D 1472 <ip_address>是等效MTU 1500的归因于8个字节ICMP头数据的加20个字节的IP报头(参见)。一切都说得通。

现在,为什么对9000 MTU使用等效命令ping -D -s 8164 <ip_address>?我已经确认这是极限,直到我开始收到“发送到:消息太长”错误,而且9000 MTU可以正常traceroute -F <ip_address> 9000工作,traceroute -F <ip_address> 9001但不能正常工作。那么,为什么是8164?我期望8972(MTU-28个字节,就像1500 MTU一样)。

另外,为什么要为Netgear设置9216 MTU?我算出了42个字节的MAC和以太网标头(包括CRC),再加上20个IP标头(应该被MTU占用了)。

我对这个数学真的很生疏,知道我只是想念一些东西。


1
9216是几乎可以肯定选择是因为它的9×2 ^ 10
克里斯小号

Answers:


11

欢迎来到巨型相框的陌生和神秘世界!巨型帧以太网设备的MTU> 1518且<65K字节是正常的,您必须找到一个设置,该设置是L2域中最低的公分母,以启用适当的巨型流量。

我的猜测是,您的ping / ICMP实现仅适用于8192字节的有效负载,因此8164 + 28(IP头为20,ICMP头为8)为8192字节。

MTU 9216也是许多Cisco设备上的标准9K MTU,因此我认为Netgear希望与之“兼容”。

另请注意,应该认真考虑MTU大小规格,许多供应商都不包括802.1Q(vLAN)甚至L2帧标头。检查您的交换机供应商的文档,他们在谈论MTU大小时实际上指定了什么。


只需添加一条便条:主机和路由器的MTU需要匹配;只要它高于主机设置(+标头),就可以将所有开关的MTU设置为12 bazillion。
Hyppy 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.