有没有一个命令来testing巨型帧是否真的在工作? 即某种forms的“ping”,用来报告这个数据包是否被破坏。
我有一个ESXi主机和一个通过iSCSI挂载Dell MD3000i的Ubuntu VM。 我怀疑在交换机上没有启用巨型帧,并且不能轻易获得pipe理员访问权限。 我可以select将磁盘arrays直接连接到ESXi主机,但想要确认巨型帧是否首先出现问题。
启用巨帧意味着允许更大的最大传输单元(MTU),通常通过将MTU设置为9000。
为了validation这一点,你可以在窗口中使用-l标志设置数据包大小,使用-f标志在数据包中设置Do not Fragment标志。
ping my.test.host -f -l 8972
如果数据包被分割,你会看到
Packet needs to be fragmented by DF set
代替你通常会看到的东西。
对于Linux, ping命令使用不同的标志。 -s
设置数据包的大小, -M do
设置Do Not Fragment。 所以上面的命令是:
ping my.test.host -M do -s 8972
通过调整数据包的大小,你可以计算出链接的mtu是什么。 这将代表path中任何设备允许的最低mtu,这可能是您的交换机,计算机,目标或其他任何设备。
这本身并不能告诉你最低的MTU在哪里 – 你可以通过在path中的不同设备上运行testing来解决这个问题,但是总是有透明路由器限制MTU,但是不会显示出来为traceroute
。
请注意 ,ICMP标头的开销为28字节,因此MTU比通过上述方法build立的数字大28个字节。 所以要检查9000的MTU,你实际上需要设置你的ping数据包大小为9000-28 = 8972。
更新我发现了一些资源,将具体找出跨主机和目标之间的path的MTU:
还有一些关于寻找pathMTU的讨论 。
我不确定这会工作,但你可以试试看:
在具有MDSM客户端的计算机上确保支持并启用巨型帧,然后转到MDSM客户端的支持选项卡并select“收集支持信息”链接,在MDSM客户端上select一个位置以下载文件,在MDSM客户端上启动数据包捕获,然后单击开始button开始收集和下载支持信息(zip文件)。 收集/下载完成后,查看捕获情况,看看MD3000i到MDSM客户端的以太网帧有多大。 如果交换机,MD300i和MDSM客户端都configuration为巨帧,则应该在捕获中的以太网帧大小中看到。
在ESXi中,您需要指定要使用的接口,否则ping将通过mgmt接口进行路由,并在-d中设置DF(不分段):
vmkping -I vmkX -s 8972 -d xxxx
您也可以通过SSH从ESXi控制台检查:打开安全 – >防火墙 – >远程技术支持(SSH),并在login后执行“vmkping -s 8000”或类似的东西(不记得它的选项)