上篇《DPDK相关学习资料汇总》中,我们讲了学习DPDK的相关资料,今天我们来讲一下DPDK相关的开源代码。
1、suricata
Suricata引擎能够进行实时入侵检测(IDS)、内联入侵预防(IPS)、网络安全监控(NSM)和离线pcap处理。是一款开源、快速、高度稳定的网络入侵检测系统,
Suricata引擎能够实时入侵检测,内联入侵防御和网络安全监控。Suricata由几个模块组成,如捕捉、采集、解码、检测和输出。
suricata支持多种收包方式,最新的7.0版本已支持DPDK收包。
https://github.com/OISF/suricata
2、dpvs
dpvs是爱奇艺公司基于DPDK开发的高性能第4层负载均衡器(Layer-4 load balancer),dpvs的名字来源于DPDK+LVS,这里的LVS是阿里巴巴改进版的lvs。
DPVS是基于DPDK的高性能第4层负载均衡器。它源自Linux虚拟服务器LVS及其修改版本alibaba/LVS。
https://github.com/iqiyi/dpvs
3、qnsm
QNSM(IQIYI Network Security Monitor) 是一个旁路部署的全流量,实时,高性能网络安全监控引擎,基于DPDK开发,集成了DDOS检测和IDPS模块。
https://github.com/iqiyi/qnsm/
4、f-stack
f-stack是基于DPDK(Data Plante Development Kit)实现的一个用户态的协议栈,从FressBsd协议栈移植而来的用户态协议栈。F-Stack是一个基于DPDK、FreeBSD TCP / IP栈和协程API的高性能用户空间网络开发工具包。
http://www.f-stack.org/
5、trex
Cisco开源的一个使用DPDK发包的高性能测试仪。
主要的工作原理概括如下:
-
使用scapy来构建数据包模板;或者从pcap文件中读取数据包模板;
-
利用dpdk发送数据包;(重写指定变化的部分)
兼具了python构建流的效率和dpdk发包的高性能。
https://trex-tgn.cisco.com/
6、vpp
VPP是一个快速的、可扩展的2-4层多平台网络协议栈。它运行在多个Linux用户空间中,主要架构包括x86、ARM和Power架构。
VPP的高性能网络栈正在迅速成为世界各地应用程序的首选网络栈。
VPP的一些用例包括交换机、路由器、网关、防火墙和负载平衡器等等。
https://s3-docs.fd.io/vpp/23.06/
https://github.com/FDio/vpp
7、dperf
dperf是一个基于DPDK的100Gbps网络性能和负载测试软件.
https://github.com/baidu/dperf
8、ovs
OpenvSwitch简称OVS,正如其官网(http://openvswitch.org/)所述,OVS是一个高质量、多层的虚拟交换软件。它的目的是通过编程扩展支持大规模网络自动化,同时还支持标准的管理接口和协议。
https://docs.openvswitch.org/en/latest/intro/install/dpdk/
想了解更多DPDK相关的网络开发技术,请关注我。