【Suricata】04-配置Suricata 7.0.3 基于DPDK模式运行

本文详细介绍了如何在Linux服务器上配置Suricata 7.0.3以使用DPDK模式运行,包括DPDK的介绍、服务器配置、DPDK的二进制和源码安装、igb_uio驱动的编译安装、网卡的DPDK收包配置、大页内存设置、以及igb_uio和vfio_pci驱动的绑定与测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.DPDK介绍

2.服务器配置与对应软件版本

3.安装部署DPDK

3.1 二进制安装DPDK

3.2 源码安装DPDK

3.2.1 下载DPDK

3.2.2 设置DPDK环境变量

3.2.3 编译安装DPDK

4.编译安装igb_uio驱动

5.检查suricata是否支持DPDK

6.配置suricata DPDK收包网卡配置

6.1 查看网卡的pcie地址

6.2 修改suricat.yaml文件

6.3 配置DPDK大页内存

6.3.1 查看系统是否支持大页内存

6.3.2 编辑grub文件

6.3.3 验证大页内存设置是否生效

6.4 绑定网卡使用igb_uio驱动

6.4.1 加载igb_uio驱动

6.4.2 绑定两张网卡使用igb_uio驱动

6.4.3 测试DPDK

6.5 绑定网卡使用vfio_pci驱动

6.5.1 绑定网卡到vfio_pci驱动

6.5.2 dpdk绑定网卡脚本

7. 使用DPDK模式运行suricata


1.DPDK介绍

数据平面开发工具包(Data Plane Development Kit, DPDK)是一组库和驱动程序,用于增强和加速数据平面的数据包处理。它的主要用途是通过绕过内核网络堆栈来提供更快的数据包处理,这可以显著提高性能。

Bond PMD (Link Bonding Poll Mode Driver)是数据平面开发工具包DPDK提供的一种软件机制,用于将多个物理网络接口聚合为单个逻辑接口。

2.服务器配置与对应软件版本

操作系统:Debian12.5
内核版本:6.1.0-18-amd64
网卡信息:Intel X520 万兆光口以太网卡
DPDK版本:dpdk-19.11.14
Suricata版本:Suricata-7.0.3

3.安装部署DPDK

3.1 二进制安装DPDK

在Debian12上源码安装 DPDK-19.11.14,安装失败,所以使用apt来安装。

apt-get install dpdk-dev

查看dpdk版本

卸载dpdk

sudo apt remove dpdk

# 完全卸载dpdk,删除其配置文件
sudo apt purge dpdk

3.2 源码安装DPDK

3.2.1 下载DPDK

DPDK官网下载地址:

http://fast.dpdk.org/rel/dpdk-19.11.14.tar.gz

将dpdk解压到/opt目录下

root@ndr:~# tar -xvf dpdk-19.11.14.tar.xz -C /opt/

3.2.2 设置DPDK环境变量

编辑/etc/profile文件,添加如下内容

export RTE_SDK=/opt/dpdk-stable-19.11.14  
export RTE_TARGET=x86_64-native-linuxapp-gcc

RTE_SDK环境变量指向DPDK源代码的安装目录。这个目录通常包含了DPDK的源代码、构建系统、库文件、头文件以及示例应用程序等。当编译基于DPDK的应用程序时,编译器和构建系统会使用这个环境变量来找到DPDK的头文件和库文件,以确保正确地编译和链接应用程序。

RTE_TARGET环境变量指定了DPDK应用程序的目标构建配置。DPDK支持多种硬件架构和操作系统,

RTE_TARGET允许开发者为特定的硬件和操作系统配置编译环境。这个变量通常包含一个描述目标环境的字符串,该字符串对应于DPDK源代码目录中的target子目录下的一个特定目录。

(对于64位机用这个命令,对于32位机用i686-native-linuxapp-gcc)

保存退出后,

source /etc/profile

3.2.3 编译安装DPDK

进入到dpdk-19.11.14/usertools目录下

cd /home/dpdk-19.11.14/usertools

执行./dpdk-setup.sh

会输出一列可选操作:

root@ndr:/opt/dpdk-stable-19.11.14/usertools# ./dpdk-setup.sh 
------------------------------------------------------------------------------
 RTE_SDK exported as /opt/dpdk-stable-19.11.14
------------------------------------------------------------------------------
----------------------------------------------------------
 Step 1: Select the DPDK environment to build
----------------------------------------------------------
[1] arm-armv7a-linux-gcc
[2] arm-armv7a-linuxapp-gcc
[3] arm64-armada-linux-gcc
[4] arm64-armada-linuxapp-gcc
[5] arm64-armv8a-linux-clang
[6] arm64-armv8a-linux-gcc
[7] arm64-armv8a-linuxapp-clang
[8] arm64-armv8a-linuxapp-gcc
[9] arm64-bluefield-linux-gcc
[10] arm64-bluefield-linuxapp-gcc
[11] arm64-dpaa-linux-gcc
[12] arm64-dpaa-linuxapp-gcc
[13] arm64-emag-linux-gcc
[14] arm64-emag-linuxapp-gcc
[15] arm64-graviton2-linux-gcc
[16] arm64-graviton2-linuxapp-gcc
[17] arm64-n1sdp-linux-gcc
[18] arm64-n1sdp-linuxapp-gcc
[19] arm64-octeontx2-linux-gcc
[20] arm64-octeontx2-linuxapp-gcc
[21] arm64-stingray-linux-gcc
[22] arm64-stingray-linuxapp-gcc
[23] arm64-thunderx-linux-gcc
[24] arm64-thunderx-linuxapp-gcc
[25] arm64-thunderx2-linux-gcc
[26] arm64-thunderx2-linuxapp-gcc
[27] arm64-xgene1-linux-gcc
[28] arm64-xgene1-linuxapp-gcc
[29] graviton2
[30] i686-native-linux-gcc
[31] i686-native-linux-icc
[32] i686-native-linuxapp-gcc
[33] i686-native-linuxapp-icc
[34] ppc_64-power8-linux-gcc
[35] ppc_64-power8-linuxapp-gcc
[36] x86_64-native-bsdapp-clang
[37] x86_64-native-bsdapp-gcc
[38] x86_64-native-freebsd-clang
[39] x86_64-native-freebsd-gcc
[40] x86_64-native-linux-clang
[41] x86_64-native-linux-gcc
[42] x86_64-native-linux-icc
[43] x86_64-native-linuxapp-clang
[44] x86_64-native-linuxapp-gcc
[45] x86_64-native-linuxapp-icc
[46] x86_x32-native-linux-gcc
[47] x86_x32-native-linuxapp-gcc

----------------------------------------------------------
 Step 2: Setup linux environment
----------------------------------------------------------
[48] Insert IGB UIO module
[49] Insert VFIO module
[50] Insert KNI module
[51] Setup hugepage mappings for non-NUMA systems
[52] Setup hugepage mappings for NUMA systems
[53] Display current Ethernet/Baseband/Crypto device settings
[54] Bind Ethernet/Baseband/Crypto device to IGB UIO module
[55] Bind Ethernet/Baseband/Crypto device to VFIO module
[56] Setup VFIO permissions

----------------------------------------------------------
 Step 3: Run test application for linux environment
----------------------------------------------------------
[57] Run test application ($RTE_TARGET/app/test)
[58] Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd)

----------------------------------------------------------
 Step 4: Ot
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simo2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值