首页 > 解决方案 > 我可以将 DPDK 用作网络监控应用程序的数据包捕获模块吗?

问题描述

我的被​​动network monitoring应用程序需要从网络接口捕获数据包(以更高的数据包速率)。数据包捕获模块应该能够在捕获每个数据包时调用监控函数(并将数据包写入pcap文件)。

我想在我的监控应用程序中DPDK用作数据包捕获模块(分别使用pcap_loop和和),但我不确定这是否是 的用例之一,还是打算像这样使用?pfring_looplibpcappfringDPDKDPDK

所以我的问题是.. 我可以DPDK用来满足我的要求吗?,如果是,如何开始?

操作系统:Linux。
Karnal 版本:4
. DPDK 版本:最新稳定版。
在物理设备上捕获。
捕获应用程序具有 root 权限,将由网络管理员使用(作为被动资产发现的一部分)。
我想使用 DPDK,因为它支持高达 10 Gbps 的线速捕获

谢谢你。

标签: libpcappacket-capturedpdkpf-ring

解决方案


根据评论中的更新和澄清,请求是Can one replace an existing application which PF_RING API calls with DPDK API which is written in C?。简单的回答是可以的

这是一个应该如何开始

  1. 识别平台(最好是 Linux/BSD,windows 21.02 仍在进行中)
  2. 识别支持的 CPU 的处理器列表
  3. 从DPDK NIC 的 LIST 中识别要使用的 NIC
  4. 使用 Linux 环境设置Linux 环境
  5. 探索basicfwd 用法的基本示例/骨架
  6. 使用 DPDK API 获取数据包的以太网标头的开头rte_pktmbuf_mtod。DPDK/examples 文件夹中有许多示例,它们的作用相同。
  7. 调用example/skeleton的rx_burst和tx_burst之间的包处理函数逻辑。

推荐阅读