CN112491901B - 一种网络流量精细化筛选装置及方法 - Google Patents

一种网络流量精细化筛选装置及方法 Download PDF

Info

Publication number
CN112491901B
CN112491901B CN202011377379.XA CN202011377379A CN112491901B CN 112491901 B CN112491901 B CN 112491901B CN 202011377379 A CN202011377379 A CN 202011377379A CN 112491901 B CN112491901 B CN 112491901B
Authority
CN
China
Prior art keywords
rule
matching
user
rules
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011377379.XA
Other languages
English (en)
Other versions
CN112491901A (zh
Inventor
杜飞
张兴睿
李国静
尹天阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruichi Xinan Technology Co ltd
Original Assignee
Beijing Ruichi Xinan Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ruichi Xinan Technology Co ltd filed Critical Beijing Ruichi Xinan Technology Co ltd
Priority to CN202011377379.XA priority Critical patent/CN112491901B/zh
Publication of CN112491901A publication Critical patent/CN112491901A/zh
Application granted granted Critical
Publication of CN112491901B publication Critical patent/CN112491901B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种网络流量精细化筛选装置及方法,基于Cavium设备实现,用于互联网网络流量过滤技术领域。本发明装置包括报文捕获模块、规则接收解析模块、流量还原模块、规则匹配模块、报文封装模块以及报文转发模块。本发明方法利用流量捕获核从活跃光口捕获网络流量包,利用业务处理核对网络流量包进行规则匹配,通过五元组匹配、多模、正则匹配等规则的灵活组合,查找命中匹配规则的网络流量并转发。本发明可对大规模的网络流量实现高性能精细化筛选,以及多用户流量的多端口报文转发,并降低了网络流量筛选的运维成本。

Description

一种网络流量精细化筛选装置及方法
技术领域
本发明涉及互联网网络流量过滤技术领域,具体涉及一种基于多种流量特征进行报文检测、筛选的方法及其装置。
背景技术
随着移动网流量的快速增长,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是五元组匹配方法流程图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明实施例中提供的网络流量精细化筛选装置及方法,基于Cavium MIPS64处理器架构的网络设备实现,每个业务板上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所示。
表1 IP规则信息节点IPnode的存储信息
序号 变量名称 备注
1 C_segment IP规则a段b段c段信息
2 Type 分为精准IP规则及IP范围规则
3 Start IP规则起始d段信息
4 End IP规则结束d段信息
5 Ruleid 用户规则id
6 Userid 用户id
7 Ruletype 五元组规则类型
根据读取的五元组规则填充规则相关信息,读取五元组规则中的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用户规则表
Figure BDA0002807481360000061
Figure BDA0002807481360000071
其中,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,取后续报文并进行处理。

Claims (7)

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.根据权利要求3所述的装置,其特征在于,所述的规则匹配模块,对网络流量根据匹配位置分别在各规则集合上进行逻辑子规则的匹配,获取逻辑子规则匹配结果;查询子规则反查表,确定相关用户匹配规则,标记对应的用户匹配规则下已命中的逻辑子规则标记位,查询对应的用户规则表,比对逻辑子规则的位串,确定是否命中该用户匹配规则下的全部逻辑子规则;对于每条多模字符串匹配规则,当用户规则表中所有逻辑子规则都被命中时,才判定命中了该条用户匹配规则。
5.根据权利要求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.根据权利要求6所述的方法,其特征在于,所述的步骤(一)中,在流量捕获核工作前进行初始化操作,包括获取活跃光口、指定包缓存队列、初始化收包协处理器;流量捕获核对合法的包提取五元组信息,根据五元组信息计算包的一致性哈希值,并保证不同网络数据流的哈希值不同,同一条网络数据流的哈希值相同;流量捕获核根据包的哈希值将包发送至指定的报文缓存队列中。
CN202011377379.XA 2020-11-30 2020-11-30 一种网络流量精细化筛选装置及方法 Active CN112491901B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011377379.XA CN112491901B (zh) 2020-11-30 2020-11-30 一种网络流量精细化筛选装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011377379.XA CN112491901B (zh) 2020-11-30 2020-11-30 一种网络流量精细化筛选装置及方法

Publications (2)

Publication Number Publication Date
CN112491901A CN112491901A (zh) 2021-03-12
CN112491901B true CN112491901B (zh) 2023-03-24

Family

ID=74937856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011377379.XA Active CN112491901B (zh) 2020-11-30 2020-11-30 一种网络流量精细化筛选装置及方法

Country Status (1)

Country Link
CN (1) CN112491901B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132242B (zh) * 2021-03-19 2022-11-15 翱捷科技股份有限公司 一种网络设备及其共享发送和接收缓存的方法
CN113098895A (zh) * 2021-04-26 2021-07-09 成都中恒星电科技有限公司 一种基于dpdk的网络流量隔离系统
CN113489593B (zh) * 2021-06-30 2022-11-08 深圳前海微众银行股份有限公司 Json报文的核对方法和json报文的核对装置
CN113382019B (zh) * 2021-06-30 2022-12-13 山石网科通信技术股份有限公司 流量数据处理方法
CN113595822B (zh) * 2021-07-26 2024-03-22 北京恒光信息技术股份有限公司 一种数据包管理方法、系统和装置
CN113904798B (zh) * 2021-08-27 2024-03-22 长沙星融元数据技术有限公司 Ip报文的多元组过滤方法、系统、设备及存储介质
CN114006831B (zh) * 2021-10-30 2023-07-21 杭州迪普信息技术有限公司 报文数据处理方法及装置
CN114124822B (zh) * 2021-11-29 2024-04-26 杭州迪普信息技术有限公司 报文匹配处理装置及方法
CN114338851B (zh) * 2021-12-29 2022-08-19 武汉绿色网络信息服务有限责任公司 一种基于隧道报文的匹配方法和装置
CN114374622B (zh) * 2021-12-31 2023-12-19 恒安嘉新(北京)科技股份公司 一种基于融合分流设备的分流方法及融合分流设备
CN114584632B (zh) * 2022-02-24 2023-05-16 成都北中网芯科技有限公司 一种深度报文检测方法和装置
CN114422389B (zh) * 2022-02-24 2023-09-12 成都北中网芯科技有限公司 一种基于哈希和硬件加速的高速实时网络数据监测方法
CN114826753B (zh) * 2022-04-28 2024-05-03 武汉思普崚技术有限公司 基于规则特征的全流量入侵检测方法、装置、设备及介质
CN117424862A (zh) * 2022-07-18 2024-01-19 华为技术有限公司 报文转发方法、装置、设备及芯片系统
CN115225544A (zh) * 2022-07-19 2022-10-21 武汉思普崚技术有限公司 一种网络流量统计和监测方法、装置、电子设备及介质
CN115473819B (zh) * 2022-08-30 2024-05-17 电信科学技术第十研究所有限公司 一种基于动态规则驱动的海量互联网流量处理系统及方法
CN117240735B (zh) * 2023-11-09 2024-01-19 湖南戎腾网络科技有限公司 一种音视频流的过滤方法、系统、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753931A (zh) * 2015-03-18 2015-07-01 中国人民解放军信息工程大学 一种基于正则表达式的深度报文检测方法
CN107204891A (zh) * 2016-03-18 2017-09-26 中兴通讯股份有限公司 一种海量规则下报文识别的方法及装置
CN108259371A (zh) * 2016-12-28 2018-07-06 亿阳信通股份有限公司 一种基于流处理的网络流量数据解析方法和装置
CN109450940A (zh) * 2018-12-25 2019-03-08 南京中新赛克科技有限责任公司 一种实现网络流量封堵的装置和方法
CN110336798A (zh) * 2019-06-19 2019-10-15 南京中新赛克科技有限责任公司 一种基于dpi的报文匹配过滤方法及其装置
CN111404834A (zh) * 2020-03-23 2020-07-10 湖北微源卓越科技有限公司 一种多用户规则匹配以及流量复制的系统和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140351415A1 (en) * 2013-05-24 2014-11-27 PacketSled Inc. Selective packet capture
US10681007B2 (en) * 2015-06-05 2020-06-09 Konvax Corporation String search and matching for gate functionality

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753931A (zh) * 2015-03-18 2015-07-01 中国人民解放军信息工程大学 一种基于正则表达式的深度报文检测方法
CN107204891A (zh) * 2016-03-18 2017-09-26 中兴通讯股份有限公司 一种海量规则下报文识别的方法及装置
CN108259371A (zh) * 2016-12-28 2018-07-06 亿阳信通股份有限公司 一种基于流处理的网络流量数据解析方法和装置
CN109450940A (zh) * 2018-12-25 2019-03-08 南京中新赛克科技有限责任公司 一种实现网络流量封堵的装置和方法
CN110336798A (zh) * 2019-06-19 2019-10-15 南京中新赛克科技有限责任公司 一种基于dpi的报文匹配过滤方法及其装置
CN111404834A (zh) * 2020-03-23 2020-07-10 湖北微源卓越科技有限公司 一种多用户规则匹配以及流量复制的系统和方法

Also Published As

Publication number Publication date
CN112491901A (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
CN112491901B (zh) 一种网络流量精细化筛选装置及方法
CN111371779B (zh) 一种基于dpdk虚拟化管理系统的防火墙及其实现方法
US9756081B2 (en) Context-aware pattern matching accelerator
US10362083B2 (en) Policy-based payload delivery for transport protocols
US9762544B2 (en) Reverse NFA generation and processing
US8176300B2 (en) Method and apparatus for content based searching
KR101409921B1 (ko) 스위치 asic 내에 라인-레이트 애플리케이션 인식을 통합하기 위한 시스템 및 방법
US9806974B2 (en) Efficient acquisition of sensor data in an automated manner
US7949683B2 (en) Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US8555374B2 (en) High performance packet processing using a general purpose processor
US9356844B2 (en) Efficient application recognition in network traffic
US20110016154A1 (en) Profile-based and dictionary based graph caching
CN112558948A (zh) 一种海量流量下报文识别的方法和装置
CN113438252B (zh) 报文访问控制方法、装置、设备及存储介质
CN114157502A (zh) 一种终端识别方法、装置、电子设备及存储介质
US20050262294A1 (en) Method for policy matching using a hybrid TCAM and memory-based scheme
JP2006508597A (ja) デジタル通信データに基づいてアクションをトリガーする方法及びコンピュータ・システム
JP3837670B2 (ja) データ中継装置、連想メモリデバイス、および連想メモリデバイス利用情報検索方法
CN109347747B (zh) 一种数据处理方法及装置
CN114189572B (zh) 一种包检测规则匹配方法、装置、网元及存储介质
CN115002039B (zh) 一种基于udf的流量卸载方法及系统
CN111949740B (zh) 基于多核处理器的并行网包分类方法、系统及网络设备
CN117914973A (zh) 报文转发方法、装置、网络设备及存储介质
CN114615231A (zh) 一种基于名字提取的网络包处置方法及系统
CN114125030A (zh) 连接跟踪方法、装置、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant