ibdump
用于捕获和转储InfiniBand网络的流量。
这种工具通常用于调试和分析InfiniBand网络问题,包括性能瓶颈和配置错误。`ibdump`工具在Mellanox InfiniBand环境中较为常用,现由NVIDIA提供支持。
使用`ibdump`的基本步骤
请注意,您需要在安装了InfiniBand驱动和相应软件包的系统上运行`ibdump`:
1. 确保安装了相关软件:
`ibdump`可能需要特定的软件和驱动程序才能正常工作。这通常会包括Mellanox OFED (MOFED) 驱动。您可以从Mellanox/NVIDIA的官方网站下载并安装适合您系统的MOFED版本。
2. 获取适当的权限:
使用`ibdump`可能需要root权限,或者您可能需要将当前用户添加到具有相应权限的用户组中。
3. 找到想要监听的端口:
您可以使用如`ibstat`或`ibv_devinfo`之类的命令获取InfiniBand端口的状态和详细信息。
4. 使用ibdump命令:
- 基本的命令格式通常如下:`ibdump -p PORT_NUMBER`
这里`PORT_NUMBER`是您想要监听和捕获数据包的InfiniBand端口号。
- 如果您想要将输出保存到文件中,可以使用 -o FILE_NAME
选项:`ibdump -p PORT_NUMBER -o dump_file`
5. 运行ibdump并分析转储数据:
一旦您运行了`ibdump`,它将开始捕获流过指定端口的数据包,并根据您的指定将其输出到屏幕或文件中。您可以使用Wireshark或其他分析工具来查看和分析这些转储文件。使用示例:
sudo ibdump -p 1 -o ib_traffic.dump
这将捕获端口1的InfiniBand流量,并将输出保存到`ib_traffic.dump`文件中。
如果只运行ibdump
ibdump
默认的第一个设备, 端口1,保存到文件sniffer.pcap。
错误信息的解决:
出现的错误信息 "-E- Failed to set sniffer mode. ibv_create_flow failed: Invalid argument" 表示系统在尝试设置网络嗅探模式时失败了,因为执行 ibv_create_flow
这一操作时传入了无效的参数。嗅探模式通常用于监控网络接口的数据流,这在使用 Mellanox 驱动的网络设备中是一个重要的功能。
这个错误提示可能表明你的系统未启用 Flow Steering(流量引导)功能。Flow Steering 可以帮助网络驱动将数据包分流到特定的队列中,这对于数据包嗅探等应用来说是很有用的。在 Mellanox 驱动中,你可以通过修改驱动的参数来启用这个功能。
根据提供的错误解决建议,你可以按照以下步骤解决该问题:
1. 编辑 mlnx.conf 文件
需要向 Mellanox 驱动的设置中添加一条配置。在终端中运行以下命令:
sudo nano /etc/modprobe.d/mlnx.conf
这条命令使用 nano
文本编辑器打开配置文件,你也可以使用其他文本编辑器,如 vi
或 vim
。
(实际mlnx.conf提示:Please don't edit this file. Create a new file under # /etc/modprobe.d/ for your configurations. 所以在/etc/modprobe.d/下根据主机上的实际IB名称创建:mlx4_0.conf)
然后,将以下内容添加到该文件中:
options mlx4_core log_num_mgm_entry_size=-1
这行代码将 Mellanox 驱动内核模块(mlx4_core)的被管理入口大小的数目设置为最大值,允许使用全部的流量引导范围。
2. 重启驱动程序
为了让更改生效,你需要重启 Mellanox 驱动。这可以通过卸载并重新加载驱动模块或重启系统来完成。使用以下命令卸载并重新加载驱动模块:
sudo rmmod mlx4_ib mlx4_en mlx4_core
sudo modprobe mlx4_core
sudo modprobe mlx4_en
sudo modprobe mlx4_ib
rmmod
命令用于卸载驱动模块(如果它们没有在使用中),`modprobe` 命令用于重新加载它们。这里显示的顺序通常是正确的,因为 "ib" 和 "en" 模块依赖于 "core" 模块。另一种方式,重启计算机同样可以加载修改过的配置:
sudo reboot
重启或重新加载模块之后,尝试再次运行你的网络嗅探工具,看看问题是否已经解决。 请注意,根据您所使用的系统和 InfiniBand 卡的型号,具体的模块名称和步骤可能会有所不同。
参考:
【网络】TCP抓包|RDMA抓包|ibdump、tcpdump用法说明_rdma流量如何抓包-CSDN博客