RDMA如何抓包,ibdump如何使用。

RDMA如何抓包,从网上看了很多都需要打开sniffer on,但是我查了以下根本没有这个选项,安装的也是迈洛斯官网驱动。

root@root:/home/user# cat /etc/issue
Ubuntu 22.04.2 LTS \n \l

root@root:/home/user# ibdump -v
ibdump, 3.0.0-7, built on Dec 18 2019, 17:02:44. GIT Version: NA
root@root:/home/user# ofed_info -s
MLNX_OFED_LINUX-5.9-0.5.6.0:
root@root:/home/user# ibdev2netdev
mlx5_0 port 1 ==> ens6f0np0 (Up)
mlx5_1 port 1 ==> ens6f1np1 (Down)
root@root:/home/user# ibdump -d mlx5_0
Initiating resources ...
searching for IB devices in host
Port active_mtu=1024
MR was registered with addr=0x56097c7e0430, lkey=0x1827d6, rkey=0x1827d6, flags=0x1
 ------------------------------------------------
 Device                         : "mlx5_0"
 Physical port                  : 1
 Link layer                     : Ethernet
 Dump file                      : sniffer.pcap
 Sniffer WQEs (max burst size)  : 4096
 ------------------------------------------------

Failed to set port sniffer1: command interface bad param
root@root:/home/user# ethtool --set-priv-flags ens6f0np0
root@root:/home/user# ethtool --show-priv-flags   ens6f0np0
Private flags for ens6f0np0:
rx_cqe_moder       : on
tx_cqe_moder       : off
rx_cqe_compress    : off
tx_cqe_compress    : off
rx_striding_rq     : on
rx_no_csum_complete: off
xdp_tx_mpwqe       : on
skb_tx_mpwqe       : on
tx_port_ts         : off
dropless_rq        : off
per_channel_stats  : on
tx_xdp_hw_checksum : off
skb_xmit_more      : off
root@root:/home/user# ethtool --set-priv-flags ens6f0np0 sniffer on
netlink error: bit name not found (offset 52)
netlink error: Operation not supported
root@root:/home/user# 
root@root:/home/user# cat /etc/modprobe.d/mlnx.conf 
# Module parameters for MLNX_OFED kernel modules
#
# Please don't edit this file. Create a new file under
# /etc/modprobe.d/ for your configurations.
options mlx5_core log_num_mgm_entry_size=-1


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    RDMA(远程直接内存访问)是一种高性能的数据传输协议,它实现了数据在远程计算机之间的高速传输。为了调试RDMA,可能需要抓取RDMA的数据包,以下是一些步骤来解释如何在RDMA中抓包:

    1. 安装Wireshark Wireshark是一款开放源代码的网络协议分析工具,它可以用来抓取RDMA包。安装 Wireshark,并确保其版本支持 RDMA。

    2. 配置网卡为混杂模式 为了抓取 RDMA 包,需要使网卡进入混杂模式。可以使用如下命令将网卡 eno1 进入混杂模式:

    sudo ip link set eno1 promisc on
    
    1. 打开Wireshark 在Wireshark的界面上选择 eno1 网卡。

    2. 开始抓包 点击 捕获选项卡上的 开始 按钮,Wireshark 开始抓包。

    3. 停止抓包 在需要停止抓包时,点击 捕获选项卡上的 停止 按钮。

    4. 分析包 可以通过Wireshark的界面对抓取的数据包进行分析。

    另外,你也可以使用ibdump来捕获RDMA包,以下是一些使用ibdump的提示:

    1. 安装IBDump IBDump 是开放源代码的 InfiniBand 抓包工具,它可以抓取 RDMA 包。可在InfiniBand官网下载。

    2. 运行ibdump 打开终端,运行以下命令启动ibdump:

    sudo ibdump -i 1 -v -x -p
    
    1. 关闭ibdump 在需要停止ibdump时,可以使用Ctrl-C停止。

    2. 分析ibdump的输出 ibdump 输出的大量数据可能需要进行进一步的分析。可以使用grep等工具来过滤ibdump输出的数据。

    以上是使用 Wireshark 和 ibdump 抓取 RDMA 包的一些步骤,希望能对你有帮助。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

RDMA是一种基于硬件的网络传输技术,使用专用的网卡和协议栈。要抓取RDMA的网络数据包,你需要使用专门的工具,例如ibdump。

ibdump是一个用于抓取RDMA数据包的工具,它可以在RDMA设备和主机之间进行数据包捕获,并提供详细的分析和诊断功能。以下是ibdump的使用方法:

安装和配置
在使用ibdump之前,需要安装RDMA核心驱动和RDMA用户空间工具包。你可以在Linux系统中使用以下命令安装:

sudo apt-get update
sudo apt-get install rdma-core
```sql



安装完毕后,需要启用RDMA和ibdump:

```sql

sudo systemctl start rdma
sudo systemctl start ibdump

抓包
使用ibdump抓取数据包需要指定RDMA设备和抓包选项。例如,以下命令将抓取名为"mlx4_0"的设备的所有发送和接收数据包,并将结果保存到文件中:

sudo ibdump -i mlx4_0 -f dump.pcap -s 0 -vvvvvvvvvv

在这个命令中,-i参数指定要抓取的设备,-f参数指定输出文件名,-s参数指定抓包时的抓取大小(0表示抓取整个包),-vvvvvvvvvv参数指定详细的抓包信息输出。

分析数据包
使用Wireshark等抓包分析工具可以分析ibdump抓取的数据包。你可以打开dump.pcap文件并分析其中的RDMA数据包。

注意,抓取RDMA数据包需要对系统进行一些调整和配置,同时抓包可能会对系统性能产生影响,因此需要谨慎操作。