本发明涉及互联网网络流量过滤
技术领域:
,具体涉及一种基于多种流量特征进行报文检测、筛选的方法及其装置。
背景技术:
:随着移动网流量的快速增长,5g时代音视频流量爆炸式增长,全量接入移动网流量进行处理分析成本过大,为了达到降低处理成本、提取关键流量信息、过滤低价值流量等目的,需要根据具体业务要求,通过五元组信息、流量特征等规则,进行细粒度、高精度的筛选。普通的报文检测、流量筛选设备主要依靠五元组(包括源ip、目的ip、源端口、目的端口、传输层协议)进行流量的分析、筛选,而单纯的五元组信息匹配无法过滤未知ip以及不固定ip的流量,为了实现更精确的流量成分识别以及分类筛选,还需对报文的负载特征、应用层信息等进行分析。目前的精确报文分析的主要实现方法是基于tcam(三态内容寻址存储器)硬件单元进行五元组信息匹配,通过dpi(深度报文检测)服务器集群实现高层信息的匹配分析。但是,tcam硬件单元只能返回单条规则命中,无法处理命中多条规则的五元组,而集群dpi服务器单台处理性能低、维护成本较高。综上所述,目前的流量筛选设备以多种流量过滤设备组合的形式出现,逻辑复杂、管理难度大、整体流量筛选效率较低,且难以实现多目标用户、多业务场景的复杂业务分析,不足以满足目前移动网流量体量下的分析业务。因此,实现一种多用户、高效率的精准流量筛选装置及其方法是本
技术领域:
亟待解决的主要问题。技术实现要素:针对上述问题,本发明提供了一种基于cavium设备的一体化网络流量精细化筛选装置及方法,实现流量的多用户转发,通过整合五元组规则、特征码规则以及高层特征匹配,提高装置的处理性能、优化流量筛选处理流程、降低流量筛选装置成本。本发明提供的一种网络流量精细化筛选装置,基于cavium设备实现,将cavium设备的每个业务板上的处理核分为流量捕获核和业务处理核;本发明装置在流量捕获核上实现报文捕获模块,在业务处理核上实现规则接收解析模块、流量还原模块、规则匹配模块、报文封装模块以及报文转发模块。所述规则接收解析模块接收用户下发的五元组规则和匹配规则并解析,描述为匹配过程中查找的模式集合。规则接收解析模块将五元组规则拆分为ip规则及端口规则,使用哈希表形式存储,形成源ip规则表、目的ip规则表、源端口规则表以及目的端口规则表。所述报文捕获模块从活跃光口接收网络流量。所述流量还原模块将接收到的网络流量进行分片重组和流还原,提取负载信息。所述规则匹配模块根据匹配规则对网络流量进行匹配,对命中匹配规则的网络流量提取五元组规则,根据哈希值查询源ip规则表、目的ip规则表、源端口规则表以及目的端口规则表,进行五元组规则匹配。所述报文封装模块查询命中用户的网络流量报文缓存,将命中匹配规则的报文、该报文的前序缓存报文及后续报文,进行业务字段封装,添加命中的匹配规则id和用户id。所述报文转发模块将封装好的报文发送到指定端口。相应地,本发明提供的一种网络流量精细化筛选方法,在cavium设备上实现,将cavium设备的每个业务板上的处理核分为流量捕获核和业务处理核,执行如下步骤:(一)流量捕获核与收包协处理器交互,从活跃光口捕获网络流量包;流量捕获核对捕获的包进行合法性校验,对合法包提取五元组信息,根据五元组信息计算包的一致性哈希值,并保证不同网络数据流的哈希值不同,同一条网络数据流的哈希值相同;流量捕获核根据包的哈希值将包发送至指定的报文缓存队列中,等待处理;(二)业务处理核从指定的报文缓存队列中取网络流量包,执行如下步骤:(1)业务处理核初始化,包括划分常驻包队列内存、指定取包缓存队列、申请及初始化核上五元组流表,接收五元组规则以及匹配规则并解析;所述业务处理核读取每行五元组规则,将五元组规则拆分为ip规则及端口规则,形成源ip规则表、目的ip规则表、源端口规则表以及目的端口规则表,各规则表使用哈希表存储;其中,源ip规则和目的ip规则采用ip规则节点存储,将利用ip地址的a段b段c段计算的值c_segment=a<<16|b<<8|c,作为节点的哈希值;源端口规则和目的端口规则使用端口规则节点存储,将端口号作为节点的哈希值;所述业务处理核接收到的匹配规则包括多模字符串匹配规则及正则规则;所述业务处理核对每条多模字符串匹配规则,根据匹配位置分为多条逻辑子规则,生成用户规则表和子规则反查表,用户规则表中记录每条用户匹配规则与逻辑子规则的包含关系,并以位串的形式组织各逻辑子规则间的逻辑组合关系,子规则反查表记录逻辑子规则与用户匹配规则的关系;(2)业务处理核从指定的报文缓存队列中轮询取网络流量包,根据包的五元组信息,查询五元组流表中对应所取流量的缓存信息,对分片、乱序网络流量进行重组和还原;再从还原的网络流量中提取通用协议的负载,记录在五元组流表中;(3)业务处理核与板载协处理器交互,对满足匹配条件的网络流量根据匹配位置分别在各规则集合上进行逻辑子规则的匹配,获取逻辑子规则匹配结果;查询子规则反查表,确定相关用户匹配规则,标记对应的用户匹配规则下已命中的逻辑子规则标记位,查询对应的用户规则表,比对逻辑子规则的位串,确定是否命中该用户匹配规则下的全部逻辑子规则;对于每条多模字符串匹配规则,当用户规则表中所有逻辑子规则都被命中时,才判定命中了该条用户匹配规则;(4)对命中用户匹配规则的网络流量,提取五元组规则,然后分别查询源ip规则表、目的ip规则表、源端口规则表以及目的端口规则表,确定是否命中指定用户的五元组规则;(5)查询命中用户的网络流量报文缓存,对命中规则的数据报文及该报文所在网络数据流的前序缓存报文及后续报文进行回溯查询,在各数据包中添加命中规则id和用户id,进行封装;(6)业务处理核与与板载发包协处理器交互,将封装好的数据包发送到指定端口。与现有方法相比,本发明的网络流量精细化筛选装置及方法,具有如下优点:(1)本发明装置及方法基于mips架构cavium设备,通过与板载协处理器设备进行特定任务加速,如报文捕获、字符串匹配、报文发送等,实现了在1u标准尺寸机器上的一体化高性能流量精细化筛选设备及方法。(2)本发明装置及方法设计了精确五元组、掩码五元组规则表,通过哈希查找算法实现规则匹配,可实现千万级别大规模数量级的五元组规则匹配。(3)本发明装置及方法对于匹配规则,实现多类型、不同匹配位置的流量成分匹配,并实现规则间的逻辑关系计算;通过五元组匹配、多模、正则匹配等规则的灵活组合,实现了根据多种流量特征精细化筛选流量的深度报文检测分析。(4)本发明装置及方法,结合多种cavium设备板载协处理器,以一体化设备的形式实现了高性能的报文筛选;通过报文缓存,实现了对命中规则报文流量的回溯;基于板载发包协处理器,实现多端口、多用户的流量转发。本发明实现了高效的报文检测以及多用户流量的多端口报文转发,解决了针对复杂规则及多用户场景下的流量精细化筛选、多用户转发问题,也减少了运维成本及设备占地。附图说明图1是本发明的网络流量精细化筛选装置的示意图;图2是本发明实现网络流量精细化筛选方法的流程示意图;图3是规则匹配方法流程图图4是五元组匹配方法流程图。具体实施方式下面将结合附图和实施例对本发明作进一步的详细说明。本发明实施例中提供的网络流量精细化筛选装置及方法,基于caviummips64处理器架构的网络设备实现,每个业务板上48个处理核,板载24个10ge业务接口,配套相关协处理器。其中48个核分为流量捕获核和业务处理核,流量捕获核通过活跃光口对流量进行捕获并分发给各个业务处理核,业务处理核集成了后续流量的主要处理流程。如图1所示,本发明的网络流量精细化筛选装置包括规则接收解析模块1、报文捕获模块2、流量还原模块3、规则匹配模块4、报文封装模块5、以及报文转发模块6。本发明装置中,报文捕获模块2在流量捕获核上实现,其他模块在业务处理核上实现。规则接收解析模块1将用户规则发送设备下发的五元组规则、正则规则、多模规则等规则接收并解析,预处理为匹配过程中可查找的模式集合。规则接收解析模块1对五元组规则进行解析存储的实现、对正则规则、多模规则等匹配规则的解析存储的实现,将在下面步骤(3.1)中说明,此处不在重复说明。报文捕获模块2用于通过光口接收网络流量,如图1所示,从原始流量发送设备中接收网络流量。报文捕获模块2的实现,将在下面步骤(2)中说明。流量还原模块3将接收到的网络流量进行分片重组和流还原,并对还原后流量中通用协议的负载信息进行提取。流量还原模块3的实现,将在下面步骤(3.3)和(3.4)中说明。规则匹配模块4提供规则匹配接口,使用硬件协处理器交互的方式处理正则、多模匹配,使用哈希表查询的软件方式实现五元组规则匹配。规则匹配模块4的实现将在下面步骤(3.5)~(3.7)中说明。报文封装模块5根据规则命中信息对指定包进行业务字段封装。报文封装模块5的实现对于将在下面步骤(3.8)中说明。报文转发模块6用于按命中用户对封装好的报文进行多端口转发。报文转发模块6的实现对应在下面步骤(3.9)中说明。如图2所示,本发明实现的网络流量精细化筛选方法,具体处理流程如下步骤(1)~(3)。(1)系统初始化:在接入流量前,需进行硬件装置及相关软件的初始化,可分为多核工作入口函数分配、各协处理器初始化、程序运行时内存池初始化等。(2)流量捕获核处理流程:流量捕获核负责与收包协处理器交互,将接收到的流量发送至指定队列,等待业务核进行处理。本步骤可分为以下四步,即步骤(2.1)~(2.4)。(2.1)进行流量捕获前的流量捕获核初始化操作,具体分为活跃网口的获取、包缓存队列的指定、收包协处理器的初始化等;(2.2)初始化工作结束后,流量捕获核通过与收包协处理器进行交互,从各活跃端口进行轮询取包,直至取到网络流量包后,对包进行信息校验,判断是否合法,对合法包进行后续处理;(2.3)提取合法流量数据包的五元组信息,根据五元组信息对该数据包进行一致性哈希计算,保证对不同流的哈希值不同,同一条流的哈希值相同;五元组信息包括源ip、目的ip、源端口、目的端口和协议;(2.4)获取一致性哈希标识之后,根据哈希值将合法数据包发送至指定业务处理核的报文缓存队列中,等待处理,成功发送后,流量捕获核进入步骤(2.1),再次开始执行。(3)业务处理核处理流程:业务处理核从指定的报文缓存队列取包进行相关业务分析、规则匹配,对命中用户规则的流量按照用户配置进行封装,通过发包协处理器交互的形式转发给指定用户,具体步骤分为如下步骤(3.1)~(3.9)。(3.1)进行业务处理核初始化,初始化操作包括常驻包队列内存划分、取包缓存队列的指定、核上五元组流表的申请及初始化,并对五元组规则以及匹配规则分别进行接收及解析。在每个业务处理核上建立有五元组流表,用于维护五元组数据流上的数据信息、状态信息和统计信息。五元组规则包含精准五元组规则和掩码五元组规则,其中掩码规则是针对源ip、目的ip进行掩码操作,指定有效位进行一定范围的五元组报文过滤。五元组规则可拆分为ip规则及端口规则,使用哈希表的组织形式进行存储,分为源ip规则表、目的ip规则表、源端口规则表、目的端口规则表。针对掩码信息,在加载过程中按照掩码位数生成对应的精准ip信息进行存储。本发明中,读取每行五元组规则后,创建ipnode节点,ipnode节点中存储ip规则信息,如表1所示。表1ip规则信息节点ipnode的存储信息序号变量名称备注1c_segmentip规则a段b段c段信息2type分为精准ip规则及ip范围规则3startip规则起始d段信息4endip规则结束d段信息5ruleid用户规则id6userid用户id7ruletype五元组规则类型根据读取的五元组规则填充规则相关信息,读取五元组规则中的ip信息,区分源ip与目的ip信息,ip地址分为四段,标记为a、b、c、d四段,创建ipnode节点,通过以下方式计算节点的c_segment变量:c_segment=a<<16|b<<8|c其中,<<代表左位移操作,如<<16表示向左位移16位;|代表或操作,上式中c_segment取值为a<<16的结果与b<<8的结果与c取或操作的结果。例如,ip地址1.2.3.4,则a段为1,b段为2,c段为3,d段为4;c_segment=1<<16|2<<8|3。type表示ip规则是由精准ip规则还是掩码ip规则,掩码ip规则对应一个ip范围规则。对于精准ip规则,起始值start与结束值end相等,均为ip的d段取值。表1中start与end的描述,能够表达相等,同时也能够表达一个区间,具有更好的兼容性。对于掩码ip规则,1)若掩码仅覆盖d段,则通过掩码计算ip规则d段位置上的起始值和终止值,填入ipnode节点;2)若掩码除d段外还覆盖a、b、c段,则以c段为最小单元,遍历生成覆盖所有c段的ipnode,ipnode中d段的start和end分别为0、255。例如,对于ip地址1.2.3.4,有如下情况:1)针对掩码ip规则:掩码为255.255.255.0;则生成的ipnode为1个,c_segment=1<<16|2<<8|3,start=4|0=0,end=255;2)针对掩码ip规则:掩码为255.255.252.0;则覆盖所有c段的ip段有1.2.0.*,1.2.1.*,1.2.2.*和1.2.3.*共4个,生成的ipnode为4个,如下:c_segment=1<<16|2<<8|0,start=4|0=0,end=255;c_segment=1<<16|2<<8|1,start=4|0=0,end=255;c_segment=1<<16|2<<8|2,start=4|0=0,end=255;c_segment=1<<16|2<<8|3,start=4|0=0,end=255。userid记录发送规则的用户id,ruleid记录用户发送的规则id,ruletype记录ip规则所属五元组规则类型,是源ip规则还是目的ip规则。最后,将c_segment值作为哈希值,按照规则类型插入至源ip规则表或目的ip规则表。端口规则信息包括端口号信息以及对应的五元组规则类型,读取每行五元组规则后,创建portnode节点,填充端口规则相关信息,区分源端口信息与目的端口信息,以端口号为哈希值插入源端口号规则表或目的端口规则表。匹配规则包括多模字符串匹配及正则规则匹配,业务用户可根据业务需求灵活配置匹配位置,如:ip负载、tcp负载、http请求消息体、http响应消息体等。针对字符串匹配规则,为满足灵活匹配要求,每条用户匹配规则根据匹配位置的不同划分为多条逻辑子规则,逻辑子规则按照匹配位置不同,分别组织在独立文件中,接收至业务核后,需分别生成各自的匹配模式,进行各个位置的规则匹配,只有命中某一条用户规则下所有逻辑子规则的匹配,才判定命中了该条用户规则。为了判定用户规则的命中情况,需维护用户规则与逻辑子规则的包含关系的用户规则表,以及逻辑子规则与用户规则关系的子规则反查表,各子规则间的逻辑组合关系以位串的形式进行组织,用户规则表如下表2所示。表2用户规则表其中,srulearr数组中存储了用户规则下包含的各类逻辑子规则的索引,srulenum为用户规则下包含的逻辑子规则数量,每个用户规则下最多包含16个逻辑子规则,srulebit为16位子规则标识,每读取一个逻辑子规则,进行一次srulebit|=1<<i操作,其中,i为当前子规则在对应用户规则中的序号。srulebit|=1<<i表示srulebit等于srulebit与1<<i取或操作,1<<i表示1向左位移i位。用户规则与逻辑子规则的包含关系加载完成后,还需解析子规则对应的用户规则信息以及子规则在该用户规则下的位串标志位置,形成子规则反查表。(3.2)初始化工作完成后,业务处理核开始进行流量处理,从指定的报文缓存队列中进行轮询取网络流量包。(3.3)基于libnids网络编程接口,根据五元组信息,业务处理核查询五元组流表中所取流量的缓存信息,对分片、乱序流量进行重组、还原。(3.4)根据业务需求,对还原后流量中的通用协议的负载进行提取,具体可包含网络层负载、传输层负载以及应用层负载,并将提取的相关信息挂载至本地核的五元组流表中进行存储。(3.5)通过与板载协处理器交互,对满足匹配条件的数据流以任务的形式进行逻辑子规则匹配任务的提交,对各位置的负载分别根据相应的匹配规则进行多模字符串匹配、正则匹配,获取逻辑子规则匹配结果。(3.6)进行规则逻辑关系整合,通过查询子规则反查表,确定相关用户匹配规则,标记该用户规则下已命中的逻辑子规则标记位,通过查询用户规则表比对子规则位串,确定是否命中该用户规则下全部子规则,从而判断是否命中用户规则,匹配流程图如图3所示。如图3所示,获取匹配任务后,开始进行匹配,首先设置匹配任务参数,提交协处理器任务,对满足匹配条件的网络数据流根据匹配位置的不同分别在各规则集合上进行逻辑子规则的匹配,获取逻辑子规则命中结果后,查询子规则反查表中该子规则对应的用户规则,设置已命中逻辑子规则对应的位串位置为1,比较用户规则中的子规则位串及已命中的位串标记,若相同则代表已命中该用户规则下的全部逻辑子规则,对流量进行命中规则标记,标记完成后处理其他流量。(3.7)对命中用户匹配规则的网络流量,进行五元组规则匹配,分别查询源ip、目的ip、源端口、目的端口规则表,确定是否命中指定用户的五元组规则,五元组规则匹配流程如图4所示。如图4所示,先生成命中的网络流量的源ip和目的ip的ipnode节点,生成源端口和目的端口的portnode节点,并填充节点信息,再根据源ipnode节点的信息查询源ip规则表,返回命中的源ip信息,根据目的ipnode节点的信息查询目的ip规则表,返回命中的目的ip信息,根据源端口portnode节点信息查询源端口规则表,返回命中的源端口信息,根据目的端口portnode节点信息查询目的端口规则表,返回命中的目的端口信息。通过查询各规则表后定位命中的源、目的ip及源、目的端口规则节点,根据不同类型的五元组规则组合关系,判定是否命中完整的五元组规则。不管是精准五元组规则还是掩码五元组规则,只有源ip、目的ip、源端口、目的端口均命中,才判定为命中完整的五元组规则。本发明中通过哈希查找算法实现五元组、掩码五元组规则匹配,根据节点的哈希值在规则表中进行查找匹配,哈希查找算法的计算复杂度在o(1),能更快的实现查找,从而可实现千万级别大规模数量基本的五元组规则匹配。(3.8)根据命中用户的相关信息,进行转发数据包的封装,查询对应网络流量报文缓存信息,对命中规则的数据报文及该报文所在数据流的前序缓存报文及后续报文进行回溯查询,在各数据包指定位置添加命中规则id、用户id等特征码信息,进行封装。对超过mtu(最大传输单元)限制的转发数据包,进行分片处理。(3.9)通过与板载发包协处理器交互,将封装好的数据包发送到指定端口,等待协处理器转发,发送完成后重新进行步骤3.2,取后续报文并进行处理。当前第1页1 2 3 
技术特征:1.一种网络流量精细化筛选装置,其特征在于,所述装置布置在cavium设备上,cavium设备的每个业务板上的处理核分为流量捕获核和业务处理核;所述装置包括设置在流量捕获核上的报文捕获模块,以及设置在业务处理核上的规则接收解析模块、流量还原模块、规则匹配模块、报文封装模块和报文转发模块;
所述规则接收解析模块接收用户下发的五元组规则和匹配规则并解析,描述为匹配过程中查找的模式集合;所述的规则接收解析模块将五元组规则拆分为ip规则及端口规则,使用哈希表形式存储,形成源ip规则表、目的ip规则表、源端口规则表以及目的端口规则表;所述的匹配规则包括多模字符串匹配规则及正则规则;
所述报文捕获模块从活跃光口捕获网络流量;
所述流量还原模块将接收到的网络流量进行分片重组和流还原,提取负载信息;
所述规则匹配模块根据匹配规则对网络流量进行匹配,对命中匹配规则的网络流量提取五元组规则,根据哈希值查询源ip规则表、目的ip规则表、源端口规则表以及目的端口规则表,进行五元组规则匹配;
所述报文封装模块查询命中用户的网络流量报文缓存,将命中匹配规则的报文、该报文的前序缓存报文及后续报文,进行业务字段封装,添加命中的匹配规则id和用户id;
所述报文转发模块将封装好的报文发送到指定端口。
2.根据权利要求1所述的装置,其特征在于,所述规则接收解析模块读取每行五元组规则,创建ip规则节点和端口规则节点,插入对应的规则表中;
对于源ip规则和目标ip规则,采用ip规则节点存储,存储的信息包括:
c_segment,表示由ip地址的a段b段c段计算的值,c_segment=a<<16|b<<8|c,<<代表左位移操作,|代表或操作;c_segment是ip规则节点的哈希值;
type,表示精准ip规则还是ip范围规则;
start与end,分别表示ip的d段起始值和结束值;对于精准ip规则,start与end相等,为ip的d段取值;对于掩码ip规则,若掩码仅覆盖d段,通过掩码计算d段的start与end,若掩码除d段外还覆盖a段、b段、c段,则以c段为最小单元,遍历生成覆盖所有c段的ip规则节点,生成的各ip规则节点中的start和end分别为0和255;
userid,表示发送规则的用户id;
ruleid,表示用户发送的规则id;
ruletype,表示五元组规则类型,分源ip规则还是目标ip规则;
对于源端口规则和目的端口规则,使用端口规则节点存储,存储的信息包括端口号以及五元组规则类型,此处五元组规则类型分源端口规则还是目的端口规则;端口号为端口规则节点的哈希值。
3.根据权利要求1所述的装置,其特征在于,所述的规则接收解析模块对每条多模字符串匹配规则,根据匹配位置分为多条逻辑子规则,生成用户规则表和子规则反查表;所述用户规则表中记录每条用户匹配规则与逻辑子规则的包含关系,并以位串的形式组织各逻辑子规则间的逻辑组合关系;所述子规则反查表记录逻辑子规则与用户匹配规则的关系。
4.根据权利要求1或2或3所述的装置,其特征在于,所述的规则匹配模块,对网络流量根据匹配位置分别在各规则集合上进行逻辑子规则的匹配,获取逻辑子规则匹配结果;查询子规则反查表,确定相关用户匹配规则,标记对应的用户匹配规则下已命中的逻辑子规则标记位,查询对应的用户规则表,比对逻辑子规则的位串,确定是否命中该用户匹配规则下的全部逻辑子规则;对于每条多模字符串匹配规则,当用户规则表中所有逻辑子规则都被命中时,才判定命中了该条用户匹配规则。
5.根据权利要求1或2或3所述的装置,其特征在于,所述的规则匹配模块,对命中用户匹配规则的网络流量,提取五元组规则,通过哈希查找算法分别查询源ip规则表、目的ip规则表、源端口规则表以及目的端口规则表,确定是否命中指定用户的五元组规则;当源ip、目的ip、源端口和目的端口的规则均命中时,才判断命中五元组规则。
6.一种网络流量精细化筛选方法,其特征在于,所述方法在cavium设备上实现,将cavium设备的每个业务板上的处理核分为流量捕获核和业务处理核;所述方法包括如下步骤:
(一)流量捕获核与收包协处理器交互,从活跃光口捕获网络流量包,并进行合法性校验,将校验通过的包发送到指定的报文缓存队列中,等待处理;
(二)业务处理核从指定的报文缓存队列中取网络流量包,执行如下步骤:
(1)业务处理核初始化,包括划分常驻包队列内存、指定取包缓存队列、申请及初始化核上五元组流表,接收五元组规则以及匹配规则并解析;
所述业务处理核读取每行五元组规则,将五元组规则拆分为ip规则及端口规则,形成源ip规则表、目的ip规则表、源端口规则表以及目的端口规则表,各规则表使用哈希表存储;其中,源ip规则和目的ip规则采用ip规则节点存储,将利用ip地址的a段b段c段计算的值c_segment=a<<16|b<<8|c,作为节点的哈希值;源端口规则和目的端口规则使用端口规则节点存储,将端口号作为节点的哈希值;
所述业务处理核接收到的匹配规则包括多模字符串匹配规则及正则规则;所述业务处理核对每条多模字符串匹配规则,根据匹配位置分为多条逻辑子规则,生成用户规则表和子规则反查表,用户规则表中记录每条用户匹配规则与逻辑子规则的包含关系,并以位串的形式组织各逻辑子规则间的逻辑组合关系,子规则反查表记录逻辑子规则与用户匹配规则的关系;
(2)业务处理核从指定的报文缓存队列中轮询取网络流量包,根据包的五元组信息,查询五元组流表中对应所取流量的缓存信息,对分片、乱序网络流量进行重组和还原;再从还原的网络流量中提取通用协议的负载,记录在五元组流表中;
(3)业务处理核与板载协处理器交互,对满足匹配条件的网络流量根据匹配位置分别在各规则集合上进行逻辑子规则的匹配,获取逻辑子规则匹配结果;查询子规则反查表,确定相关用户匹配规则,标记对应的用户匹配规则下已命中的逻辑子规则标记位,查询对应的用户规则表,比对逻辑子规则的位串,确定是否命中该用户匹配规则下的全部逻辑子规则;对于每条多模字符串匹配规则,当用户规则表中所有逻辑子规则都被命中时,才判定命中了该条用户匹配规则;
(4)对命中用户匹配规则的网络流量,提取五元组规则,然后通过哈希查找算法分别查询源ip规则表、目的ip规则表、源端口规则表以及目的端口规则表,确定是否命中指定用户的五元组规则;
(5)查询命中用户的网络流量报文缓存,对命中匹配规则的报文及该报文所在网络数据流的前序缓存报文及后续报文进行回溯查询,在各数据包中添加命中的匹配规则id和用户id,进行封装;
(6)业务处理核与与板载发包协处理器交互,将封装好的数据包发送到指定端口。
7.根据权利要求3所述的方法,其特征在于,所述的步骤(一)中,在流量捕获核工作前进行初始化操作,包括获取活跃光口、指定包缓存队列、初始化收包协处理器;流量捕获核对合法的包提取五元组信息,根据五元组信息计算包的一致性哈希值,并保证不同网络数据流的哈希值不同,同一条网络数据流的哈希值相同;流量捕获核根据包的哈希值将包发送至指定的报文缓存队列中。
技术总结本发明提供了一种网络流量精细化筛选装置及方法,基于Cavium设备实现,用于互联网网络流量过滤技术领域。本发明装置包括报文捕获模块、规则接收解析模块、流量还原模块、规则匹配模块、报文封装模块以及报文转发模块。本发明方法利用流量捕获核从活跃光口捕获网络流量包,利用业务处理核对网络流量包进行规则匹配,通过五元组匹配、多模、正则匹配等规则的灵活组合,查找命中匹配规则的网络流量并转发。本发明可对大规模的网络流量实现高性能精细化筛选,以及多用户流量的多端口报文转发,并降低了网络流量筛选的运维成本。
技术研发人员:杜飞;张兴睿;李国静;尹天阳
受保护的技术使用者:北京锐驰信安技术有限公司
技术研发日:2020.11.30
技术公布日:2021.03.12