如何解决我可以将 DPDK 用作网络监控应用程序的数据包捕获模块吗?
我的被动 network monitoring
应用程序需要从网络接口捕获数据包(以更高的数据包速率)。数据包捕获模块应该能够在捕获每个数据包时调用监控函数(并将数据包写入 pcap
文件)。
我想在我的监控应用程序中使用 DPDK
作为数据包捕获模块(因为我们分别在 pcap_loop
和 pfring_loop
中使用了 libpcap
和 pfring
) ,但我不确定这是否是 DPDK
的用例之一,或者 DPDK
是否意味着这样使用?。
所以我的问题是..
我可以使用 DPDK
来满足我的要求吗?如果是,如何开始?。
操作系统:Linux。
卡纳尔版本:4.
DPDK 版本:最新稳定版。
在物理设备上捕获。
捕获应用程序具有 root 权限,将由网络管理员使用(作为被动资产发现的一部分)。
我想使用 DPDK 因为它支持高达 10 Gbps 的线速捕获
谢谢。
解决方法
根据评论中的更新和说明,请求为 Can one replace an existing application which PF_RING API calls with DPDK API which is written in C?
。简单的回答是是的,可以做到。
这是一个人应该如何开始
- 确定平台(最好是 Linux/BSD,Windows 21.02 仍在开发中)
- 确定处理者 list of supported CPU
- 从 LIST of DPDK NIC 中确定要使用的 NIC
- 使用 Linux Enviroment 设置 Linux 环境
- 探索 basicfwd usage 的基本示例/骨架
- 使用 DPDK API
rte_pktmbuf_mtod
获取数据包的以太网标头的开头。 DPDK/examples 文件夹中有许多示例,它们的作用相同。 - 调用example/skeleton的rx_burst和tx_burst之间的包处理函数逻辑。
较新版本的 libpcap 本身可以使用 DPDK,至少在 Linux 上是这样。您系统上的 libpcap 可能会也可能不会被配置为使用它。 (也有一些版本的 libpcap 被修改为使用 PF_RING。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。