puf*_*ish 27 ubuntu iscsi storage-area-network jumboframes
是否有测试巨型帧是否实际工作的命令?即某种“ping”报告数据包是否沿途被分解。
我有一个带有 Ubuntu VM 的 ESXi 主机,它通过 iSCSI 安装了 Dell MD3000i。我怀疑交换机上未启用巨型帧,并且无法轻松获得管理员访问权限。我可以选择将磁盘阵列直接连接到 ESXi 主机,但首先需要某种方式来确认巨型帧是否存在问题。
dun*_*nxd 42
启用巨型帧意味着允许更大的最大传输单元 (MTU),通常通过将 MTU 设置为 9000。
要验证这是否有效,您可以在 Windows 中使用ping 并使用 -l 标志设置数据包大小,并使用 -f 标志设置数据包中的 Don't Fragment 标志。
ping my.test.host -f -l 8972
Run Code Online (Sandbox Code Playgroud)
如果数据包碎片化,您将看到
Packet needs to be fragmented by DF set
Run Code Online (Sandbox Code Playgroud)
代替您通常会看到的内容。
对于 Linux,ping 命令使用不同的标志。-s设置数据包大小,并-M do设置 Do Not Fragment。所以上面的命令是:
ping my.test.host -M do -s 8972
Run Code Online (Sandbox Code Playgroud)
通过调整数据包大小,您可以计算出链路的 mtu 是多少。这将代表路径中任何设备所允许的最低 mtu,可以是您的交换机、计算机、目标或介于两者之间的任何其他设备。
这本身不会告诉您最低 MTU 的位置 - 您可以通过对路径中的不同设备运行测试来解决这个问题,但总会有透明路由器限制 MTU 但不显示为traceroute。
请注意,ICMP 标头有 28 个字节的开销,因此 MTU 比您通过上述方法建立的数字大 28 个字节。因此,要检查 9000 的 MTU,您实际上需要将 ping 数据包大小设置为 9000-28 = 8972。
更新我找到了一些资源,它们将专门计算主机和目标之间路径上的 MTU:
| 归档时间: |
|
| 查看次数: |
40723 次 |
| 最近记录: |