zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

网络安全系列-四十: suricata 的运行模型Running mode讲解

网络安全 系列 模型 运行 讲解 mode running 四十
2023-09-11 14:16:24 时间

1. 什么是Running mode

1.1. 基本概念

Sruciata由线程、线程模块、队列组成。

  • 数据包在线程间传递通过队列实现,线程由多个线程模块组成,每个线程模块实现一种功能
  • 一个数据包可以由多个线程处理,数据包将通过队列传递到下一个线程。包每次由一个线程处理,但是引擎可以同时处理多个包
  • 一个线程可以有一个或多个线程模块,如果包含多个模块,那么一次只能激活一个模块工作。

线程、模块和队列的排列方式称为运行模式
每一种运行模式都会初始化一些threads,queues等。模式的具体任务是由线程模块来完成

可以通过 ./suricata --list-runmodes查看运行模式,运行模式又细分为autofp, single,wokers
在这里插入图片描述

1.2. 线程模块

线程模块是对packet处理任务的抽象。线程模块大概有以下几种:

  1. Receive模块:收集网络数据包,封装成Packet对象后将其传递给Decode线程模块2.
  2. Decode模块
    • 对Packet按协议4层模型(数据链路层、网络层、传输层、应用层)进行解码,
    • 获取协议和负荷信息,解码完成后将 Packet传递给F