当前位置:数码通 > 评测

简述高速流量处理DPDK替代方案

来源于 数码通 2023-09-29 18:01

目前大部分需要高速流量处理的场景基本上都是采用DPDK来加速报文处理。虽然DPDK是开源免费的,但DPDK提供的API非常简单,开发非常复杂且耗时。 ,应用困难,于是很多人开始寻找替代品——鸿科PF_RING ZC。

来说说区别吧

DPDK

如果您是一位经验丰富的开发人员(抱歉,DPDK API 非常简单)并且您需要从头开始编写应用程序,您可以使用所有 DPDK API 调用来分配/管理数据包,并且您必须了解您在使用什么N IC

例如:假设您使用 Intel X710/XL710,这是 Intel 当前的旗舰 10/40 Gbit 适配器。当您启用巨型帧时,NIC 将返回 2K 长的 RX 数据包(因此,如果您有一个入口 5k 数据包,您将收到部分 2 x 2K 缓冲区和剩余 1k 缓冲区),如果您想发送一个数据包,则大小为9K(所以你需要发送1x8K部分缓冲区和下面缓冲区中的其余部分)。从本质上讲,开发人员必须意识到这一点,准备应用程序来处理这些问题,并确保当您移动到另一个不能以这种方式工作的 NIC 时(例如Intel X520/X540),您可以处理巨型网络帧。

PF_RING ZC

相比之下,在 PF_RING ZC 中,库根据 MTU 分配内存缓冲区,无论您使用什么网卡,库都会返回完整的数据包(即缓冲区中的所有数据包碎片都不会暴露给系统)。用户、开发人员唯一要做的就是确保他的应用程序可以处理巨型数据包。使用 PF_RING ZC API,开发人员不需要记住 NIC 的硬件 详细信息,无需更改任何单个内容代码行,只是设备名称来自:

-i eth1

改为

-i zc:eth13

您可以将应用程序传输到不同的硬件设备。

比较

1)ZC需要支付少量许可费,DPDK免费;

2)DPDK和ZC的性能基本相同;

3)ZC提供了简单易用的应用层API,开发难度比DPDK小很多;

ZC

提供的PF_RING API

PF_RINGZC 附带一个简单的 API,只需几行代码即可创建复杂的应用程序。以下示例展示了如何使用 6 行代码创建聚合器 + 负载均衡器应用程序。

PF_RING ZC 加速 Zeek

Zeek 是一款开源 网络 流量分析器。许多用户使用 Zeek 作为网络安全监视器 (NSM) 来支持对可疑或恶意活动的调查。 Zeek还支持安全域之外的各种流量分析任务,包括性能评估和故障排除。使用PF_RING ZC(零拷贝)驱动可以实现极高的数据包捕获/传输速度,大大提高Zeek的流量处理能力。

将 Suricata

与 PF_RING 结合使用

Suricata 是一款免费、开源、成熟、快速且强大的网络威胁 检测 引擎。 Suricata 引擎能够进行实时入侵检测 (IDS)、内联入侵防御 (IPS)、网络安全监控 (NSM) 和离线 pcap 处理。 Suricata 使用强大且广泛的规则和签名语言来检查网络流量,具有广泛的应用范围。使用 PF_RING ZC,您现在可以在 IDS 和 IPS 模式下高速使用 Suricata。

Snort 高速数据采集

许多用户也在使用 Snort(最流行的 IDS/IPS 之一),并且目前受益于 PF_RING ZC 的速度。使用PF_RING ZC(Snort Data Collection)库比标准PF_RING快20%到50%,并且可以在IPS和IDS模式下运行。

鸿科提供网络流量监控分析的软件解决方案——ntop。该方案可以部署在物理、虚拟、容器环境等多种环境中。部署简单,不需要任何专业硬件即可实现高速流量分析。该解决方案由多个组件组成,每个组件可以独立使用,也可以与第三方工具集成,也可以灵活组合形成不同的解决方案。包含的组件如下:

PF_RING:一种新型网络套接字,可显着提高数据包捕获速度。

nProbe:网络探针,可用于处理NetFlow/sFlow流数据或原始流量。

n2disk:用于高速连续流量存储处理和播放。

ntopng:基于Web的网络流量监控和分析工具,用于实时监控和回溯分析。

编辑:jq

-->
登录后参与评论