CN114900468B - 一种规则匹配方法、装置、设备和存储介质 - Google Patents
一种规则匹配方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114900468B CN114900468B CN202210577688.4A CN202210577688A CN114900468B CN 114900468 B CN114900468 B CN 114900468B CN 202210577688 A CN202210577688 A CN 202210577688A CN 114900468 B CN114900468 B CN 114900468B
- Authority
- CN
- China
- Prior art keywords
- rule
- matching
- data packet
- combination
- sub
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/208—Port mirroring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种规则匹配方法、装置、电子设备和存储介质,包括确定组合规则中每个子规则的匹配结构,其中,匹配结构中包含所属的组合规则名称,以及在所属的组合规则中的区间;对接收到的数据包进行规则匹配,获取匹配的规则;当匹配的规则为指定子规则时,根据指定子规则所对应的匹配结构确定所属的指定组合规则,并根据指定组合规则确定针对数据包的匹配结果。通过预先配置组合规则,基于一台设备通过单次匹配,实现数据包针对组合规则的匹配,而无需采用多设备对多个独立规则分别单独进行多次匹配操作,可以较大的节省设备数量,简化网络拓扑。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种规则匹配方法、装置、设备和存储介质。
背景技术
规则的扫描匹配是目前流量监测领域的一项基本且重要的技术,在汇聚分流设备、防火墙设备、DPI设备上均有着广泛的应用。在收到数据包后,通过对数据包进行各类规则的扫描匹配,可以确定数据包是否是感兴趣的数据包,对于命中规则的数据包,根据命中的规则情况,进行对应的处理。
但是在常规流检测中,主要是采用单条规则进行扫描,当需要对大规模网络中的大量特定流量进行监控时,通常需要对大量的单条规则分别进行匹配,这样对系统的整体处理性能会产生很大的压力。为了减少规则匹配的压力虽然提出了采用多级架构匹配,但通常需要多台设备,这样会造成设备数量的剧增以及网络拓扑复杂的问题。
发明内容
本发明实施例提供了一种规则匹配方法、装置、电子设备和存储介质,以实现对数据包的规则匹配。
第一方面,本发明实施例提供了一种规则匹配方法,包括:确定组合规则中每个子规则的匹配结构,其中,所述匹配结构中包含所属的组合规则名称,以及在所属的组合规则中的区间;对接收到的数据包进行规则匹配,获取匹配的规则;当所述匹配的规则为指定子规则时,根据所述指定子规则所对应的匹配结构确定所属的指定组合规则,并根据所述指定组合规则确定针对所述数据包的匹配结果。
另外,确定组合规则中每个子规则的匹配结构,包括:获取所加载的规则;当确定所加载的规则为组合规则时,对所述组合规则进行拆分获取至少两个子规则,子规则包括五元组规则、关键字规则、正则规则或者与规则;根据每个所述子规则在所述组合规则的位置信息,确定所述子规则的匹配结构。通过进行规则加载,并将加载的规则中所包含的组合规则进行拆分,确定子规则的匹配结构,便于在进行规则匹配时根据匹配结构对子规则进行定位。
另外,对接收到的数据包进行规则匹配,获取匹配的规则,包括:获取所述数据包所对应的指定参数,其中,所述指定参数包括源地址、目的地址或关键字;根据所述指定参数进行规则匹配,获取所述匹配的规则。通过数据包中所对应的指定参数进行规则匹配,从而使得所获取的匹配的规则更加准确。
另外,根据所述指定组合规则确定针对所述数据包的匹配结果,包括:根据所述对应的匹配结构确定所述指定子规则位于所述指定组合规则中的指定区间;判断所述指定组合规则中除所述指定区间外的各区间中是否存在与所述数据包匹配的子规则,若是,则确定所述数据包与所述指定组合规则匹配成功,否则,确定所述数据包与所述指定组合规则匹配失败。通过确定指定组合规则中各个区间中全部存在与数据包匹配的子规则时,确定数据包与指定组合规则匹配成功,从而在仅采用一台设备通过单次匹配,就可以准确获取到匹配结果。
另外,根据所述对应的匹配结构确定所述指定子规则位于所述指定组合规则中的指定区间之后,还包括:当确定所述指定区间不存在历史规则匹配记录时,则对所述数据包在所述指定区间的匹配信息进行记录。当确定指定区间不存在历史规则匹配记录时,说明当前所匹配的指定子规则是首次命中,通过对匹配信息进行记录,便于后续匹配查询从而提高指定组合规则的匹配效率。
另外,根据所述指定组合规则确定针对所述数据包的匹配结果之后,还包括:当确定匹配结果为匹配成功时,当确定匹配结果为匹配成功时,判断所述数据包是否还匹配到独立规则,若是,则将所述指定组合规则与所述独立规则中优先级高的作为目标规则,否则,直接将所述指定组合规则作为所述目标规则;根据所述目标规则对所述数据包进行处理。在进行规则匹配时支持组合规则与独立规则不同优先级的对比,保证数据包匹配到优先级高的规则。
另外,根据所述目标规则对所述数据包进行处理,包括:当确定所述目标规则为所述指定组合规则时,获取所述指定组合规则中所包含的配置信息,并根据所述配置信息对所述数据包执行处理操作,其中,所述处理操作包括镜像、存包或日志保存;当确定所述目标规则为所述独立规则时,则获取用户针对所述独立规则的处理指令,根据所述处理指令对所述数据包进行处理。当指定组合规则优先级高时,直接通过指定组合规则中所包含的配置信息对数据包执行处理操作,从而保证数据处理结果的准确性。
第二方面,本发明实施例提供了一种规则匹配装置,包括:匹配结构确定模块,用于确定组合规则中每个子规则的匹配结构,其中,所述匹配结构中包含所属的组合规则名称,以及在所属的组合规则中的区间;匹配模块,用于对接收到的数据包进行规则匹配获取匹配的规则;匹配结果获取模块,用于当所述匹配的规则为指定子规则时,根据所述指定子规则所对应的匹配结构确定所属的指定组合规则,并根据所述指定组合规则确定针对所述数据包的匹配结果。
第三方面,本发明实施例提供了一种电子设备,电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上所述的方法。
本发明实施例的技术方案,通过预先配置组合规则,基于一台设备通过单次匹配,实现数据包针对组合规则的匹配,而无需采用多设备对多个独立规则分别单独进行多次匹配操作,可以较大的节省设备数量,简化网络拓扑。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例一提供的规则匹配方法的流程图;
图2是本发明实施例二提供的规则匹配方法的流程图;
图3是本发明实施例三提供的规则匹配方法的流程图;
图4是本发明实施例三提供的指定组合规则的示意图;
图5是本发明实施例三提供的规则匹配装置的结构示意图;
图6是本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、软件实现、硬件实现等等。
实施例一
图1是本发明实施例提供的规则匹配方法的流程图,本实施例适用于对数据包进行规则匹配的情况,该方法可以由本发明实施例中的规则匹配装置来执行,该装置可以采用软件和/或硬件的方式实现。如图1所示,该方法具体包括如下操作:
步骤S101,确定组合规则中每个子规则的匹配结构。
可选的,确定组合规则中每个子规则的匹配结构,包括:获取所加载的规则;当确定所加载的规则为组合规则时,对组合规则进行拆分获取至少两个子规则;根据每个子规则在组合规则的位置信息,确定子规则的匹配结构。
其中,本实施方式的组合规则指的是将规则分为几个部分,每个部分都有数量不等的子规则,子规则具体可以包括五元组规则、关键字规则、正则规则或者与规则等,本实施方式中并不对子规则的具体类型进行限定,并且针对每个部分都有至少一个子规则命中,才认为该条组合规则整体命中。对应的组合规则中的不同区间具体可以命名为A区间、B区间和C区间等,本实施方式中以组合规则中包含A区间和B区间的AB组合规则为例进行说明,但在实际应用中并不限定组合规则中所包含的具体区间数量。
具体的说,在对数据包进行规则匹配之前首先需要进行规则加载,并且在规则加载时,会针对每一条规则判断是AB组合规则还是普通独立规则,当确定为普通独立规则时则正常生成匹配时所使用的匹配结构;当确定为AB组合规则时,需要对规则进行拆分为不同区间的子规则,即获取至少两个子规则,并且此时经过拆分所获取的子规则的粒度与普通独立规则一致,可以支持五元组规则、关键字规则、正则规则或者与规则等,本实施方式中并不对所拆分的子规则的具体类型进行限定。并且针对AB组合规则所拆分出来的每个子规则,会根据在AB组合规则的位置信息,确定子规则的匹配结构,匹配结构中包含所属的组合规则名称,以及在所属的组合规则中的区间。在后续数据包匹配时,当确定匹配的规则为子规则时,能够获取之前所加载的子规则的匹配结构,并根据匹配结构的信息确定子规则所位于的具体组合规则名称,以及所位于的组合规则中的具体区间,从而实现对所匹配到的子规则的快速定位。。
步骤S102,对接收到的数据包进行规则匹配,获取匹配的规则。
可选的,对接收到的数据包进行规则匹配,获取匹配的规则,包括:获取数据包的指定参数,其中,指定参数包括源地址、目的地址或关键字;根据指定参数进行规则匹配,获取匹配的规则。
具体的说,当系统接收到数据包之后,会对接收到的数据包进行规则扫描,在进行规则扫描时,具体是获取数据包的指定参数,在指定参数中包含数据包所对应的源地址、目的地址或者关键字。当然,本实施方式中仅是举例说明,而并不对指定参数的具体内容进行限定。在匹配过程中具体是对数据包进行全包扫描,查看是否存在与数据包中的指定参数所匹配的规则,若存在则确定匹配该条规则。
步骤S103,当匹配的规则为指定子规则时,根据指定子规则所对应的匹配结构确定所属的指定组合规则,并根据指定组合规则确定针对数据包的匹配结果。
可选的,根据指定组合规则确定针对数据包的匹配结果,包括:根据对应的匹配结构确定指定子规则位于指定组合规则中的指定区间;判断指定组合规则中除指定区间外的各区间中分别存在与数据包匹配的子规则,若是,则确定数据包与指定组合规则匹配成功,否则,确定数据包与指定组合规则匹配失败。
具体的说,当通过规则扫描确定命中规则引擎中的规则时,会实时或者统一调用处理函数对所命中的规则进行识别,判定所命中的该条规则是普通独立规则还是AB组合规则,对于普通独立规则按照正常的处理方式进行处理即可,关于普通独立规则命中的处理方式并不是本申请的重点,因此本实施方式中不再进行赘述。但是当确定所匹配到的是AB组合规则中的指定子规则时,则需要根据获取指定组合规则所对应的匹配结构,并根据对应的匹配结构确定指定子规则位于指定组合规则中的具体位置,即指定区间。当确定指定组合规则中除指定区间外,剩余区间也分别存在与数据包匹配的规则,则确定数据包命中该条AB组合规则,只要有任何一个区间没有命中,则确定数据包与指定组合规则匹配失败。从而实现了基于一台设备通过单次匹配,就可以实现数据包针对组合规则的匹配,而无需采用多设备对多个独立规则分别单独进行多次匹配操作。
可选的,根据对应的匹配结构确定指定子规则位于指定组合规则中的指定区间之后,还包括:当确定指定区间不存在历史规则匹配记录时,则对数据包在指定区间的匹配信息进行记录。
需要说明的是,当确定指定区间不存在历史规则匹配记录时,说明指定子规则是AB组合规则中在指定区间的首次命中,因此需要对数据包在指定区间的匹配信息进行记录,从而根据记录信息可以确定在指定区间至少存在一个匹配的子规则,即确定数据包命中该指定区间,因此当有新的子规则再次命中该指定区间时,则可以通过查询记录信息确定指定区间之前已经命中过,新的子规则的命中不会影响整个AB组合规则的匹配结果,因此可以忽略本次命中。当根据记录信息确定数据包对AB组合中的所有区间都命中时,可以直接确定数据包与AB组合规则匹配成功,而无需在数据包扫描完后再次对AB组合的匹配结果进行核验,从而提高指定组合规则的匹配效率。
在一个具体实现中,当确定命中的指定子规则在AB组合规则的A区间,则需要确定AB组合规则的A区间是否之前已经命中过,如果之前已经命中过,则当前指定子规则的命中不会影响整个AB组合规则的命中情况;如果之前AB组合规则的A区间之前未命中过,说明当前指定子规则是AB组合规则在A区间的首次命中,在这种情况A区间是不存在历史规则匹配记录,因此会对数据包在A区间的匹配信息进行记录,说明AB组合规则的A区间已经有命中的子规则了。
其中,当确定指定子规则触发了AB组合规则中新的区间的命中,则需要对AB组合规则中所有的区间命中情况进行确定,例如,当确定AB组合规则的A区间已经有指定规则与数据包匹配之后,会判断B区间中是否存在与数据包匹配的子规则,在A区间和B区间分别存在与数据包匹配的子规则之后,则可以确定数据包与组合规则AB匹配。
在另一个具体实现中,当指定子规则命中的是包含A区间、B区间和C区间的ABC组合规则,如果指定子规则触发了ABC组合规则中新的区间,例如,首次命中A区间,则需要对ABC组合规则中所有的区间命中情况进行确定,具体是确定ABC组合规则的A区间已经有指定规则与数据包匹配之后,会根据所保存的记录信息判断B区间和C区间中是否也存在与数据包匹配的子规则,在A区间、B区间和C区间都存在与数据包匹配的子规则之后,则可以确定数据包与组合规则ABC匹配。当然,本实施方式中仅是举例说明,对于存在更多区间的情况,与上述AB组合规则或ABC组合规则的处理方式大致相同,本实施方式中不再进行赘述。
本发明实施例的技术方案,通过预先配置组合规则,基于一台设备通过单次匹配,实现数据包针对组合规则的匹配,而无需采用多设备对多个独立规则分别单独进行多次匹配操作,可以较大的节省设备数量,简化网络拓扑。
实施例二
图2是本发明实施例提供的规则匹配方法的流程图,本实施例以上述实施例为基础,本实施例确定出匹配结果为匹配成功时,会通过所匹配的指定组合规则对数据包进行处理,方法步骤具体包括如下操作:
步骤S201,确定组合规则中每个子规则的匹配结构。
可选的,确定组合规则中每个子规则的匹配结构,包括:获取所加载的规则;当确定所加载的规则为组合规则时,对组合规则进行拆分获取至少两个子规则;根据每个子规则在组合规则的位置信息,确定子规则的匹配结构。
在一个具体实现中,当所加载的为组合规则X时,对组合规则X进行拆分确定包含子规则1和子规则2,并且确定子规则1位于A区间,子规则2位于B区间,则确定子规则1的匹配结构中包含:所属的组合规则名称为X,且位于X的A区间。同理,子规则2的匹配结构中包含:所属的组合规则名称为X,且位于X的B区间。
步骤S202,对接收到的数据包进行规则匹配,获取匹配的规则。
可选的,对接收到的数据包进行规则匹配,获取匹配的规则,包括:获取数据包的指定参数,其中,指定参数包括源地址、目的地址或关键字;根据指定参数进行规则匹配,获取匹配的规则。
步骤S203,当匹配的规则为指定子规则时,根据指定子规则所对应的匹配结构确定所属的指定组合规则,并根据指定组合规则确定针对数据包的匹配结果。
可选的,根据指定组合规则确定针对数据包的匹配结果,包括:根据对应的匹配结构确定指定子规则位于指定组合规则中的指定区间;判断指定组合规则中除指定区间外的各区间中分别存在与数据包匹配的子规则,若是,则确定数据包与指定组合规则匹配成功,否则,确定数据包与指定组合规则匹配失败。
可选的,根据对应的匹配结构确定指定子规则位于指定组合规则中的指定区间之后,还包括:当确定指定区间不存在历史规则匹配记录时,则对数据包在指定区间的匹配信息进行记录。
步骤S204,当确定匹配结果为匹配成功时,判断数据包是否还匹配到独立规则,若是,则将指定组合规则与独立规则中优先级高的作为目标规则,否则,直接将指定组合规则作为目标规则。
其中,当确定匹配到指定组合规则时,数据包还可能会匹配到独立规则,当同时匹配到两类规则的时,会根据执行组合规则与独立规则的优先级来确定目标规则。而在进行优先级比较时,当指定组合规则X的A区间所匹配的为规则1,B区间所匹配的为规则2,则要求规则1和规则2的优先级都大于独立规则,则可以确定指定组合规则的优先级高于独立规则,否则确定指定组合规则的优先级低于独立规则。
步骤S205,根据目标规则对数据包进行处理。
可选的,根据目标规则对数据包进行处理,包括:当确定目标规则为指定组合规则时,获取指定组合规则中所包含的配置信息,并根据配置信息对数据包执行处理操作,其中,处理操作包括镜像、存包或日志保存;当确定目标规则为独立规则时,则获取用户针对独立规则的处理指令,根据处理指令对数据包进行处理。
具体的说,本实施方式中还支持组合规则与独立规则、以及多个组合规则的优先级判定的情况,例如,当确定数据包在匹配到AB组合规则的同时,还匹配到了独立规则,则会对独立规则与AB组合规则的优先级进行比较,确定AB组合规则的优先级高于独立规则,才确定按照组合AB的配置信息对数据包执行处理操作。
具体的说,在确定匹配结果为匹配成功,并确定指定组合规则为所匹配到的规则中优先级最高时,会获取指定组合规则中所包含的配置信息,在配置信息中会包含指定组合规则所对应的数据包处理方式,例如,配置信息中包含数据包处理方式为镜像方式、存包方式或日志保存方式等,本实施方式中并不对配置信息中所包含的处理方式的具体类型进行限定。
其中,在获取到配置信息后按照配置信息中所指定的处理方式对数据包执行处理操作,当确定配置信息中所包含的处理方式为镜像方式时,则会根据配置信息对所接收到的数据包进行镜像处理操作,当然,本实施方式中仅是举例说明,而并不限定处理操作的具体类型。
值得一提的是,当确定目标规则为独立规则时,则按照常规的独立规则的处理方式对数据包进行处理,但是不同的是,由于组合规则在创建之初已经创建了所对应的配置信息,因此只要数据包匹配到组合规则,则无需判断就可以直接根据预先所创建的配置信息对数据包进行处理;而当匹配到独立规则时,由于独立规则所对应的具体操作并未确定,因此需要获取用户针对独立规则的处理指令,并根据处理指令对数据包进行相应的处理,因此相应的处理操作上要更加繁琐。
本发明实施例的技术方案,通过预先配置组合规则,基于一台设备通过单次匹配,实现数据包针对组合规则的匹配,而无需采用多设备对多个独立规则分别单独进行多次匹配操作,可以较大的节省设备数量,简化网络拓扑。根据指定组合规则中所包含的配置信息,对数据包执行响应的操作,从而保证数据处理的效率和在准确性。
实施例三
图3是本发明实施例提供的规则匹配方法的流程图,本实施例以上述实施例为基础,本实施例对步骤S103当匹配的规则为指定子规则时,根据指定子规则所对应的匹配结构确定所属的指定组合规则,并根据指定组合规则确定针对数据包的匹配结果进行具体说明。如图3所示,该方法具体包括如下操作:
步骤S301,当匹配的规则为指定子规则时,根据指定子规则所对应的匹配结构确定所属的指定组合规则。
具体的说,当匹配的规则为指定子规则1时,则会获取子规则1的匹配结构:所属的组合规则名称为X,且位于X的A区间。则根据匹配结构可以获取所匹配的指定组合规则为:X组合规则,如图4所示,为指定组合规则的示意图。
步骤S302,根据对应的匹配结构确定指定子规则位于指定组合规则中的指定区间。
并且根据上述的子规则1的匹配结构还可以获取子规则1具体是位于X组合规则的A区间,从而根据匹配结构实现对所匹配的子规则1的快速定位。
步骤S303,判断指定组合规则中除指定区间外的各区间中是否存在与数据包匹配的子规则,若是,则执行步骤S304,否则,执行步骤S305。
具体的说,当确定数据包匹配到子规则1时,说明数据包命中了X组合规则的A区间,此时会确定查询历史规则匹配记录确定A区间是否有命中记录,如果历史规则匹配记录中记载了数据包也匹配到了子规则2,则当前子规则1的记录对数据包命中A区间没有影响。若没有,说明当前是首次命中X组合规则的A区间,并在历史规则匹配记录中进行记录,此时还会继续判断B区间和C区间是否也存在与数据包匹配的子规则,若B区间和C区间都至少匹配到一个子规则,则说明数据包与X组合规则匹配。例如,B区间的子规则3,C区间的子规则6分别与X组合规则匹配;或者,B区间的子规则4,C区间的子规则7分别与X组合规则匹配。当然,本实施方式中仅是举例说明,而并不对数据包与X组合规则中所包含的子规则的匹配方式进行限定,只要每个区间至少存在一个与数据包匹配的子规则,则都是在本申请的保护范围内,本实施方式中不再进行赘述。
而当X组合规则中存在任意一个区间中不存在与数据包匹配的子规则,则确定数据包与X组合规则不匹配。
步骤S304,确定数据包与指定组合规则匹配成功。
步骤S305,确定数据包与指定组合规则匹配失败。
本发明实施例的技术方案,通过预先配置组合规则,基于一台设备通过单次匹配,实现数据包针对组合规则的匹配,而无需采用多设备对多个独立规则分别单独进行多次匹配操作,可以较大的节省设备数量,简化网络拓扑。
实施例四
图5为本发明实施例提供的规则匹配装置的结构示意图,该装置具体包括:
匹配结构确定模块310,用于确定组合规则中每个子规则的匹配结构,其中,匹配结构中包含所属的组合规则名称,以及在所属的组合规则中的区间;
匹配模块320,用于对接收到的数据包进行规则匹配,获取匹配的规则;
匹配结果获取模块330,用于当匹配的规则为指定子规则时,根据指定子规则所对应的匹配结构确定所属的指定组合规则,并根据指定组合规则确定针对数据包的匹配结果。
可选的,匹配结构确定模块,用于获取所加载的规则;
当确定所加载的规则为组合规则时,对组合规则进行拆分获取至少两个子规则,子规则包括五元组规则、关键字规则、正则规则或者与规则;;
根据每个子规则在组合规则的位置信息,确定子规则的匹配结构。
可选的,匹配模块,用于获取数据包所对应的指定参数,其中,指定参数包括源地址、目的地址或关键字;
根据指定参数进行规则匹配,获取匹配的规则。
可选的,匹配结果获取模块,用于根据对应的匹配结构确定指定子规则位于指定组合规则中的指定区间;
判断指定组合规则中除指定区间外的各区间中分别存在与数据包匹配的子规则,若是,则确定数据包与指定组合规则匹配成功,
否则,确定数据包与指定组合规则匹配失败。
可选的,装置还包括记录模块,用于当确定指定区间不存在历史规则匹配记录时,则对数据包在指定区间的匹配信息进行记录。
可选的,装置还包括优先级比较模块,用于当确定匹配结果为匹配成功时,判断数据包是否还匹配到独立规则,若是,则将指定组合规则与独立规则中优先级高的作为目标规则,否则,直接将指定组合规则作为目标规则;
根据目标规则对数据包进行处理。
可选的,装置还包括数据包处理模块,用于当确定目标规则为指定组合规则时,获取指定组合规则中所包含的配置信息,并根据配置信息对数据包执行处理操作,其中,处理操作包括镜像、存包或日志保存;
当确定目标规则为独立规则时,则获取用户针对独立规则的处理指令,根据处理指令对数据包进行处理。
上述装置可执行本发明任意实施例所提供的规则匹配方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的方法。
实施例五
图6是本发明实施例提供的一种电子设备的结构示意图。图6示出了适用于用来实现本发明实施方式的示例性电子设备412的框图。图6显示的电子设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备412以通用计算设备的形式出现。电子设备412的组件可以包括但不限于:一个或者多个处理器416,存储器428,连接不同系统组件(包括存储器428和处理器416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器428用于存储指令。存储器428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)430和/或高速缓存存储器432。电子设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。
电子设备412也可以与一个或多个外部设备414(例如键盘、指向设备、显示器424等)通信,还可与一个或者多个使得用户能与该电子设备412交互的设备通信,和/或与使得该电子设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,电子设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与电子设备412的其它模块通信。应当明白,尽管图6中未示出,可以结合电子设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器416通过运行存储在存储器428中的指令,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的规则匹配方法:确定组合规则中每个子规则的匹配结构,其中,匹配结构中包含所属的组合规则名称,以及在所属的组合规则中的区间;对接收到的数据包进行规则匹配,获取匹配的规则;当匹配的规则为指定子规则时,根据指定子规则所对应的匹配结构确定所属的指定组合规则,并根据指定组合规则确定针对数据包的匹配结果。
实施例六
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的规则匹配方法:确定组合规则中每个子规则的匹配结构,其中,匹配结构中包含所属的组合规则名称,以及在所属的组合规则中的区间;对接收到的数据包进行规则匹配,获取匹配的规则;当匹配的规则为指定子规则时,根据指定子规则所对应的匹配结构确定所属的指定组合规则,并根据指定组合规则确定针对数据包的匹配结果。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种规则匹配方法,其特征在于,包括:
确定组合规则中每个子规则的匹配结构,其中,所述匹配结构中包含所属的组合规则名称,以及在所属的组合规则中的区间;
对接收到的数据包进行规则匹配,获取匹配的规则;
当所述匹配的规则为指定子规则时,根据所述指定子规则所对应的匹配结构确定所属的指定组合规则,并根据所述指定组合规则确定针对所述数据包的匹配结果;
其中,所述根据所述指定组合规则确定针对所述数据包的匹配结果,包括:
根据所述对应的匹配结构确定所述指定子规则位于所述指定组合规则中的指定区间;
判断所述指定组合规则中除所述指定区间外的各区间中是否存在与所述数据包匹配的子规则,若是,则确定所述数据包与所述指定组合规则匹配成功。
2.根据权利要求1所述的方法,其特征在于,所述确定组合规则中每个子规则的匹配结构,包括:
获取所加载的规则;
当确定所加载的规则为组合规则时,对所述组合规则进行拆分获取至少两个子规则,所述子规则包括五元组规则、关键字规则、正则规则或者与规则;
根据每个所述子规则在所述组合规则的位置信息,确定所述子规则的匹配结构。
3.根据权利要求1所述的方法,其特征在于,所述对接收到的数据包进行规则匹配,获取匹配的规则,包括:
获取所述数据包所对应的指定参数,其中,所述指定参数包括源地址、目的地址或关键字;
根据所述指定参数进行规则匹配,获取所述匹配的规则。
4.根据权利要求1所述的方法,其特征在于,在判断所述指定组合规则中除所述指定区间外的各区间中是否存在与所述数据包匹配的子规则之后,还包括:
若所述指定组合规则中除所述指定区间外的至少一个区间中不存在与所述数据包匹配的子规则,确定所述数据包与所述指定组合规则匹配失败。
5.根据权利要求1所述的方法,其特征在于,所述根据所述对应的匹配结构确定所述指定子规则位于所述指定组合规则中的指定区间之后,还包括:
当确定所述指定区间不存在历史规则匹配记录时,则对所述数据包在所述指定区间的匹配信息进行记录。
6.根据权利要求1所述的方法,其特征在于,所述根据所述指定组合规则确定针对所述数据包的匹配结果之后,还包括:
当确定匹配结果为匹配成功时,判断所述数据包是否还匹配到独立规则,若是,则将所述指定组合规则与所述独立规则中优先级高的作为目标规则,否则,直接将所述指定组合规则作为所述目标规则;
根据所述目标规则对所述数据包进行处理。
7.根据权利要求6所述的方法,其特征在于,所述根据所述目标规则对所述数据包进行处理,包括:
当确定所述目标规则为所述指定组合规则时,获取所述指定组合规则中所包含的配置信息,并根据所述配置信息对所述数据包执行处理操作,其中,所述处理操作包括镜像、存包或日志保存;
当确定所述目标规则为所述独立规则时,则获取用户针对所述独立规则的处理指令,根据所述处理指令对所述数据包进行处理。
8.一种规则匹配装置,其特征在于,包括:
匹配结构确定模块,用于确定组合规则中每个子规则的匹配结构,其中,所述匹配结构中包含所属的组合规则名称,以及在所属的组合规则中的区间;
匹配模块,用于对接收到的数据包进行规则匹配获取匹配的规则;
匹配结果获取模块,用于当所述匹配的规则为指定子规则时,根据所述指定子规则所对应的匹配结构确定所属的指定组合规则,并根据所述指定组合规则确定针对所述数据包的匹配结果;
其中,所述规则匹配装置还包括:匹配结果获取模块,用于根据所述对应的匹配结构确定所述指定子规则位于所述指定组合规则中的指定区间;
判断所述指定组合规则中除所述指定区间外的各区间中是否存在与所述数据包匹配的子规则,若是,则确定所述数据包与所述指定组合规则匹配成功。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210577688.4A CN114900468B (zh) | 2022-05-25 | 2022-05-25 | 一种规则匹配方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210577688.4A CN114900468B (zh) | 2022-05-25 | 2022-05-25 | 一种规则匹配方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114900468A CN114900468A (zh) | 2022-08-12 |
CN114900468B true CN114900468B (zh) | 2024-04-12 |
Family
ID=82726173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210577688.4A Active CN114900468B (zh) | 2022-05-25 | 2022-05-25 | 一种规则匹配方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900468B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7669119B1 (en) * | 2005-07-20 | 2010-02-23 | Alexa Internet | Correlation-based information extraction from markup language documents |
CN110019318A (zh) * | 2017-09-11 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种日志匹配处理方法、装置以及电子设备 |
CN111241138A (zh) * | 2020-01-14 | 2020-06-05 | 北京恒光信息技术股份有限公司 | 数据匹配方法及装置 |
CN111817960A (zh) * | 2020-07-23 | 2020-10-23 | 杭州迪普信息技术有限公司 | 流控设备的报文转发方法及装置 |
CN112311699A (zh) * | 2020-09-28 | 2021-02-02 | 清华大学无锡应用技术研究院 | 处理网络数据包的方法、装置及存储介质 |
CN113691458A (zh) * | 2021-08-19 | 2021-11-23 | 北京指掌易科技有限公司 | 一种网络包的处理方法、装置、电子设备及存储介质 |
CN114022292A (zh) * | 2021-10-28 | 2022-02-08 | 中国平安财产保险股份有限公司 | 基于人工智能的定损规则筛选方法、装置、设备及介质 |
CN114328619A (zh) * | 2021-12-14 | 2022-04-12 | 北京恒光信息技术股份有限公司 | 多要素数据匹配方法及装置 |
-
2022
- 2022-05-25 CN CN202210577688.4A patent/CN114900468B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7669119B1 (en) * | 2005-07-20 | 2010-02-23 | Alexa Internet | Correlation-based information extraction from markup language documents |
CN110019318A (zh) * | 2017-09-11 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种日志匹配处理方法、装置以及电子设备 |
CN111241138A (zh) * | 2020-01-14 | 2020-06-05 | 北京恒光信息技术股份有限公司 | 数据匹配方法及装置 |
CN111817960A (zh) * | 2020-07-23 | 2020-10-23 | 杭州迪普信息技术有限公司 | 流控设备的报文转发方法及装置 |
CN112311699A (zh) * | 2020-09-28 | 2021-02-02 | 清华大学无锡应用技术研究院 | 处理网络数据包的方法、装置及存储介质 |
CN113691458A (zh) * | 2021-08-19 | 2021-11-23 | 北京指掌易科技有限公司 | 一种网络包的处理方法、装置、电子设备及存储介质 |
CN114022292A (zh) * | 2021-10-28 | 2022-02-08 | 中国平安财产保险股份有限公司 | 基于人工智能的定损规则筛选方法、装置、设备及介质 |
CN114328619A (zh) * | 2021-12-14 | 2022-04-12 | 北京恒光信息技术股份有限公司 | 多要素数据匹配方法及装置 |
Non-Patent Citations (2)
Title |
---|
Modified firewall rules matching algorithm;Li Zhong等;《Application Research of Computers 》;20130430;全文 * |
在网络分流器中利用TCAM用户空间实现组合规则的算法;高海源;;科技创新导报;20180301(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114900468A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11321122B2 (en) | Method, apparatus, device and medium for processing topological relation of tasks | |
EP3319004B1 (en) | Incident triage scoring engine | |
US9489234B2 (en) | Dynamically adjusting a log level of a transaction | |
US9679139B1 (en) | System and method of performing an antivirus scan of a file on a virtual machine | |
CN110716910A (zh) | 一种日志管理方法、装置、设备和存储介质 | |
US7962782B2 (en) | Modifying connection records | |
CN110428319B (zh) | 一种数据比对平台、方法、设备和存储介质 | |
CN113765982A (zh) | 一种请求响应方法、装置、系统、服务器和存储介质 | |
US20200250019A1 (en) | Method, device and computer program product for monitoring access request | |
CN110515758A (zh) | 一种故障定位方法、装置、计算机设备及存储介质 | |
US20200117640A1 (en) | Method, device and computer program product for managing storage system | |
CN113132393A (zh) | 异常检测方法、装置、电子设备以及存储介质 | |
CN113282606A (zh) | 数据处理方法、装置、存储介质和计算设备 | |
CN114900468B (zh) | 一种规则匹配方法、装置、设备和存储介质 | |
CN110855658B (zh) | 一种服务登录方法、装置、设备和存储介质 | |
CN110737678B (zh) | 一种数据查找方法、装置、设备和存储介质 | |
CN112395141B (zh) | 一种数据页管理方法、装置、电子设备及存储介质 | |
CN115022201B (zh) | 一种数据处理功能测试方法、装置、设备及存储介质 | |
CN110602162B (zh) | 终端取证方法、装置、设备和存储介质 | |
CN112783683B (zh) | 数据处理方法、装置、设备及存储介质 | |
US20230035666A1 (en) | Anomaly detection in storage systems | |
CN110753136B (zh) | 域名解析方法、装置、设备及存储介质 | |
CN110909349B (zh) | docker容器内反弹shell的检测方法和系统 | |
CN110085237B (zh) | 交互过程的恢复方法、装置及设备 | |
CN110647527B (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 |