测试巨型帧是否真正起作用


28

是否有命令测试巨型帧是否真正起作用?即某种“ ping”,它报告数据包在途中是否被破坏。

我有一台具有Ubuntu VM的ESXi主机,该VM通过iSCSI挂载Dell MD3000i。我怀疑交换机上未启用巨型帧,并且无法轻松地获得管理员对其的访问权限。我可以选择将磁盘阵列直接连接到ESXi主机,但是想以某种方式先确认巨型帧是一个问题。

Answers:


42

启用巨型帧意味着通常可以通过将MTU设置为9000来允许更大的最大传输单位(MTU)。

要验证此方法是否有效,您可以在Windows中使用ping命令 -l标志来设置数据包大小,并在-f标志中设置数据包中的“不分段”标志。

ping my.test.host -f -l 8972

如果数据包碎片化,您将看到

Packet needs to be fragmented by DF set

代替您通常看到的内容。

对于Linux,ping命令使用不同的标志。-s设置数据包大小,并-M do设置“不分段”。因此,上面的命令将是:

ping my.test.host -M do -s 8972

通过调整数据包大小,您可以确定链接的mtu是多少。这将代表路径中任何设备所允许的最低mtu,该设备可能是您的交换机,计算机,目标或两者之间的任何其他内容。

这本身并不能告诉您最低的MTU在哪里-您可以通过在路径中的不同设备上运行测试来解决这个问题,但是总会有透明的路由器限制MTU但不会显示为traceroute

请注意,ICMP标头的开销为28个字节,因此MTU比通过上述方法建立的数字大28个字节。因此,要检查9000的MTU,实际上需要将ping数据包大小设置为9000-28 = 8972。

更新后,我发现了一些资源,这些资源将专门找出主机和目标之间路径上的MTU:

  • 对于Windows mturoute
  • 对于* nix tracepath或traceroute --mtu

以及关于找到路径的MTU的更多讨论


+1。好答案。我也想到了这一点,但不确定是否可以让他检测出交换机支持的帧大小。我不认为这是在测试路径MTU。
joeqwerty

1
不错。在Windows上。进行一些小改动即可在Linux上运行。[ping 10.1.1.101 -s 1472],其中1472是MTU大小。请编辑您的问题以包括此内容,我将接受
pufferfish

这是一个使用dunxd描述的方法的实用程序:elifulkerson.com/projects/mturoute.php
Chris,

2
好的-手册页将立即为您提供帮助,但是我已经更新了Linux的特定详细信息。为了使测试正常工作,不需要碎片标志,并且在Linux ping中不像在Windows中那样清楚。
dunxd 2011年

1
如果首先在ESXi主机上启用SSH并登录,则可以使用vmkping -d -s 8972 10.1.1.101,其中-s设置数据包大小,而-d设置“不分段”标志。
Eric3

1

我不确定这是否可行,但您可以尝试一下:

在具有MDSM客户端的计算机上,确保支持并启用了“巨型帧”,然后转到MDSM客户端中的“支持”选项卡并选择“收集支持信息”链接,在MDSM客户端上选择一个位置,以将文件下载到该位置,在MDSM客户端上启动数据包捕获,然后单击“开始”按钮以开始收集和下载支持信息(zip文件)。收集/下载完成后,请查看捕获内容,并查看从MD3000i到MDSM客户端的以太网帧有多大。如果将交换机,MD300i和MDSM客户端都配置为巨型帧,则应该在捕获的以太网帧大小中看到该值。



-1

您还可以通过SSH从ESXi控制台中检查它:打开“安全”->“防火墙”->“远程技术支持(SSH)”,并在ssh登录后执行“ vmkping -s 8000”或类似的操作(不记得它的选项了)


4
查找选项,有人可能会投票赞成您。
dunxd 2011年
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.