将DPDK移植到snort上的DAQ

本文介绍了如何将DAQ与Snort结合,特别是在Snort的多线程环境中,解决DPDK单线程初始化限制的问题。通过创建线程ID到网卡的映射表,使得每个线程能独立操作特定的DPDK网卡,从而实现多线程并发抓包和分析。
摘要由CSDN通过智能技术生成

DAQ 与Snort

在snort-daq中,daq的控制流程是这样的。
snort_daq
如上所述,Snort在初始化的时候载入了daq。这个时候snort的所调用的api是daq_load_modules。也就是说,这个时候在主线程没有启动网卡,初始化实例的操作。
在初始化整个snort之后(载入配置,载入daq及其他各个模块等等)。snort就进入了分析的阶段了。这个阶段的主角是
pig,或者说更本质的,是pig下的analyzer
Snort下面开n个pig线程。pig线程下面调用analyzer来进行包解析。
包解析的过程中是在pig线程中多线程并行进行的。每一个analyzer下面都初始化一个daq instance并调用acquire进行抓包并分析。每一个daq instance下面都有一个或多个网卡来获取数据。因为目的主要是介绍daq,所以怎么解析就不提了。
pig_daq
从上图和上面的介绍就可以看得出来,一个snort下面有多个daq instance并行运行。每一个daq instance都会进行初始化操作,占用系统资源,获取网卡&#x

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值