项目需要用到Suricata的解包能力, 但由于分光流量较大, 软件自带的抓包方式并不能满足需求, 于是发现了这个基于dpdk的Suricata.

使用过程中遇到一些依赖和万兆网卡驱动的问题, 已经解决并merge到master分支了, 现在clone下来应该可以直接用

安装DPDK

# 下载安装
wget http://fast.dpdk.org/rel/dpdk-18.11.tar.xz
tar xf dpdk-18.11.tar.xz
# 依赖安装
yum install -y net-tools.x86_64 numactl-devel python3
# 安装DPDK
# 停掉虚拟网卡
# ifconfig em1 down
# 运行安装脚本
./dpdk-setup.sh
# 根据系统版本选择合适的linuxapp, 编译安装
# 插入IGB UIO
# 设置NUMA大页系统
# 选定地址, 绑定虚拟网卡到igb_uio
# 卸载的话则选定地址, 绑定到ixgbe
# 完成安装
# 配置环境变量
export RTE_SDK=${PWD}
export RTE_TARGET=x86_64-native-linuxapp-gcc

安装DPDK_Suricata

git clone https://github.com/vipinpv85/DPDK_SURICATA-4_1_1
# 依赖
yum -y install gcc libpcap-devel pcre-devel libyaml-devel file-devel \
  zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make openssl openssl-devel \
  libnetfilter_queue-devel lua-devel PyYAML libmaxminddb-devel rustc cargo librdkafka-devel \
  lz4-devel libxml2
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 编译安装
autoconf
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-dpdk --enable-rdkafka
make -j 30
sudo ldconfig
sudo make install

sudo LD_LIBRARY_PATH=/usr/lib suricata --dpdk

由于流量比较大, 结果的写出也要使用kafka的方式, 不然性能还是扛不住, 这块没有找到现成的, 于是自己撸了一边, 后面会另写一篇文章描述

如果觉得我的文章对你有用,请随意赞赏