【RDMA】RDMA抓包|ibdump 用法说明-程序员宅基地

技术标签: 运维  linux  服务器  

目录

一、RDMA抓包

1.ibdump

2.tcpdump (docker,Linux内核从4.9以上)

3.Offloaded Traffic Sniffer(tcpdump,ConnectX-4以上的版本,libpcap库v1.9或更高版本)

ibdump 用法说明

数据收发测试工具:

二、抓包结果分析

RDMA抓包


目录

诊断工具--翻译中

RDMA抓包

ibdump

tcpdump (docker,Linux内核从4.9以上)

Offloaded Traffic Sniffer(tcpdump,ConnectX-4以上的版本,libpcap库v1.9或更高版本)

未整理工具


作者:bandaoyu,原始连接:https://blog.csdn.net/bandaoyu/article/details/115791233

一、RDMA抓包

有三种方法。(抓包:sniffer packet、Packet capture)

1.ibdump

嗅探RDMA流量(抓包RDMA)非常棘手,因为一旦两端完成了初始握手,数据便会不经过内核协议栈通过网卡(HCA)直接到达内存。除了在网络上放置专用硬件嗅探器来抓包,剩下的唯一方法就是在网卡内放置有网卡商的hook接口,然后网卡商提供使用这些接口的 软件工具。

例如:Mellanox HCA(网卡)的ibdump,This tool is also a part of Mellanox OFED package.

  • 编译

Mellanox   github: https://github.com/Mellanox/ibdump

编译报错:ibdump.c:890:30: 错误:‘IBV_FLOW_ATTR_SNIFFER’未声明(在此函数内第一次使用)

则在文件:vim ibdump.c  添加:

#if !defined(IBV_FLOW_ATTR_SNIFFER)
#define IBV_FLOW_ATTR_SNIFFER   3
#endif
具体含义见:https://man7.org/linux/man-pages/man3/ibv_create_flow.3.html

执行:

make WITHOUT_FW_TOOLS=yes
  • 用法

启用步骤:

1.将以下内容添加到/etc/modprobe.d/mlnx.conf文件:
options mlx4_core log_num_mgm_entry_size = -1:

(实际mlnx.conf提示:

Please don't edit this file. Create a new file under
# /etc/modprobe.d/ for your configurations.
所以在/etc/modprobe.d/下创建:

mlx5.conf #根据主机上的实际ib名称创建

options mlx4_core log_num_mgm_entry_size = -1:
options mlx5_core log_num_mgm_entry_size = -1: #不确定,我又补了这一句
)

2.重新启动驱动程序。

重启网络接口ib0

ifdown ib0
ifup ib0

注意:如果将HCA的端口中有一个配置为InfiniBand,则ibdump要求IPoIB DMFS是使能的。有关更多信息,请参阅第3.1.12.1节,启用/禁用流向,第103页。有关更多信息,请参阅工具的手册页。

Mellanox 社区--https://mymellanox.force.com/mellanoxcommunity/s/article/MLNX2-117-2032kn

服务端:
ib_write_bw -d mlx5_1  #监听mlx5_1 网卡

#客户端
ib_write_bw  182.205.31.53  --report_gbits -F

抓包:
 ibdump -d mlx5_1 -i 1
 ibdump -d mlx5_1 -i 1  -w  msg.acp #抓包并写入msg.acp 

测试RDMA网卡:https://blog.csdn.net/ljlfather/article/details/102925954

2.tcpdump (docker,Linux内核从4.9以上)

最新消息:Linux内核从4.9版开始就支持抓包RDMA(RoCE)流量。tcpdump发展到使用RDMA verbs接口直接 捕获流量。请确保使用最新的Linux内核service:https://hub.docker.com/r/mellanox/tcpdump-rdma

(查看内核版本命令:uname -r、uname -a、lsb_release -a)
但是,在某些系统上很难升级tcpdump应用程序和关联的库以利用最新功能(特别是RDMA嗅探器)。

使用该docker容器是用户能使用tcpdump捕获和分析RDMA数据包的简单,优雅且最快的方式。

使用方法:

1、拉取容器:
docker pull mellanox / tcpdump-rdma

2、启动容器
docker run -it -v /dev/infiniband:/dev/infiniband -v /tmp/traces:/tmp/traces --net=host --privileged

现在mellanox/tcpdump-rdma bash 开始使用RDMA设备mlx5_0捕获数据包。 (注意RDMA设备,而不是以太网设备)

3、保存捕获结果到文件

tcpdump -i mlx5_0 -s 0 -w /tmp/traces/capture1.pcap 

这会将数据包保存在容器内外/ tmp / traces目录中的capture1.pcap文件中。

3.Offloaded Traffic Sniffer(tcpdump,ConnectX-4以上的版本,libpcap库v1.9或更高版本)

原文:https://docs.mellanox.com/display/MLNXOFEDv451010/Offloaded+Traffic+Sniffer

ConnectX-4更高版本的网卡中受支持

Offloaded 流量嗅探器 使得bypass kernel的数据传输方式 (如 RoCE, VMA, and DPDK)的流量可以被tcpdump等现有的抓包分析工具捕获

使能Offloaded   Traffic Sniffer :

  1. Turn on the new ethtool private flags "sniffer" (off by default). 

    $ ethtool --set-priv-flags enp130s0f0 sniffer on

  2. 在要监听的以太网接口上设置sniffer 标志后,运行tcpdump捕获该接口上的bypass kernel 流量。

注意:使能Offloaded Traffic Sniffer会降低bypass kernel数据流的速度。

有关如何使用ConnectX-4网卡自带的tcpdump工具 dump RDMA流量的示例:

(示例英文原文:https://community.mellanox.com/s/article/how-to-dump-rdma-traffic-using-the-inbox-tcpdump-tool--connectx-4-x)</

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42319496/article/details/125942766

智能推荐

Pandas中的DataFrame按指定顺序输出所有列的方法-程序员宅基地

文章浏览阅读756次。问题:输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致。例如:import pandas as pdgrades = [48,99,75,80,42,80,72,68,36,78]df = pd.DataFrame( {'ID': ["x%d" % r for r in range(10)], ..._顺序输出dataframe中的一列

用ImageGrab.grabclipboard()获取的图片时出现错误AttributeError: 'NoneType' object has no attribute 'save'解决方案-程序员宅基地

文章浏览阅读1.1w次,点赞11次,收藏6次。 今天使用Python图像处理库ImageGrab,在调用==grabclipboard()==方法获取到剪切板上图片的时候报了这个让我懵圈了的异常~~后来查了官方文档才知道,grabclipboard函数有一个缓存的问题,操作太快,有时候它就会读取上一次的内容,因为第一个没有读取到图像,所以报错了。..._attributeerror: 'nonetype' object has no attribute 'save

数组指针强制转换为结构体指针_数组强制转换为结构体-程序员宅基地

文章浏览阅读6.6k次,点赞22次,收藏56次。前两天在看TI官方提供的BasicRF的源码时,发现一个看不懂的地方,就是将一个数组名强制转换为结构体指针,如下所示。在上面的图片中,basicRfPktHdr_t是一个结构体,rxMpdu是一个长度为128个字节的数组名,pHdr是一个结构体指针。这让我很是清楚这么写是什么意思,因为以前从没有遇到,现在遇到了就算是进一步学习C语言了。通过百度查..._数组强制转换为结构体

页面倒计时器-程序员宅基地

文章浏览阅读492次。 接通电源之后,系统进行初始化,按下设置键S1或者S2,LCD进入时间设置界面,先使用齿轮确定要设定的位置(时、分、秒),按下s1按键进行确认,开始设置这个位置,可以使用齿轮电位计进行对该位置的数进行加减,设置数值,设置完成之后按下S1键进行确认,然后重新使用齿轮电位计确定要设置的位置,重复上述操作。全部设置完成之后,按下S2确认完成设置时间。接着进入倒计时器界面。计时完成之后,LED闪...___delay_cycles(1000000);

Hexo博客删除文章_hexo 删除文章-程序员宅基地

文章浏览阅读1.2w次,点赞4次,收藏8次。目前未找到删除文章的指令,可以到目录/source/_posts下删除相应的文章,然后重新生成部署即可到目录/source/_posts下删除相应的文章 $ hexo g $ hexo d_hexo 删除文章

Ubuntu系统下安装WPS软件_ubuntu wps-程序员宅基地

文章浏览阅读8.7k次,点赞13次,收藏34次。刚安装了ubuntu系统,在此记录一下安装WPS过程。_ubuntu wps

随便推点

Ubuntu网络接口配置文件:nano/etc/network/interfaces 以及 Ifconfig只显示一个lo_etc/network中interface没有了-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏2次。没接触过linux,由于要部署项目,安装的Ubuntu16.04,安装完配置网络接口,遇到的两个问题如下:1 网络接口配置文件:nano/etc/network/interfaces 执行此命令,如果提示bash:/etc/network/interfaces:Permission denied 拒绝访问,没有权限,首先看是不是root用户,是的话执行:chmod_etc/network中interface没有了

AD18中元器件的中心点标注和叉叉怎么取消掉_ad原理图去除交叉点-程序员宅基地

文章浏览阅读2.9k次。不小心按快捷键按错了,结果出现这种圈圈叉叉,干扰布线解决方法:关掉这两个结果:解决!参考:参考的这个有点标题和内容不搭配。牛头马嘴,,,找不到component reference point和3D Body reference point..._ad原理图去除交叉点

基于Android校园跳蚤市场交易系统的设计与实现_基于安卓的跳蚤市场论文-程序员宅基地

文章浏览阅读3.3w次,点赞76次,收藏458次。小跳蚤 大用途前言: 算一算时间又快到了一年一度的毕业设计了吧,我也差不多完成我自己的毕业设计一年了,在此推出我的毕业设计成果以供后来的学弟学妹参考。都说站在巨人肩膀上,更上一层楼,在枯燥的编程期间我也有参考CSND大力哥的文章。很多人 把毕业设计应付过去,但是学习终究是自己的,绝知此事要躬行。接下来跟着我学习和分析的思路看一下成果吧!目录第1章 引言.... 5..._基于安卓的跳蚤市场论文

一文带你快速了解 Java 线上问题快速诊断神器 Arthas_[root@localhost ~]# ./as.sh arthas script version:-程序员宅基地

文章浏览阅读685次,点赞4次,收藏14次。文章目录一、什么是 Arthas二、特性一览三、Arthas 能为你做什么?四、快速安装1、前提条件2、一键安装五、快速使用1、启动并连接进程六、使用示例1、dashboard(当前系统的实时数据面板)2、sysprop(查看或修改java属性)3、mbean(实时查看Mbean信息)4、thread(查看线程)5、thread -n(查看占CPU前几的线程栈信息)6、jad(反编译代码)7、sc(查看已经加载的类)8、sm(列出某个类加载的方法)9、trace(跟踪方法的消耗时间)10、stack (查看_[root@localhost ~]# ./as.sh arthas script version: 3.7.2 [info] java_home: /

opencv 入门笔记十 图片序列保存为视频_opencv将图片保存为视频-程序员宅基地

文章浏览阅读3.8k次。opencv 入门笔记十 图片序列保存为视频_opencv将图片保存为视频

目标检测中准确率评价指标_目标检测overlap-程序员宅基地

文章浏览阅读1.1w次。caffe中实现SSD准确率评价方法是TestDetection()函数。mAp指标值是每个类别的Average precision的平均值。本文分析DetectionEvaluateLayer中实现评价的过程及其评价指标。需要指出的是,一般的前向过程是不包含DetectionEvaluateLayer层的定义的,只有在训练的评价(TEST)过程中才会使用到该layer。具体使用该层时,需要在..._目标检测overlap

推荐文章

热门文章

相关标签