DPDK数据包捕获框架

本文介绍了如何使用 DPDK 数据包捕获框架在DPDK端口捕获数据包,以供那些希望更多了解其特性或能够监控DPDK控制设备的流量的用户作为参考。

DPDK数据包捕获框架由DPDK pdump库和DPDK pdump工具组成,在DPDK v16.07中被初次引入。

DPDK pdump库和pdump工具

(http://dpdk.org/doc/guides/prog_guide/pdump_lib.html?highlight=librte_pdump)

librte_pdump 库服务于那些被要求能够允许用户初始化数据包捕获框架,启用或禁用数据包捕获功能的API。该库适用于客户端/服务器模式,并推荐用于debug。

“dpdk-pdump” 是基于librte_pdump库开发的工具,作为DPDK次级进程运行,并且能够启用或禁用DPDK端口上的数据包捕获功能。dpdk-pdump工具提供了命令行选项,用户可以通过该选项请求启用或禁用DPDK端口上的数据包捕获功能。dpdk-pdump工具只能与数据包捕获框架已初始化的主应用程序配合使用。

初始化数据包捕获框架的应用程序作为服务器,启用或禁用数据包捕获功能的应用程序作为客户端。服务器将Rx和Tx数据包从DPDK端口发送到客户端。

修改了 DPDK ‘testpmd’ 应用以初始化数据包捕获框架,作为服务器,dpdk-pdump工具作为客户端。 如果要查看testpmd的Rx或Tx数据包,首先应启动应用程序,然后再启动dpdk-pdump工具。 testpmd的数据包先被发送到pdump工具,然后再从pdump工具发送到pcap pmd设备,最终该设备根据命令行选项将数据包写入pcap文件或外部接口。

测试环境

图1演示了dpdk-pdump工具在DPDK端口上进行数据包捕获的方式。


图1 :使用dpdk-pdump工具在DPDK端口上进行数据包捕获

配置步骤

以下步骤演示了如何运行dpdk-pdump工具来捕获dpdk_port0的Rx端数据包,并使用tcpdump进行监控。

1. 根据安装文件构建DPDK,确保DPDK符合以下配置选项集:

2. 启动testpmd作为主要应用程序:

3. 根据以下说明启动pdump工具:

4. 通过流量生成器向dpdk_port0发送流量

5. 使用可以解析pcap文件的工具查看capture.pcap的内容,例如tcpdump :

结论

在本文中,我们介绍了DPDK pdump库和pdump工具,以及如何使用它们来捕获在DPDK端口上传输的流量。

其他信息

关于librte_pdump库和dpdk-pdump工具的更多信息,请参见以下链接。

  • 《DPDK程序员指南》(http://dpdk.org/doc/guides-16.07/prog_guide/pdump_lib.html)有专门章节详细介绍librte_pdump库的运作方式。
  • 《示例应用程序使用者指南(http://dpdk.org/doc/guides16.07/sample_app_ug/pdump.html)有专门章节介绍dpdk-pdump应用。
  • Use the DPDK pdump feature with open vSwitch*(https://software.intel.com/en-us/articles/dpdk-pdump-in-open-vswitch-with-dpdk)这篇文章介绍了dpdk-pdump在OvS-DPDK配置中的使用。

任何疑问,欢迎发送邮件到users@dpdk.org咨询。

本文翻译自 Intel Developer Zone:
https://software.intel.com/en-us/articles/dpdk-packet-capture-framework

作者简介
Reshma Pattan是英特尔公司的网络软件工程师,其主要工作领域为DPDK数据平面库的开发。对DPDK的贡献包括添加了数据包重新排序库,数据包排序示例应用程序,pdump库和dpdk-pdump工具。

原文地址:DPDK开源社区

“DPDK数据包捕获框架” 包含 1 条回应

发表评论

电子邮件地址不会被公开。 必填项已用*标注