是否有命令可以测试巨型帧是否真正在工作?即某种“ping”,报告数据包是否在传输过程中被分解。
我有一台 ESXi 主机,其中装有一台 Ubuntu VM,该 VM 通过 iSCSI 安装一台 Dell MD3000i。我怀疑交换机上未启用巨型帧,无法轻松获得管理员访问权限。我可以选择将磁盘阵列直接连接到 ESXi 主机,但首先想通过某种方式确认巨型帧是否存在问题。
答案1
启用巨型帧意味着允许更大的最大传输单元 (MTU),通常将 MTU 设置为 9000。
为了验证这是否有效,你可以使用在 Windows 中 ping使用-l
标志来设置数据包大小,并使用-f
标志来设置数据包中的“不分段”标志。
ping my.test.host -f -l 8972
如果数据包被碎片化,你会看到
Packet needs to be fragmented but DF set
代替您通常看到的内容。
对于 Linux,ping 命令使用不同的标志。-s
设置数据包大小,并-M do
设置不分段。因此上述命令将是:
ping my.test.host -M do -s 8972
通过调整数据包大小,您可以确定链路的 MTU 是多少。这将代表路径中任何设备允许的最低 MTU,这些设备可能是您的交换机、您的计算机、目标或其他任何设备。
这本身不会告诉您最低 MTU 在哪里 - 您可以通过对路径中的不同设备运行测试来解决这个问题,但总是可能存在限制 MTU 但不会显示的透明路由器traceroute
。
笔记ICMP 标头的开销为 28 个字节,因此 MTU 比您通过上述方法确定的数字大 28 个字节。因此,要检查 MTU 是否为 9000,您实际上需要将 ping 数据包大小设置为 9000-28 = 8972。
更新我找到了一些资源,可以具体计算出主机和目标之间的路径上的 MTU:
- 对于 Windows穆图罗特
- 对于 *nix tracepath 或 traceroute --mtu
答案2
我不确定这是否有效,但你可以尝试一下:
在具有 MDSM 客户端的计算机上,确保支持并启用了巨型帧,然后转到 MDSM 客户端中的支持选项卡并选择“收集支持信息”链接,在 MDSM 客户端上选择要下载文件的位置,在 MDSM 客户端上启动数据包捕获,然后单击开始按钮开始收集和下载支持信息(zip 文件)。收集/下载完成后,查看捕获并查看从 MD3000i 到 MDSM 客户端的以太网帧有多大。如果交换机、MD300i 和 MDSM 客户端都配置为巨型帧,您应该在捕获的以太网帧大小中看到它。
答案3
在 ESXi 中,您需要指定要使用的接口,否则 ping 将通过 mgmt 接口路由,再加上 -d 来设置 DF(不分段):
vmkping -I vmkX -s 8972 -d xxxx
答案4
您还可以通过 SSH 从 ESXi 控制台进行检查:打开安全->防火墙->远程技术支持(SSH),然后在 ssh 登录后执行“vmkping -s 8000”或类似操作(不记得它的选项具体是什么了)