【infiniband】ibdump抓包

ibdump用于捕获和转储InfiniBand网络的流量。

这种工具通常用于调试和分析InfiniBand网络问题,包括性能瓶颈和配置错误。`ibdump`工具在Mellanox InfiniBand环境中较为常用,现由NVIDIA提供支持。

使用`ibdump`的基本步骤【infiniband】ibdump抓包_第1张图片

请注意,您需要在安装了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。

【infiniband】ibdump抓包_第2张图片错误信息的解决:

出现的错误信息 "-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 卡的型号,具体的模块名称和步骤可能会有所不同。

参考:【infiniband】ibdump抓包_第3张图片

【网络】TCP抓包|RDMA抓包|ibdump、tcpdump用法说明_rdma流量如何抓包-CSDN博客

你可能感兴趣的:(C语言,编程,网络,linux,网络)