項目需要用到Suricata的解包能力, 但由于分光流量較大, 軟件自帶的抓包方式并不能滿足需求, 于是發(fā)現(xiàn)了這個基于dpdk的Suricata.
使用過程中遇到一些依賴和萬兆網(wǎng)卡驅動的問題, 已經(jīng)解決并merge到master分支了, 現(xiàn)在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
# 停掉虛擬網(wǎng)卡
# ifconfig em1 down
# 運行安裝腳本
./dpdk-setup.sh
# 根據(jù)系統(tǒng)版本選擇合適的linuxapp, 編譯安裝
# 插入IGB UIO
# 設置NUMA大頁系統(tǒng)
# 選定地址, 綁定虛擬網(wǎng)卡到igb_uio
# 卸載的話則選定地址, 綁定到ixgbe
# 完成安裝
# 配置環(huán)境變量
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的方式, 不然性能還是扛不住, 這塊沒有找到現(xiàn)成的, 于是自己擼了一邊, 后面會另寫一篇文章描述