CN117472554A - 规则查找方法、装置、设备及计算机可读存储介质 - Google Patents
规则查找方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117472554A CN117472554A CN202210859083.4A CN202210859083A CN117472554A CN 117472554 A CN117472554 A CN 117472554A CN 202210859083 A CN202210859083 A CN 202210859083A CN 117472554 A CN117472554 A CN 117472554A
- Authority
- CN
- China
- Prior art keywords
- rule
- access control
- rule set
- feature
- message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 230000015654 memory Effects 0.000 claims abstract description 79
- 238000013507 mapping Methods 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 abstract description 20
- 230000006870 function Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 15
- 230000009471 action Effects 0.000 description 13
- 238000001914 filtration Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了规则查找方法、装置、设备及计算机可读存储介质,属于通信领域。方法包括:获取第一报文的第一特征;确定与第一特征匹配的第二特征,第二特征基于第一规则集合包括的第一访问控制规则得到,第二特征为第一类规则集合对应的特征中的一个或多个,第一类规则集合包括第一规则集合和第二规则集合,第一规则集合包括至少一条第一访问控制规则,第二规则集合包括至少一条第二访问控制规则;在至少一条第一访问控制规则中查找与第一报文匹配的目标规则。通过特征匹配快速选出与第一报文匹配的第一规则集合,仅在第一访问控制规则中查找目标规则,减少了需要查找的规则的数量,因而能够降低内存资源消耗,缩短了查找时间,提高了查找效率。
Description
技术领域
本申请涉及通信领域,特别涉及规则查找方法、装置、设备及计算机可读存储介质。
背景技术
报文在从源端口传输到目的端口的过程中,会在多个网络设备之间进行转发。网络设备在转发报文时,需要提取报文头中的字段,基于提取的字段查找包括多个访问控制规则的访问控制列表(access control list,ACL),从而确定需要对该报文执行的动作。因此,需要一种规则查找方法。
相关技术中,ACL中的多个访问控制规则存储在一个分类引擎中,基于待查找的报文查找分类引擎中存储的所有访问控制规则,将报文与各条访问控制规则依次进行匹配,得到与报文匹配的访问控制规则,之后,对报文执行匹配的访问控制规则所对应的动作。
然而,上述规则查找方法,在查找与报文匹配的访问控制规则时,需要查找所有访问控制规则,导致内存资源消耗大,查找时间长,效率低。
发明内容
本申请提供了一种规则查找方法、装置、设备及计算机可读存储介质,以提高规则查找的效率,技术方案如下:
第一方面,提供了一种规则查找方法,所述方法包括:获取第一报文的第一特征;确定与所述第一特征匹配的第二特征,所述第二特征基于第一规则集合包括的第一访问控制规则得到,所述第二特征为第一类规则集合对应的特征中的一个或多个,所述第一类规则集合包括所述第一规则集合和第二规则集合,所述第一规则集合包括至少一条第一访问控制规则,所述第二规则集合包括至少一条第二访问控制规则,所述至少一条第一访问控制规则与所述至少一条第二访问控制规则不同;在所述至少一条第一访问控制规则中查找与所述第一报文匹配的目标规则。
本申请提供的规则查找方法,通过对第一报文的第一特征与第一类规则集合对应的特征进行匹配,从第一类规则集合对应的特征中确定与第一特征匹配的第二特征,根据特征匹配结果快速选出第一类规则集合中包括第二特征对应的第一规则集合,仅在匹配的第一规则集合包括的第一访问控制规则中查找目标规则,减少了第一类规则集合中需要查找的规则的数量,因而能够降低内存资源消耗,缩短了查找时间,提高了查找效率。
在一种可能的实现方式中,所述确定与所述第一特征匹配的第二特征之前,还包括:获取所述第一规则集合包括的第一访问控制规则对应的通用特征,将所述通用特征作为所述第二特征;所述获取第一报文的第一特征,包括:提取所述第一报文中与所述通用特征对应的第一字段,将所述第一字段的信息作为所述第一报文的第一特征。第二特征是第一规则集合包括的各条第一访问控制规则的通用特征,而第一特征是基于通用特征对应的第一字段确定,与通用特征相关,进而保证第一特征与第二特征的匹配,从而根据特征匹配结果快速从第一类规则集合包括的规则集合中确定出第一规则集合。
在一种可能的实现方式中,所述获取所述第一规则集合包括的第一访问控制规则对应的通用特征,包括:提取所述第一规则集合包括的各条第一访问控制规则的相同字段,将所述相同字段的信息确定为所述第一规则集合包括的第一访问控制规则对应的通用特征。
在一种可能的实现方式中,所述获取所述第一规则集合包括的第一访问控制规则对应的通用特征,包括:如果第一规则集合包括的所有第一访问控制规则中有超过参考数量个第一访问控制规则的字符代码存在相同字段,则将该相同字段作为该第一规则集合包括的第一访问控制规则对应的通用特征。此种情况下,通用特征的数量为一个或多个。不仅可以将所有第一访问控制规则中的各条第一访问控制规则的相同字段作为通用特征,也可以将部分第一访问控制规则的相同字段作为通用特征,实施方式更加灵活。
在一种可能的实现方式中,所述确定与所述第一特征匹配的第二特征之前,还包括:获取所述第一规则集合包括的第一访问控制规则对应的目标内容,将所述目标内容进行映射,得到映射值,将所述映射值作为所述第二特征,所述目标内容为所述第一访问控制规则的全部内容或部分内容;所述获取第一报文的第一特征,包括:提取所述第一报文中与所述目标内容对应的第二字段,将所述第二字段的值进行映射,将得到的映射值作为所述第一报文的第一特征。在映射目标内容得到第二特征时,可以选择第一访问控制规则的全部内容作为目标内容,也可以选择第一访问控制规则的部分内容作为目标内容,灵活度高。此外,不限定第二特征的获取方式,且任一种第二特征的获取方式,均有与其对应的获取第一特征的方式,以保证方案的实现,通用性强。
在一种可能的实现方式中,所述在所述至少一条第一访问控制规则中查找与所述第一报文匹配的目标规则,包括:在所述第一规则集合包括的第一访问控制规则中,确定与所述第一报文匹配的参考规则;当与所述第一报文匹配的参考规则存在多个时,将所述多个参考规则中优先级最高的参考规则确定为所述目标规则。先在第一规则集合中查找参考规则,再根据多个参考规则的优先级选择目标规则,以保证查找得到的目标规则为优先级最高的访问控制规则。通过先查找第一规则集合内部的第一访问控制规则确定与第一报文匹配的参考规则,再查找第一规则集合之间的参考规则确定目标规则,这种分层查找的方式,提高了查找目标规则过程中的层次条理性,提高了查找效率。
在一种可能的实现方式中,所述方法还包括:获取第二报文的第三特征;在查找所述第一报文对应的目标规则的过程中,确定与所述第三特征匹配的第四特征,所述第四特征基于第三规则集合包括的第三访问控制规则得到,所述第四特征为第二类规则集合对应的特征中的一个或多个,所述第二类规则集合包括所述第三规则集合和第四规则集合,所述第三规则集合包括至少一条第三访问控制规则,所述第四规则集合包括至少一条第四访问控制规则,所述至少一条第三访问控制规则与所述至少一条第四访问控制规则不同;在所述至少一条第三访问控制规则中查找与所述第二报文匹配的目标规则。
本申请提供的规则查找方法,在查找第一报文对应的目标规则的基础上,还可以并行查找第二报文对应的目标规则。通过并行查找多个报文对应的目标规则,缩短了查找多个报文对应的目标规则的时间,提高了规则查找效率。
在一种可能的实现方式中,所述第二类规则集合与所述第一类规则集合为不同的规则集合。不同的报文可以查找对应的不同规则集合,进一步提高查找效率。
在一种可能的实现方式中,所述第二类规则集合与所述第一类规则集合为同一组规则集合;所述在所述至少一条第一访问控制规则中查找与所述第一报文匹配的目标规则,包括:基于所述第一规则集合的数量大于第一数量,从多个第一规则集合中选择所述第一数量个第一规则集合,所述第一数量基于所述第一类规则集合包括的规则集合的数量确定;按照所述第一数量依次在所述多个第一规则集合包括的第一访问控制规则中查找与所述第一报文匹配的目标规则。不限定第一类规则集合与第二类规则集合的关系,既可以为不同的规则集合,也可以为同一组规则集合,可基于应用场景设置,灵活度高。
第一类规则集合与第二类规则集合为同一组规则集合,无需增加第一类规则集合包括的第一访问控制规则与第二访问控制规则的条数,就可以实现多个报文的并行查找,不影响存储规则集合的内存资源的消耗。此外,通过限制每次查找的第一规则集合的数量,以保证多个报文并行查找的性能。
在一种可能的实现方式中,所述确定与所述第一特征匹配的第二特征之前,还包括:获取多个初始访问控制规则;基于所述多个初始访问控制规则之间的相似度与规则集合的数量,将不同的初始访问控制规则划分到对应的规则集合中,得到所述第一类规则集合。
通过根据多个初始访问控制规则之间的相似度划分第一类规则集合,将相似度高的初始访问控制规则划分在同一个规则集合中,由于同一个报文命中相似度差距较大的初始访问控制规则的可能性较小,通过将同一个报文匹配的初始访问控制规则较为集中的划分在同一个规则集合中,可减少命中的第一规则集合的数量,使得在较少的第一规则集合中能够快速查找与报文匹配的规则,可进一步提高查找效率。
在一种可能的实现方式中,所述确定与所述第一特征匹配的第二特征之前,还包括:获取多个初始访问控制规则;将类型相同的初始访问控制规则划分到同一个规则集合中,得到第一类规则集合。
通过将类型相同的访问控制规则划分到同一个规则集合中,由于同一个报文命中不同类型的初始访问控制规则的可能性较小,通过将同一类型的初始访问控制规则较为集中的划分在同一个规则集合中,可减少命中的第一规则集合的数量,使得在较少的第一规则集合中能够快速查找与报文匹配的规则,可进一步提高查找效率。
第二方面,提供了一种规则查找装置,所述装置包括:获取模块,用于获取第一报文的第一特征;确定模块,用于确定与所述第一特征匹配的第二特征,所述第二特征基于第一规则集合包括的第一访问控制规则得到,所述第二特征为第一类规则集合对应的特征中的一个或多个,所述第一类规则集合包括所述第一规则集合和第二规则集合,所述第一规则集合包括至少一条第一访问控制规则,所述第二规则集合包括至少一条第二访问控制规则,所述至少一条第一访问控制规则与所述至少一条第二访问控制规则不同;查找模块,用于在至少一条第一访问控制规则中查找与所述第一报文匹配的目标规则。
在一种可能的实现方式中,所述获取模块,还用于获取所述第一规则集合包括的第一访问控制规则对应的通用特征,将所述通用特征作为所述第二特征;所述获取模块,用于提取所述第一报文中与所述通用特征对应的第一字段,将所述第一字段的信息作为所述第一报文的第一特征。
在一种可能的实现方式中,所述获取模块,用于提取所述第一规则集合包括的各条第一访问控制规则的相同字段,将所述相同字段的信息确定为所述第一规则集合包括的第一访问控制规则对应的通用特征。
在一种可能的实现方式中,所述获取模块,还用于获取所述第一规则集合包括的第一访问控制规则对应的目标内容,将所述目标内容进行映射,得到映射值,将所述映射值作为所述第二特征,所述目标内容为所述第一访问控制规则的全部内容或部分内容;所述获取模块,用于提取所述第一报文中与所述目标内容对应的第二字段,将所述第二字段的值进行映射,将得到的映射值作为所述第一报文的第一特征。
在一种可能的实现方式中,所述查找模块,用于在所述第一规则集合包括的第一访问控制规则中,确定与所述第一报文匹配的参考规则;当与所述第一报文匹配的参考规则存在多个时,将所述多个参考规则中优先级最高的参考规则确定为所述目标规则。
在一种可能的实现方式中,所述获取模块,还用于获取第二报文的第三特征;所述确定模块,还用于在查找所述第一报文对应的目标规则的过程中,确定与所述第三特征匹配的第四特征,所述第四特征基于第三规则集合包括的第三访问控制规则得到,所述第四特征为第二类规则集合对应的特征中的一个或多个,所述第二类规则集合包括所述第三规则集合和第四规则集合,所述第三规则集合包括至少一条第三访问控制规则,所述第四规则集合包括至少一条第四访问控制规则,所述至少一条第三访问控制规则与所述至少一条第四访问控制规则不同;所述查找模块,还用于在所述至少一条第三访问控制规则中查找与所述第二报文匹配的目标规则。
在一种可能的实现方式中,所述第二类规则集合与所述第一类规则集合为不同的规则集合。
在一种可能的实现方式中,所述第二类规则集合与所述第一类规则集合为同一组规则集合;所述查找模块,用于基于所述第一规则集合的数量大于第一数量,从多个第一规则集合中选择所述第一数量个第一规则集合,所述第一数量基于所述第一类规则集合包括的规则集合的数量确定;按照所述第一数量依次在所述多个第一规则集合包括的第一访问控制规则中查找与所述第一报文匹配的目标规则。
在一种可能的实现方式中,所述获取模块,还用于获取多个初始访问控制规则;所述装置还包括:划分模块,用于基于所述多个初始访问控制规则之间的相似度与规则集合的数量,将不同的初始访问控制规则划分到对应的规则集合中,得到所述第一类规则集合。
第三方面,提供了一种网络设备,所述网络设备包括处理器,所述处理器用于从存储器中调用并运行所述存储器中存储的指令,以使所述网络设备实现第一方面或第一方面的任一种可能的规则查找方法。
在一种可能的实现方式中,所述网络设备还包括:输入接口、输出接口和所述存储器,所述输入接口、所述输出接口、所述处理器以及所述存储器之间通过内部连接通路相连。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现第一方面或第一方面的任一种可能的规则查找方法。
第五方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行,以使计算机实现第一方面或第一方面的任一种可能的规则查找方法。
第六方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面或第一方面的任一种可能的实施方式中的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第七方面,提供了一种芯片,包括处理器,用于运行计算机程序或指令,使得安装有所述芯片的通信设备执行上述各方面中的方法。
第八方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的方法。
应当理解的是,本申请实施例的第二方面至第八方面的技术方案及对应的可能的实现方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实现方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的方法的实施环境的示意图;
图2为本申请实施例提供的一种规则查找方法的流程图;
图3为本申请实施例提供的一种第一规则集合对应的特征的示意图;
图4为本申请实施例提供的另一种第一规则集合对应的特征的示意图;
图5为本申请实施例提供的一种过滤器执行匹配的示意图;
图6为本申请实施例提供的一种查找器件的结构示意图;
图7为本申请实施例提供的一种查找第一规则集合的过程示意图;
图8为本申请实施例提供的另一种查找器件的结构示意图;
图9为本申请实施例提供的一种规则查找装置的结构示意图;
图10为本申请实施例提供的一种网络设备的结构示意图;
图11为本申请实施例提供的另一种网络设备的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供了一种规则查找方法,请参考图1,其示出了本申请实施例提供的方法的实施环境的示意图。该实施环境为查找器件1,查找器件1包括过滤模块11和分类模块12。其中,过滤模块11包括至少一个过滤器(filter),例如图1所示的过滤器1,过滤器2、…过滤器M等中的一个或多个。分类模块12包括多个分类引擎(classificationengine),例如图1所示的分类引擎1,分类引擎2,…分类引擎M等中的一个或多个。分类模块12用于存储第一类规则集合,分类模块12中的一个分类引擎中存储一个第一规则集合或第二规则集合,与分类引擎连接的过滤器用于存储该分类引擎存储的第一规则集合或第二规则集合对应的特征。可选地,过滤模块11用于确定与第一特征匹配的第二特征,分类模块12用于在第一规则集合包括的第一访问控制规则中查找与第一报文匹配的目标规则。
需要说明的是,上述举例旨在说明查找器件的基本结构,而非对查找器件的结构进行限定。过滤模块11与分类模块12的位置关系可以为图1所示的过滤模块11配置在分类模块12的上方,过滤模块11还可以配置在分类模块12的侧面。过滤模块11中包括的过滤器与分类模块12中包括的分类引擎之间的连接,可以通过信号线实现物理连接,信号线的走线可以如图1所示为直线,也可以为带有拐点的折线,或者是不规则的曲线。当然,过滤器与分类引擎之间的连接还可以是逻辑连接,本申请实施例对此均不进行限定。其中,图1中的M为大于等于1的正整数,用于表示查找器件中包括的分类引擎和过滤器的数量。
可选地,查找器件1配置在用于转发报文的设备,比如网络设备中,网络设备可以是路由器、交换机与服务器等。
本申请实施例提供一种规则查找方法,该方法可应用于上述图1所示的实施环境中。示例性地,该规则查找方法可由查找器件执行,该方法包括S201-S203。
S201,获取第一报文的第一特征。
例如,配置有查找器件的网络设备获取报文,比如接收来自上游设备发送的报文,将接收到的报文作为需要查找规则的第一报文。本申请实施例不限定第一报文的类型,例如,第一报文为视频类报文,第一报文还可以为游戏类报文。网络设备在接收到第一报文,会调用查找器件查找第一报文对应的目标规则,查找器件获取到第一报文,并进一步获取第一报文的第一特征。
在一种可能的实现方式中,在获取第一报文的第一特征之前,还需要获取第一类规则集合,获取过程包括:获取多个初始访问控制规则;基于多个初始访问控制规则之间的相似度与规则集合的数量,将不同的初始访问控制规则划分到对应的规则集合中,得到第一类规则集合。其中,第一类规则集合包括第一规则集合与第二规则集合。
可选地,当初始访问控制规则被划分的规则集合属于第一规则集合时,该初始访问控制规则也即第一访问控制规则,当初始访问控制规则被划分的规则集合属于第二规则集合时,该初始访问控制规则也即第二访问控制。此外,本申请实施例不对第一类规则集合中包括的第一规则集合和第二规则集合的数量进行限定,可以为一个,也可以为多个。第二规则集合的数量也可以为一个,也可以为多个。除此之外,第一类规则集合在包括第一规则集合和第二规则集合的基础上还可以包括其他规则集合,本申请实施例对此不进行限定。在一些实施例中,第一类规则集合也可以预先存储在存储设备中,该存储设备位于网络设备内部或外部。
示例性地,初始访问控制规则可以基于经验设置,或者访问存储空间,从访问的存储空间中获取存储空间内存储的初始访问控制规则。查找器件所访问的存储空间可以是配置有查找器件的网络设备的存储空间,也可以是其他设备的存储空间。
无论基于何种方式获取的初始访问控制规则,初始访问控制规则均包括但不限于规则编号与规则的内容,该规则的内容可以用字符代码表示,规则编号用于区分不同的初始访问控制规则。在一种可能的实现方式中,字符代码可基于源端口号、目的端口号和互联网协议(internet protocol,IP)地址中的至少一种确定。字符代码的长度可以是任意长度,例如,字符代码的长度为8比特(bit)或10bit。
可选地,两个初始访问控制规则之间的相似度可基于初始访问控制规则包括的规则的内容也即字符代码确定。例如,将两个初始访问控制规则的字符代码中相同字段的字符数除以字符总数,得到的商即为两个初始访问控制规则的相似度。其中,相同字段是位置对应且数值相同的字段。例如,初始访问控制规则A的字符代码为1010 1111,初始访问控制规则B的字符代码为1100 1111,初始访问控制规则A的字符代码与初始访问控制规则B的字符代码中相同字段是位于第1位且数值为1的字段、位于第4位且数值为0的字段,以及位于第5~8位且数值均为1的字段,相同字段的字符数为6,初始访问控制规则的字符总数为8,用相同字段的字符数除以字符总数得到的初始访问控制规则A与初始访问控制规则B之间的相似度为6/8=0.75。
需要说明的是,获取初始访问控制规则之间的相似度可以通过上述实施例举例的方法,还可以通过其他方式,本申请实施例对此不进行限定。在获取多个初始访问控制规则之间的相似度后,基于多个初始访问控制规则之间的相似度与规则集合的数量,确定多个规则集合,得到第一类规则集合。其中,规则集合的数量是指需要获取的规则集合的总数,也即第一类规则集合包括的规则集合的总数。该规则集合的数量可基于经验和实施环境设置,例如实施环境可以是用于存储第一类规则集合的分类引擎的总数。可选地,基于规则集合的数量与多个初始访问控制规则的数量确定相似度阈值,将相似度高于相似度阈值的初始访问控制规则划分到一个规则集合中,得到第一类规则集合中的一个规则集合。
基于多个初始访问控制规则之间的相似度确定多个初始访问控制规则所属的规则集合,从而使得相似度高的初始访问控制规则位于一个规则集合内部,使得一个规则集合中的初始访问控制规则的分布更规律。另外,此种确定规则集合的方式,由于相似度高的规则在同一个规则集合中,而同一个报文命中相似度差距较大的规则的可能性较小,对于同一个报文而言,与该报文匹配的规则较为集中的处于同一个规则集合中,因而可减少命中的第一规则集合的数量,使得在较少的第一规则集合中能够快速查找与报文匹配的规则,可进一步提高查找效率。
可选地,除了上述实施例示出的基于初始访问控制规则之间的相似度确定第一类规则集合,还可以基于初始访问控制规则内容,确定第一类第一规则集合中的规则集合所包含的一个或多个初始访问控制规则。例如,类型相同的初始访问控制规则属于同一个规则集合。示例性地,初始访问控制规则的类型基于初始访问控制规则的内容确定。例如,多个初始访问控制规则中有通过提取子系统识别码(subsystem-identification,SID)作为初始访问控制规则的内容,则该初始访问控制规则的类型属于SID类型,多个初始访问控制规则中还有通过提取设备标识(device identification,DID)作为初始访问控制规则的内容,则该初始访问控制规则的类型属于DID类型。将多个初始访问控制规则中,属于SID类型的初始访问控制规则属于一个规则集合,属于DID类型的初始访问控制规则属于另一个规则集合。例如,具有相同指定字段的初始访问控制规则位于同一个规则集合中。其中,指定字段可以基于场景或经验设定。以指定字段为SID字段为例,具有SID字段的初始访问控制规则属于同一个规则集合。
示例性地,第一规则集合包括的至少一条第一访问控制规则与第二规则集合包括的至少一条第二访问控制规则不同。第一访问控制规则与第二访问控制规则不同是指第一访问控制规则的内容与第二访问控制规则的内容不同。第一规则集合中包括的第一访问控制规则的数量与第二规则集合中包括的第二访问控制规则的数量可以相同,也可以不同,本申请实施例对此不进行限定。在获取第一类规则集合包括的多个规则集合后,可获取第一类规则集合包括的各个规则集合对应的特征,得到第一类规则集合对应的特征,从而根据第一类规则集合对应的特征的确定方式,确定第一报文的第一特征。
此外,由于第一类规则集合中包括第一规则集合与第二规则集合,则确定第一类规则集合对应的特征,包括确定第一规则集合对应的特征与第二规则集合对应的特征。由于第一规则集合与第二规则集合在确定对应的特征的过程类似,在此以确定第一规则集合对应的特征举例,说明确定第一类规则集合对应的特征的过程。并且,由于第二特征是基于第一规则集合包括的第一访问控制规则得到,可以理解第二特征属于第一规则集合对应的特征。因此,确定第一规则集合对应的特征也即是确定第二特征。可选地,第二特征的确定方式包括但不限于如下两种方式。
确定方式一、获取第一规则集合包括的第一访问控制规则对应的通用特征,将该通用特征作为第二特征。
可选地,通用特征的获取过程包括:提取第一规则集合包括的各条第一访问控制规则的相同字段,将相同字段的信息确定为第一规则集合包括的第一访问控制规则对应的通用特征。其中,相同字段是指各条第一访问控制规则的字符代码中的相同字段,关于相同字段的描述可参见上述实施例,在此暂不进行赘述。示例性地,表1示出了一种第一规则集合。
表1
规则编号 | 字符代码 |
R1 | 1010 0000 |
R2 | 1010 0100 |
R3 | 1010 0111 |
R4 | 1010 1000 |
表1示出的第一规则集合中包括四条第一访问控制规则,其规则编号分别为R1、R2、R3与R4。不同的第一访问控制规则对应的字符代码可参见表1,其字符长度均为8比特(bit)。以R1为例,对表1示出的第一访问控制规则中的规则编号与字符代码的对应关系进行举例说明,规则编号为R1的第一访问控制规则,其字符代码为1010 0000。
通过提取第一规则集合包括的各条第一访问控制规则的字符代码的相同字段,将相同字段的信息确定为第一规则集合包括的第一访问控制规则对应的通用特征。以表1示出的第一规则集合为例,四条第一访问控制规则的字符代码的相同字段为第1位到第4位的字段,均为1010。基于此,表1示出的第一规则集合对应的通用特征为1010****。其中,“*”用于表示该位置上的数值不存在数值要求,可以为任意数值,既可以为1,也可以为0。通过将不存在数值要求的位置用“*”表示,在明确通用特征中的字段的数值的基础上,还可以进一步明确各个数值的位置关系。例如,某一第一规则集合包括的各条第一访问控制规则对应的通用特征为1*11 0**1,表示第一位、第三位、第四位与第八位的数值均为1,第五位的数值为0,第二位、第六位与第七位的数值不存在数值要求。
需要说明的是,上述举例旨在说明通用特征的获取方式,而非对通用特征进行限定。一个第一规则集合包括的第一访问控制规则对应的通用特征的数量可以为上述举例示出的一个,也可以为多个。示例性地,如果一个第一规则集合包括的所有第一访问控制规则中有超过参考数量个第一访问控制规则的字符代码存在相同字段,则将该相同字段作为该第一规则集合包括的第一访问控制规则对应的通用特征。例如,以参考数量为2,存在第一规则集合A,第一规则集合A中包括的6条第一访问控制规则的字符代码分别为1010 1111,1010 1100,1011 1010,1011 1011,1010 0100和1011 0010为例,字符代码为1010 1111、1010 1100和1010 0100中存在相同字段1010,且字符代码1011 1010、1011 1011和10110010存在相同字段1011,由于每个相同字段对应的第一访问控制规则的数量均大于参考数量2,因此,确定第一规则集合A包括的6条第一访问控制规则对应的通用特征为1010****和1011****,也即第一规则集合A包括的6条第一访问控制规则对应的通用特征的数量为2个。
在获取通用特征后,可将通用特征作为第一规则集合对应的特征,也即第二特征。图3为本申请实施例提供的一种第一规则集合对应的特征的示意图。图3对应的第一规则集合是上述表1示出的第一规则集合,对应的特征为“1010****”。当然,上述举例仅用于说明根据相同字段的信息确定第一规则集合对应的特征的过程,而非对第一规则集合对应的特征的表示方式进行限定,查找器件可以选择上述实施例示出的方式,将不存在数值要求的位置用“*”表示。查找器件还可以通过其他方式,明确第一规则集合对应的特征中的各个位置上的数值,本申请实施例对此不进行限定。
确定方式二、获取第一规则集合包括的第一访问控制规则对应的目标内容,将目标内容进行映射,得到映射值,将该映射值作为第二特征,该目标内容可以是第一访问控制规则的全部内容或者部分内容。
在一种可能的实现方式中,目标内容可基于第一规则集合对应的掩码,从第一访问控制规则中的内容也即字符代码中确定。示例性地,将掩码与第一访问控制规则的字符代码进行与操作,将与操作得到的结果作为该第一访问控制规则的目标内容。其中,掩码可基于经验设置,一个第一规则集合对应一个掩码。以表1示出的规则编号为R1的第一访问控制规则为例,字符代码为1010 0000,当掩码(mask)为1111 1111时,进行与操作后的结果为1010 0000,也即是选择全部八位字符作为第一访问控制规则R1对应的目标内容。以表1示出的规则编号为R2的第一访问控制规则为例,字符代码为1010 0100,当掩码为1110 0000时,进行与操作后的结果为1010 0000,也即是选择第一位到第三位的字符作为第一访问控制规则R2对应的目标内容。
基于上述举例可以理解,在从字符代码中选择目标内容时,可以选择全部字符代码作为目标内容,也可以选择部分字符代码作为目标内容,本申请实施例对此不进行限定。在获取第一规则集合中的各条第一访问控制规则的目标内容后,可以映射目标内容,得到映射值。可选地,用于映射目标内容的函数为哈希(hash)函数,也可以是其他映射函数。
示例性地,基于函数映射目标内容是指通过哈希函数对各条第一访问控制规则对应的目标内容计算得到各个目标内容的函数值,任一目标内容的函数值用于表示初始数组中任一目标内容对应的目标位置,将初始数组中的各个目标内容的函数值对应的目标位置从初始值调整为第一数值,得到映射值。其中,初始值与第一数值为不同的两个数值。可选地,初始值为0,则第一数值为1。可选地,初始值为1,则第一数值为0。初始数组是基于经验与第一规则集合包括的第一访问控制规则的数量确定的数组。
图4为本申请实施例提供的一种第一规则集合对应的特征的示意图,该第一规则集合为上述表1示出的第一规则集合。图4中示出的掩码为1111 1111,是指选择第一访问控制规则的字符代码的前八位字段作为目标内容,也即全部字符代码。参见图4,一个第一访问控制规则对应的目标内容通过哈希函数计算得到的函数值,能确定两个目标位置。例如,第一访问控制规则R1对应的目标内容经过哈希函数计算,得到的函数值对应的目标位置为初始数组的第一位与第五位,将第一位和第五位由初始值0调整为第一数值1。关于其他第一访问控制规则的函数值与初始数组的目标位置的对应关系,可参见图4,在此暂不进行赘述。通过哈希函数依次对四条第一访问控制规则对应的目标内容进行计算,得到映射值为1001 1101 0110 01。将映射值作为第一规则集合对应的特征,也即第二特征。
可选地,查找器件在通过过滤器确定第一规则集合对应的特征时,可以选择上述任一种确定方式。当过滤器选择确定方式一确定第一规则集合对应的特征时,所存储的为多条第一访问控制规则的相同字段的通用信息。当过滤器选择确定方式二确定第一规则集合对应的特征时,其结构为类似于布隆过滤器(bloom filter)的查询结构,两个确定方式需要消耗的存储资源较少。而第一规则集合对应的过滤器也即是与存储有该第一规则集合的分类引擎所连接的过滤器。以图1示出的查找器件为例,第一规则集合1存储在分类引擎1中,第一规则集合1对应的特征存储于分类引擎1连接的过滤器1中。针对上述两种确定方式,第一报文的第一特征也存在两种获取方式。
获取方式一、提取第一报文中与通用特征对应的第一字段,将第一字段的信息作为第一报文的第一特征。
示例性地,获取方式一应用于通过确定方式一确定第二特征的应用场景下。与通用特征对应是指与通用特征位置对应。例如,基于字符代码的确定方式,从第一报文中选择参考字段,确定参考字段中与通用特征位置对应的字段为第一字段。仍以基于表1确定的通用特征1010为例,当表1中的字符代码是源端口号,则第一报文的参考字段是指第一报文中封装的源端口号,源端口号为1010 1111,参考字段中与通用特征位置对应的字段是指第一报文中封装的源端口号的第1位至第4位的字段。此种情况下,第一报文的第一字段为1010,基于第一字段的信息得到的第一特征为第一位到第四位为1010。
获取方式二、提取第一报文中与目标内容对应的第二字段,将第二字段的值进行映射,将得到的映射值作为第一报文的第一特征。
示例性地,获取方式二应用于通过确定方式二确定第二特征的应用场景下。与目标内容对应是指与目的特征的位置对应。以上述实施例中示出的基于掩码选择目标内容为例,基于参考字段与掩码确定第二字段。当第一访问控制规则中的字符代码是源端口号,则第一报文的参考字段为第一报文中封装的源端口号,将源端口号与用于确定通用特征的掩码进行与操作,得到第一报文的第二字段。例如,掩码为1111 1111,第一报文的源端口号为1010 1111,通过与操作获得的第二字段为1010 1111。
通过映射函数对第二字段进行映射,得到的映射值也即第一特征,是用于表示目标数组中第一报文对应的位置。需要注意的是,用于映射第二字段的映射函数与用于映射目标内容的映射函数为相同的映射函数。例如,当目标内容是采用哈希函数进行映射的,则第二字段也是采用相同的哈希函数进行映射的。
S202,确定与第一特征匹配的第二特征,第二特征基于第一规则集合包括的第一访问控制规则得到,第二特征为第一类规则集合对应的特征中的一个或多个,第一类规则集合包括第一规则集合和第二规则集合,第一规则集合包括至少一条第一访问控制规则,第二规则集合包括至少一条第二访问控制规则,至少一条第一访问控制规则与至少一条第二访问控制规则不同。
示例性地,第二特征是指第一类规则集合对应的特征中与第一特征匹配成功的特征,由于第二特征是基于第一规则集合包括的第一访问控制规则得到,也即第二特征属于第一规则集合对应的特征,而第二规则集合对应的特征与第一报文的第一特征未匹配成功。因此,可通过确定与第一特征匹配的第二特征,在第一类规则集合包括的多个规则集合中,选择出第二特征对应的第一规则集合,作为后续待查找的规则集合。可选地,当第一类规则集合对应的特征是S201中确定方式一确定时,确定第一特征与第一类规则集合对应的特征的匹配结果也即是比较第一特征与第一类规则集合对应的特征是否相同。当第一类规则集合对应的特征与第一特征相同时,该第一类规则集合对应的特征与第一特征匹配成功。当第一类规则集合对应的特征与第一特征不同时,该第一类规则集合对应的特征与第一特征匹配失败。
继续以上述实施例示出的表1的第一规则集合对应的特征为1010为例,当第一报文A的第一特征为1010时,第一报文A的第一特征1010与该第一规则集合对应的特征1010相同,该第一规则集合对应的特征属于匹配成功的第二特征。当第一报文B的第一特征为1011,第一报文B的第一特征1011与该第一规则集合对应的特征1010不相同,该第一规则集合对应的特征匹配失败。
可选地,当第一类规则集合对应的特征是S201中确定方式二确定时,确定第一特征与第一类规则集合对应的特征的匹配结果也即是基于第一特征查找目标数组中第一报文的对应位置,当第一报文的对应位置均为第一数值时,确定第一特征与该第一类规则集合对应的特征匹配成功,该第一类规则集合对应的特征属于第二特征。
仍以图4示出的目标数组,也即第一规则集合对应的特征为例。第一报文A的第一特征表示的对应位置为目标数组的第一位与第五位,上述两个位置均为第一数值1,确定第一报文A的第一特征与该第一规则集合对应的特征匹配成功。又例如,第二报文B的第一特征表示的对应位置为目标数组的第二位与第四位。其中,第二位为0,不为第一数值,第四位为1,为第一数值。确定第一报文B的第一特征与该第一规则集合对应的特征匹配失败。
对于第二规则集合,确定第一特征与第二规则集合对应的特征的匹配结果与确定第一特征与第一规则集合对应的特征的匹配结果类似,在此暂不进行赘述。基于特征匹配结果明确第一类规则集合中包括的规则集合,哪些是属于第一规则集合,哪些是属于第二规则集合。其中,第一规则集合是指对应的特征与第一特征匹配成功的规则集合,也即第一规则集合对应的特征包括第二特征。而第二规则集合是指对应的特征与第一特征未成功匹配的规则集合,未成功匹配包括匹配失败和未采用本申请实施例的方法进行特征匹配两种情况,也即第二规则集合可以采用本申请实施例提供的方法进行规则查找,也可以采用其他方法进行规则查找。
上述比较方法无需依次将第一报文与第一类规则集合包括的初始访问控制规则进行匹配,通过第一特征与第一类规则集合对应的特征之间的匹配,就可以确定第一类规则集合中的第一规则集合,进而确定第一类规则集合中是否存在与第一报文匹配的初始访问控制规则,有效控制了规则匹配的次数。无论是第一种直接比较特征是否相同,还是第二种查找目标数组中的数值,由于需要比较/查找的次数有限,可以快速筛选掉不包括与第一报文匹配的初始访问控制规则,也即第二规则集合中包括的第二访问控制规则,有效控制了后续需要查找的第一规则集合的数量,进而减少需要查找的规则的数量。
在一种可能的实现方式中,查找器件通过过滤器来执行匹配第一特征与第一类规则集合对应的特征的动作。参见图5,其示出了过滤器执行匹配的过程示意图。向过滤器K输入第一报文的第一特征后,过滤器K会基于第一特征与所存储的第一类规则集合对应的特征进行匹配,并在匹配结束后,输出匹配结果,匹配结果包括匹配失败或匹配成功。其中,K为任意正整数,用于区分不同的过滤器。可选地,匹配结果不同,匹配结果的传输目的地也存在不同。
图6为本申请实施例提供的另一种查找器件的结构示意图,参见图6,查找器件1在包括过滤模块11与分类模块12的基础上还配置有选择模块13。其中,选择模块13接收到第一报文的第一特征,会复制多个第一特征,将复制得到的多个第一特征分别发送至过滤器中,以使得过滤器获取用于匹配的第一特征,执行后续的动作。可以理解为图5示出的向过滤器K输入第一特征的执行主体为查找器件1中配置的选择模块13。
基于上述图6示出的查找器件,当第一特征与过滤器中存储的第一类规则集合对应的特征的匹配结果为匹配失败时,匹配结果的传输目的地为选择模块。当第一特征与过滤器中存储的第一类规则集合对应的特征的匹配结果为匹配成功时,匹配结果的传输目的地为过滤器对应的分类引擎,也即存储有第二特征对应的第一规则集合的分类引擎,通过分类引擎执行S203的操作。
S203,在至少一条第一访问控制规则中查找与第一报文匹配的目标规则。
示例性地,第二特征对应的第一规则集合是指用于确定该第二特征的第一规则集合,例如,基于第一类规则集合中的规则集合1包括的各条初始访问控制规则确定规则集合1对应的特征,由于规则集合1对应的特征与第一特征匹配成功,规则集合1对应的特征属于第二特征,规则集合1属于第二特征对应的第一规则集合。
针对图1示出的查找器件的结构示意图,当过滤器存储第一类规则集合对应的特征为与第一特征匹配的第二特征,第二特征对应的第一规则集合可以理解为与存储该第二特征的过滤器连接的分类引擎中存储的规则集合。如图1所示,过滤器1中存储的第二特征对应的第一规则集合为分类引擎1中存储的规则集合,过滤器2中存储的第二特征对应的第一规则集合为分类引擎2中存储的规则集合,其他对应关系可以此类推,在此暂不进行赘述。
从第一类规则集合包括的规则集合中选择与第二特征对应的第一规则集合作为待查找的规则集合,而与第一特征匹配失败的第二规则集合则不会进行规则查找动作。以图6示出的查找器件的结构为例,对控制待查找的第一规则集合的数量的过程进行说明。当第一特征与过滤器111中存储的规则集合对应的特征匹配成功时,该过滤器111存储的规则集合对应的特征也即是第二特征,过滤器111会将第一报文的参考字段发送至与其相连的分类引擎121中,以使分类引擎121基于接收到的参考字段执行规则查找动作,分类引擎121中存储的规则集合属于第一规则集合,从所存储的第一规则集合中查找与第一报文匹配的第一访问控制规则。其中,参考字段是用于确定第一特征且与第一访问控制规则的字符代码对应的字段。
而当第一特征与过滤器中存储的规则集合对应的特征匹配失败时,过滤器会将匹配结果发送给选择模块,与过滤器相连的分类引擎未接收到匹配结果,不会触发查找所存储的规则集合的动作。此外,与该过滤器相连的分类引擎也不会接收到第一报文的参考字段,在缺少查找主键(key)的情况下,规则查找也是无法执行的。基于此,第二特征对应的第一规则集合,也即是部分接收到第一报文的参考字段的分类引擎中存储的规则集合。
在一种可能的实现方式中,查找目标规则的过程包括:在第一规则集合包括的第一访问控制规则中,确定与第一报文匹配的参考规则;当与第一报文匹配的参考规则存在多个时,将多个参考规则中优先级最高的参考规则确定为目标规则。
可选地,比较第一报文的参考字段与各条第一访问控制规则的字符代码,当二者相同时,确定该第一访问控制规则与第一报文匹配成功。图7为本申请实施例提供的一种查找第一规则集合的过程示意图。参见图7,第一报文的参考字段由两个部分组成,分别为F1=1010,F2=1010。查找的第二特征对应的第一规则集合包括的各条第一访问控制规则参见图7示出的表格,包括5条第一访问控制规则,分别为R5、R6、R7、R8与R9。一条第一访问控制规则由三个部分组成,分别为规则(rule)编号、包括F1与F2的字符代码以及动作(action)。关于规则编号与字符代码的描述可参见S201中规则编号与字符代码的描述。
第一访问控制规则中包括的动作,是指当第一报文与其匹配成功后,可对第一报文执行的动作。图7示出的第一规则集合中包括的规则编号为R5、R6、R7、R8与R9这五条第一访问控制规则中,对应的可执行的动作包括两种,分别为同意(accept)与拒绝(deny)。以规则编号为R5的第一访问控制规则为例,当第一报文与第一访问控制规则R5匹配成功后,对第一报文执行的动作为同意接收第一报文。其他第一访问控制规则的对应关系,可参见图7示出的表格,在此暂不进行赘述。
示例性地,查找器件在通过分类引擎基于第一报文的参考字段查找与第一报文匹配的第一访问控制规则时,可采用决策树算法或hash算法来实现第一访问控制规则的快速匹配。其中,图7示出得到表格中包括的“*”与S201中的“*”描述类似。现以第一访问控制规则R5与第一访问控制规则R6分别举例说明第一报文与第一访问控制规则的匹配过程。第一报文的参考字段为1010 1010,第一访问控制规则R5的字符代码为1010 101*。由于字符代码的第八位没有数值要求,第八位的数值既可以为0,也即可为1。也即1010 1011或10101010属于与第一访问控制规则R5的字符代码匹配成功的字段。而第一报文的参考字段为1010 1010,第一报文的参考字段与第一访问控制规则R5的字符代码匹配成功,也即图7示出的命中(hit)。当第一报文的参考字段为1010 1010,第一访问控制规则R6的字符代码为1100 10**,由于第一报文的参考字段中的第二位与第三位的数值与第一访问控制规则R6的字符代码的第二位与第三位的数值不相同。因此,第一报文的参考字段与第一访问控制规则R6的字符代码匹配失败,也即图7示出的未命中(not hit)。
需要说明的是,第一规则集合的参考规则是与第一报文匹配的第一访问控制规则中优先级最高的第一访问控制规则。示例性地,针对第一规则集合中存在多条与第一报文匹配的第一访问控制规则的情况,可基于第一规则集合中包括的第一访问控制规则的第一优先级,从多条与第一报文匹配的第一访问控制规则中确定第一规则集合的参考规则。例如图7示出的第一报文与第一访问控制规则的匹配结果,存在三条第一访问控制规则与第一报文匹配,分别为第一访问控制规则R5、第一访问控制规则R7与第一访问控制规则R9。基于多条与第一报文匹配的第一访问控制规则的第一优先级,从多条与第一报文匹配的第一访问控制规则中选择第一优先级最高的第一访问控制规则作为第一规则集合的参考规则。以图7示出的三条与第一报文匹配的第一访问控制规则为例,选择第一优先级最高的第一访问控制规则R5作为第一规则集合的候选规则。可选地,第一优先级可基于经验或者应用场景设置。
在一种可能的实现方式中,除了上述实施例示出的先从第一规则集合中选择与第一报文匹配的多条第一访问控制规则,再基于多条第一访问控制规则的第一优先级,选择第一优先级最高的第一访问控制规则为第一规则集合的参考规则。还可以是按照第一优先级对第一报文与第一访问控制规则依次进行匹配,响应于第一规则集合中存在第一访问控制规则与第一报文匹配成功,结束基于第一规则集合包括的第一访问控制规则查找的动作,将与第一报文匹配的第一访问控制规则确定为第一规则集合的参考规则。
仍以图7示出的第一规则集合为例,即使第一规则集合中包括三条与第一报文的参考字段匹配成功的第一访问控制规则。但由于第一访问控制规则R5的第一优先级最高,在按照第一优先级进行匹配时,确定第一访问控制规则R5与第一报文的参考字段匹配成功后,就停止匹配其他第一访问控制规则,输出第一访问控制规则R5作为第一规则集合的参考规则。
当第二特征对应的第一规则集合为多个时,也即存在多个第一规则集合的参考规则,再根据多个参考规则的第二优先级,选择第二优先级最高的参考规则作为目标规则。可选地,参考规则的第二优先级可以基于第一规则集合的等级确定。例如,第一规则集合1的参考规则1、第二规则集合2的参考规则2以及第三规则集合3的参考规则3。根据参考规则之间的第二优先级,选择第二优先级最高的参考规则1作为目标规则。
示例性地,查找器件通过分类引擎执行确定与第一报文匹配的参考规则的操作。各个第一规则集合的参考规则之间的优先级的比较,是通过选择模块执行。选择模块具有缓存与优先级比较功能,可基于接收到的参考规则,确定目标规则。
在一种可能的实现方式中,查找器件除了用于查找第一报文,还可以在查找第一报文的基础上并行查找其他报文。可选地,本申请实施例提供的方法还包括:获取第二报文的第三特征;在查找第一报文对应的目标规则的过程中,确定与第三特征匹配的第四特征,第四特征基于第三规则集合包括的第三访问控制规则得到,第四特征为第二类规则集合对应的特征中的一个或多个,第二类规则集合包括第三规则集合和第四规则集合,第三规则集合包括至少一条第三访问控制规则,第四规则集合包括至少一条第四访问控制规则,至少一条第三访问控制规则与至少一条第四访问控制规则不同;在至少一条第三访问控制规则中查找与第二报文匹配的目标规则。
需要说明的是,第二报文是与第一报文并行查找的报文,并不代表第二报文就是与第一报文同时获取的报文。第一报文与第二报文可以是包括查找器件的网络设备同一时刻接收到的报文,也可以是不同时刻接收到的报文。示例性地,网络设备在接收到报文后,会基于查找器件的查找通道的使用情况,间隔一定时间调度查找器件基于接收到的报文进行规则查找。例如,当网络设备接收到第一报文时,由于查找器件的多个查找通道都在运行,不存在空闲查找通道。因此,网络设备将第一报文缓存在缓存空间内。3分钟后,网络设备接收到第二报文,且查找器件存在两个查找通道运行结束,网络设备基于此调度查找器件并行基于第一报文与第二报文进行对应的规则查找。
可选地,第二类规则集合与第一类规则集合为不同的规则集合。其中,第一类规则集合与第二类规则集合为不同的规则集合,是指第一类规则集合与第二类规则集合中存储的访问控制规则存在不同。第一类规则集合中包括的初始访问控制规则可以与第二类规则集合中包括的候选访问控制规则完全不同,第一规则集合中包括的初始访问控制规则还可以与第二规则集合中包括的候选访问控制规则部分不同。而关于第一类规则集合中包括的规则集合的数量与第二类规则集合包括的规则集合的数量关系,可以相同,也可以不同,本申请实施例对此不进行限定。
继续以图6示出的查找器件为例,对第一类规则集合与第二类规则集合为不同的规则集合的情况下的并行查找进行说明。其中,查找1是用于查找第一报文匹配的目标规则的查找通道(pipeline),查找N是用于查找第二报文匹配的目标规则的查找通道。N为大于0,小于M的正整数。第一类规则集合存储在左边虚线框包括的分类引擎中,第二类规则集合存储在右边虚线框包括的分类引擎中。由于查找第一类规则集合的查找通道与查找第二类规则集合的查找通道为独立存在的两个查找通道,两个查找通道内的各个模块可以独立运行,基于此实现第一类规则集合与第二类规则集合的并行查找,且每个查找通道只查找对应的分类模块。
在一种可能的实现方式中,第二类规则集合还存在与第一类规则集合为同一组规则集合的情况。此种情况下,查找器件的结构可如图8所示,不同的查找通道拥有独立的选择模块13、过滤模块11与仲裁(arbiter)模块14,但共用一个交换(crossbar)模块15与分类模块12。需要注意的是,由于第一报文对应的过滤模块与第二报文对应的过滤模块为两个独立的过滤模块,因此,两个过滤模块可以选择相同方式确定第一类规则集合对应的特征,例如,第一报文对应的过滤模块与第二报文对应的过滤模块均选择确定方式一确定第一类规则集合对应的特征。当然,两个过滤模块还可以选择不同方式确定第一类规则集合对应的特征,例如,第一报文对应的过滤模块选择确定方式一确定第一类规则集合对应的特征,第二报文对应的过滤模块选择确定方式二确定第一类规则集合对应的特征。
而在第二类规则集合与第一类规则集合为同一组规则集合的场景下,由于多个查找通道共用一个分类模块,可能出现多个查找通道一起查找的第一规则集合的总数大于第一类规则集合包括的规则集合的数量。因此,需要对各个通道设置一个查找阈值,限制该通道并行查找的第一规则集合的数量,避免出现上述情况。
示例性地,基于第一规则集合的数量大于第一数量,从多个第一规则集合中选择第一数量个第一规则集合,第一数量基于第一类规则集合包括的规则集合的数量确定;按照第一数量依次在多个第一规则集合包括的第一访问控制规则中查找与第一报文匹配的目标规则。可选地,第一数量也即是查找阈值,第一数量小于第一类规则集合包括的规则集合的数量,且第一数量与查找器件的查找通道数的乘积不大于第一类规则集合包括的规则集合的数量。以图8示出的查找器件为例,当查找器件的查找通道数为N、第一类规则集合包括的规则集合的数量也即是多个分类引擎的数量为M,此种情况下,K×N≤M。例如,第一类规则集合包括的规则集合的数量M为10,查找通道数N为3,则第一数量K为不大于3的正整数。
而从多个第一规则集合中选择第一数量个第一规则集合,可以是随机选择,也可以是第二特征的确定时间选择。例如,当过滤器中存储的第一类规则集合对应的特征与第一报文的第一特征匹配成功后,过滤器会将匹配结果发送给仲裁模块,仲裁模块基于此将接收到匹配结果的时间作为该过滤器存储的第二特征的确定时间,仲裁模块根据多个第二特征的确定时间选择前第一数量个第二特征。当然,仲裁模块还可以是通过其他方式选择,本申请实施例对此不进行限定。
以第一数量为3为例,对上述依次查找过程进行说明,可选地,多个过滤器中,存在5个过滤器存储的第一类规则集合对应的特征与第一报文的第一特征匹配成功。分别为过滤器1、过滤器2、过滤器3、过滤器4与过滤器5。由于第一规则集合的数量为5,大于第一数量3,因此仲裁模块基于接收到的匹配结果,随机从中筛选出过滤器2、过滤器3与过滤器5对应的第一规则集合。仲裁模块将过滤器2、过滤器3与过滤器5发送的第一报文的参考字段发送至交换模块,交换模块记录第一报文的参考字段与仲裁模块的对应关系,基于接收到的第一报文的参考字段对分类引擎进行调度。将第一报文的参考字段分别发送至过滤器2对应的分类引擎、过滤器3对应的分类引擎与过滤器5对应的分类引擎。使得上述三个分类引擎执行在存储的第一规则集合中查找与第一报文匹配的第一访问控制规则的操作。
可选地,过滤器2对应的分类引擎、过滤器3对应的分类引擎与过滤器5对应的分类引擎在查找确定与第一报文匹配的第一访问控制规则后,将查找结果返回交换模块,交换模块基于之前记录的第一报文的参考字段与仲裁模块的对应关系,将基于第一报文的参考字段查找得到的查找结果返回与第一报文的参考字段对应的仲裁模块。这一步目的是为了避免出现查找通道1中的仲裁模块发送过来的参考字段的查找结果,被错误发送到查找通道2中的仲裁模块。而仲裁模块在接收到查找结果后,将查找结果返回对应的过滤器中,也即过滤器2、过滤器3与过滤器5。
关于未查找的第二特征对应的第一规则集合,也即过滤器1与过滤器4对应的分类引擎中存储的第一规则集合,可以在过滤器2、过滤器3与过滤器5对应的分类引擎查找结束后,开始查找。也即仲裁模块会提供缓存功能,将未能及时查找的第一报文的参考字段进行缓存。通过设置查找阈值,有效控制了并行查找的第一规则集合的数量,有效缓解了内存资源消耗。
在一种可能的实现方式中,多个查找通道并行查找一组查找规则还会出现一个问题,也即是与第二特征对应的第一规则集合和与第四特征对应的第三规则集合为同一个规则集合,这里同一个规则集合以冲突规则集合代指。此种情况下,交换模块会根据第一报文与第二报文的优先级,依次将第一报文的参考字段与第二报文的参考字段发往冲突规则集合。
例如,第一报文查找的查找通道包括的仲裁模块确定分类引擎2存储的规则集合为第二特征对应的第一规则集合,第二报文查找的查找通道包括的仲裁模块确定分类引擎2存储的规则集合为第四特征对应的第三规则集合,也即分类引擎2存储的第一规则集合为冲突规则集合。交换模块在接收到两个仲裁模块发送的参考字段后,由于第一报文的优先级高于第二报文,先将第一报文的参考字段发往分类引擎2,当分类引擎2基于第一报文的参考字段完成查找后,交换模块再将第二报文的参考字段发往分类引擎2。
可选地,第一报文与第二报文的优先级,可以基于报文类型确定,例如,第一报文属于游戏类报文,第二报文属于视频类报文,游戏类报文的优先级要高于视频类报文的优先级。因此,第一报文的优先级高于第二报文的优先级。当然,第一报文与第二报文的优先级,还可以通过其占用的查找通道确定,例如第一报文占用查找通道1,第二报文占用查找通道2,查找通道1的优先级高于查找通道2的优先级,基于此确定第一报文的优先级高于第二报文的优先级。
示例性地,关于查找与第二报文对应的目标规则的过程与查找与第一报文对应的目标规则的过程类似,在此暂不进行赘述。上述举例说明并行查找第一报文对应目标规则以及第二报文对应的目标规则,旨在说明查找器件具有并行查找与多个报文对应的目标规则的功能,而非对查找器件并行查找的数量进行限定。可选地,查找器件可以并行查找两个报文对应的目标规则,还可以并行查找更多数量的报文对应的目标规则,本申请实施例对此不进行限定。
需要说明的是,查找器件除了可以通过特征之间的匹配,快速筛选出与第一报文匹配的第一规则集合,从而控制并行查找的第一规则集合的数量。查找器件还可以通过特征之间的匹配,快速过滤掉与第一类规则集合均不匹配的报文,从而在利用查找通道,查找多个报文对应的目标规则时,控制并行查找的查找通道的数量。
可选地,上述图1、图6与图8示出的查找器件的结构示意图,旨在举例说明查找器件,而非对查找器件进行限定。查找器件包括的过滤器与分类引擎的数量,可以如上述三张图所示相同,均为M。从而实现过滤器与分类引擎的一一对应关系。过滤器的数量还可以小于分类引擎的数量,也即存在一个过滤器对应多个分类引擎的情况,例如,一个过滤模块包括一个过滤器,用于快速过滤掉与第一类规则集合不匹配的第一报文。无论过滤器与分类引擎的数量关系是一一对应,还是一个对应多个,过滤器中存储的特征的确定方式与上述实施例中确定一个第一类规则集合对应的特征的方式类似,在此暂不进行赘述。
综上所述,本申请实施例提供的规则查找方法,将不同的初始访问控制规则拆分到多个规则集合中,通过包括多个规则集合的第一类规则集合实现多个规则集合的并行查找。基于第一类规则集合对应的特征与第一报文的第一特征进行匹配,从第一类规则集合对应的特征中确定出与第一特征匹配的第二特征,根据特征匹配结果快速确定第一类规则集合中与第二特征对应的第一规则集合,在与第一报文匹配的第一规则集合包括的第一访问控制规则中查找目标规则,减少了第一类规则集合中需要查找的规则的数量,因而能够降低内存资源消耗,缩短了查找时间,提高了查找效率。此外,通过提供多个查找通道,可以并行查找多个报文对应的目标规则,在有多个报文的查找需求的场景下,进一步提高了查找效率。
以上介绍了本申请实施例的规则查找方法,与上述方法对应,本申请实施例还提供了规则查找装置。图9是本申请实施例提供的一种规则查找装置的结构示意图。基于图9所示的如下多个模块,该图9所示的规则查找装置能够执行上述图2所示的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图9所示,该装置应用于图1所示的查找器件,装置包括:
获取模块901,用于获取第一报文的第一特征;
确定模块902,用于确定与第一特征匹配的第二特征,第二特征基于第一规则集合包括的第一访问控制规则得到,第二特征为第一类规则集合对应的特征中的一个或多个,第一类规则集合包括第一规则集合和第二规则集合,第一规则集合包括至少一条第一访问控制规则,第二规则集合包括至少一条第二访问控制规则,至少一条第一访问控制规则与至少一条第二访问控制规则不同;
查找模块903,用于在至少一条第一访问控制规则中查找与第一报文匹配的目标规则。
在一种可能的实现方式中,获取模块901,还用于获取第一规则集合包括的第一访问控制规则对应的通用特征,将通用特征作为第二特征;获取模块901,用于提取第一报文中与通用特征对应的第一字段,将第一字段的信息作为第一报文的第一特征。
在一种可能的实现方式中,获取模块901,用于提取第一规则集合包括的各条第一访问控制规则的相同字段,将相同字段的信息确定为第一规则集合包括的第一访问控制规则对应的通用特征。
在一种可能的实现方式中,获取模块901,还用于获取第一规则集合包括的第一访问控制规则对应的目标内容,将目标内容进行映射,得到映射值,将映射值作为第二特征,目标内容为第一访问控制规则的全部内容或部分内容;获取模块901,用于提取第一报文中与目标内容对应的第二字段,将第二字段的值进行映射,将得到的映射值作为第一报文的第一特征。
在一种可能的实现方式中,查找模块903,用于在第一规则集合包括的第一访问控制规则中,确定与第一报文匹配的参考规则;当与第一报文匹配的参考规则存在多个时,将多个参考规则中优先级最高的参考规则确定为目标规则。
在一种可能的实现方式中,获取模块901,还用于获取第二报文的第三特征;确定模块902,还用于在查找第一报文对应的目标规则的过程中,确定与第三特征匹配的第四特征,第四特征基于第三规则集合包括的第三访问控制规则得到,第四特征为第二类规则集合对应的特征中的一个或多个,第二类规则集合包括第三规则集合和第四规则集合,第三规则集合包括至少一条第三访问控制规则,第四规则集合包括至少一条第四访问控制规则,至少一条第三访问控制规则与至少一条第四访问控制规则不同;查找模块903,还用于在至少一条第三访问控制规则中查找与第二报文匹配的目标规则。
在一种可能的实现方式中,第二类规则集合与第一类规则集合为不同的规则集合。
在一种可能的实现方式中,第二类规则集合与第一类规则集合为同一组规则集合;查找模块903,用于基于第一规则集合的数量大于第一数量,从多个第一规则集合中选择第一数量个第一规则集合,第一数量基于第一类规则集合包括的规则集合的数量确定;按照第一数量依次在多个第一规则集合包括的第一访问控制规则中查找与第一报文匹配的目标规则。
在一种可能的实现方式中,获取模块901,还用于获取多个初始访问控制规则;装置还包括:划分模块,用于基于多个初始访问控制规则之间的相似度与规则集合的数量,将不同的初始访问控制规则划分到对应的规则集合中,得到第一类规则集合。
上述装置通过对第一报文的第一特征与第一类规则集合对应的特征进行匹配,从第一类规则集合对应的特征中确定与第一特征匹配的第二特征,根据特征匹配结果快速选出第一类规则集合中包括第二特征对应的第一规则集合,仅在匹配的第一规则集合包括的第一访问控制规则中查找目标规则,减少了第一类规则集合中需要查找的规则的数量,因而能够降低内存资源消耗,缩短了查找时间,提高了查找效率。
应理解的是,上述图9提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参见图10,图10示出了本申请一个示例性实施例提供的网络设备1000的结构示意图。图10所示的网络设备1000配置有上述图1所示的查找器件,查找器件用于执行上述图2所示的规则查找方法中查找器件所涉及的操作。该网络设备1000例如是交换机、路由器等,该网络设备1000可以由一般性的总线体系结构来实现。
如图10所示,网络设备1000包括至少一个处理器1001、存储器1003以及至少一个通信接口1004。
处理器1001例如是通用中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(neural-network processingunits,NPU)、数据处理单元(Data Processing Unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器1001包括专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,网络设备1000还包括总线。总线用于在网络设备1000的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1003例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1003例如是独立存在,并通过总线与处理器1001相连接。存储器1003也可以和处理器1001集成在一起。
通信接口1004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(wireless local area networks,WLAN)等。通信接口1004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口1004可以为以太(Ethernet)接口、快速以太(Fast Ethernet,FE)接口、千兆以太(Gigabit Ethernet,GE)接口,异步传输模式(Asynchronous Transfer Mode,ATM)接口,无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口1004可以用于网络设备1000与其他设备进行通信。
在具体实现中,作为一种实施例,处理器1001可以包括一个或多个CPU,如图10中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备1000可以包括多个处理器,如图10中所示的处理器1001和处理器1005。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备1000还可以包括输出设备和输入设备。输出设备和处理器1001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器1001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器1003用于存储执行本申请方案的程序代码1010,处理器1001可以执行存储器1003中存储的程序代码1010。程序代码1010中可以包括一个或多个软件模块。可选地,处理器1001自身也可以存储执行本申请方案的程序代码或指令。
其中,图2所示的规则查找方法中查找器件所执行的各步骤通过查找器件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
图11是本申请实施例提供的另一种网络设备的结构示意图,该网络设备包括图1所示的查找器件,查找器件用于执行上述图2所示的规则查找方法中查找器件所涉及的操作。示例性地,该网络设备例如是服务器,服务器可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processing unit,CPU)1101和一个或多个存储器1102,其中,该一个或多个存储器1102中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器1101加载并执行。当然,该网络设备还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该网络设备还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行规则查找方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本申请实施例还提供了一种网络设备,网络设备包括处理器,处理器用于从存储器中调用并运行存储器中存储的指令,以使网络设备实现如上任一所述的规则查找方法。
在一种可能的实现方式中,网络设备还包括:输入接口、输出接口和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连。
本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行,以使计算机实现如上任一所述的规则查找方法。
本申请实施例还提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。
本申请实施例还提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行如上任一所述的规则查找方法。
本申请实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行如上任一所述的规则查找方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的规则查找装置的处理器,使得程序代码在被计算机或其他可编程的规则查找装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一链路可以被称为第二链路,并且类似地,第二链路可以被称为第一链路。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
Claims (22)
1.一种规则查找方法,其特征在于,包括:
获取第一报文的第一特征;
确定与所述第一特征匹配的第二特征,所述第二特征基于第一规则集合包括的第一访问控制规则得到,所述第二特征为第一类规则集合对应的特征中的一个或多个,所述第一类规则集合包括所述第一规则集合和第二规则集合,所述第一规则集合包括至少一条第一访问控制规则,所述第二规则集合包括至少一条第二访问控制规则,所述至少一条第一访问控制规则与所述至少一条第二访问控制规则不同;
在所述至少一条第一访问控制规则中查找与所述第一报文匹配的目标规则。
2.根据权利要求1所述的方法,其特征在于,所述确定与所述第一特征匹配的第二特征之前,还包括:
获取所述第一规则集合包括的第一访问控制规则对应的通用特征,将所述通用特征作为所述第二特征;
所述获取第一报文的第一特征,包括:
提取所述第一报文中与所述通用特征对应的第一字段,将所述第一字段的信息作为所述第一报文的第一特征。
3.根据权利要求2所述的方法,其特征在于,所述获取所述第一规则集合包括的第一访问控制规则对应的通用特征,包括:
提取所述第一规则集合包括的各条第一访问控制规则的相同字段,将所述相同字段的信息确定为所述第一规则集合包括的第一访问控制规则对应的通用特征。
4.根据权利要求1所述的方法,其特征在于,所述确定与所述第一特征匹配的第二特征之前,还包括:
获取所述第一规则集合包括的第一访问控制规则对应的目标内容,将所述目标内容进行映射,得到映射值,将所述映射值作为所述第二特征,所述目标内容为所述第一访问控制规则的全部内容或部分内容;
所述获取第一报文的第一特征,包括:
提取所述第一报文中与所述目标内容对应的第二字段,将所述第二字段的值进行映射,将得到的映射值作为所述第一报文的第一特征。
5.根据权利要求1-4任一所述的方法,其特征在于,所述在所述至少一条第一访问控制规则中查找与所述第一报文匹配的目标规则,包括:
在所述第一规则集合包括的第一访问控制规则中,确定与所述第一报文匹配的参考规则;
当与所述第一报文匹配的参考规则存在多个时,将所述多个参考规则中优先级最高的参考规则确定为所述目标规则。
6.根据权利要求1-5任一所述的方法,其特征在于,所述方法还包括:
获取第二报文的第三特征;
在查找所述第一报文对应的目标规则的过程中,确定与所述第三特征匹配的第四特征,所述第四特征基于第三规则集合包括的第三访问控制规则得到,所述第四特征为第二类规则集合对应的特征中的一个或多个,所述第二类规则集合包括所述第三规则集合和第四规则集合,所述第三规则集合包括至少一条第三访问控制规则,所述第四规则集合包括至少一条第四访问控制规则,所述至少一条第三访问控制规则与所述至少一条第四访问控制规则不同;
在所述至少一条第三访问控制规则中查找与所述第二报文匹配的目标规则。
7.根据权利要求6所述的方法,其特征在于,所述第二类规则集合与所述第一类规则集合为不同的规则集合。
8.根据权利要求6所述的方法,其特征在于,所述第二类规则集合与所述第一类规则集合为同一组规则集合;所述在所述至少一条第一访问控制规则中查找与所述第一报文匹配的目标规则,包括:
基于所述第一规则集合的数量大于第一数量,从多个第一规则集合中选择所述第一数量个第一规则集合,所述第一数量基于所述第一类规则集合包括的规则集合的数量确定;
按照所述第一数量依次在所述多个第一规则集合包括的第一访问控制规则中查找与所述第一报文匹配的目标规则。
9.根据权利要求1-8任一所述的方法,其特征在于,所述确定与所述第一特征匹配的第二特征之前,还包括:
获取多个初始访问控制规则;
基于所述多个初始访问控制规则之间的相似度与规则集合的数量,将不同的初始访问控制规则划分到对应的规则集合中,得到所述第一类规则集合。
10.一种规则查找装置,其特征在于,所述装置包括:
获取模块,用于获取第一报文的第一特征;
确定模块,用于确定与所述第一特征匹配的第二特征,所述第二特征基于第一规则集合包括的第一访问控制规则得到,所述第二特征为第一类规则集合对应的特征中的一个或多个,所述第一类规则集合包括所述第一规则集合和第二规则集合,所述第一规则集合包括至少一条第一访问控制规则,所述第二规则集合包括至少一条第二访问控制规则,所述至少一条第一访问控制规则与所述至少一条第二访问控制规则不同;
查找模块,用于在所述至少一条第一访问控制规则中查找与所述第一报文匹配的目标规则。
11.根据权利要求10所述的装置,其特征在于,所述获取模块,还用于获取所述第一规则集合包括的第一访问控制规则对应的通用特征,将所述通用特征作为所述第二特征;所述获取模块,用于提取所述第一报文中与所述通用特征对应的第一字段,将所述第一字段的信息作为所述第一报文的第一特征。
12.根据权利要求11所述的装置,其特征在于,所述获取模块,用于提取所述第一规则集合包括的各条第一访问控制规则的相同字段,将所述相同字段的信息确定为所述第一规则集合包括的第一访问控制规则对应的通用特征。
13.根据权利要求10所述的装置,其特征在于,所述获取模块,还用于获取所述第一规则集合包括的第一访问控制规则对应的目标内容,将所述目标内容进行映射,得到映射值,将所述映射值作为所述第二特征,所述目标内容为所述第一访问控制规则的全部内容或部分内容;所述获取模块,用于提取所述第一报文中与所述目标内容对应的第二字段,将所述第二字段的值进行映射,将得到的映射值作为所述第一报文的第一特征。
14.根据权利要求10-13任一所述的装置,其特征在于,所述查找模块,用于在所述第一规则集合包括的第一访问控制规则中,确定与所述第一报文匹配的参考规则;当与所述第一报文匹配的参考规则存在多个时,将所述多个参考规则中优先级最高的参考规则确定为所述目标规则。
15.根据权利要求10-14任一所述的装置,其特征在于,所述获取模块,还用于获取第二报文的第三特征;所述确定模块,还用于在查找所述第一报文对应的目标规则的过程中,确定与所述第三特征匹配的第四特征,所述第四特征基于第三规则集合包括的第三访问控制规则得到,所述第四特征为第二类规则集合对应的特征中的一个或多个,所述第二类规则集合包括所述第三规则集合和第四规则集合,所述第三规则集合包括至少一条第三访问控制规则,所述第四规则集合包括至少一条第四访问控制规则,所述至少一条第三访问控制规则与所述至少一条第四访问控制规则不同;所述查找模块,还用于在所述至少一条第三访问控制规则中查找与所述第二报文匹配的目标规则。
16.根据权利要求15所述的装置,其特征在于,所述第二类规则集合与所述第一类规则集合为不同的规则集合。
17.根据权利要求15所述的装置,其特征在于,所述第二类规则集合与所述第一类规则集合为同一组规则集合;所述查找模块,用于基于所述第一规则集合的数量大于第一数量,从多个第一规则集合中选择所述第一数量个第一规则集合,所述第一数量基于所述第一类规则集合包括的规则集合的数量确定;按照所述第一数量依次在所述多个第一规则集合包括的第一访问控制规则中查找与所述第一报文匹配的目标规则。
18.根据权利要求10-17任一所述的装置,其特征在于,所述获取模块,还用于获取多个初始访问控制规则;所述装置还包括:划分模块,用于基于所述多个初始访问控制规则之间的相似度与规则集合的数量,将不同的初始访问控制规则划分到对应的规则集合中,得到所述第一类规则集合。
19.一种网络设备,其特征在于,所述网络设备包括处理器,所述处理器用于运行计算机程序或指令,以使所述网络设备实现权利要求1-9中任一所述的规则查找方法。
20.根据权利要求19所述的网络设备,其特征在于,所述网络设备还包括:输入接口、输出接口和存储器,所述输入接口、所述输出接口、所述处理器以及所述存储器之间通过内部连接通路相连。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1-9中任一所述的规则查找方法。
22.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行,以使计算机实现权利要求1-9中任一所述的规则查找方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859083.4A CN117472554A (zh) | 2022-07-20 | 2022-07-20 | 规则查找方法、装置、设备及计算机可读存储介质 |
PCT/CN2023/098210 WO2024016863A1 (zh) | 2022-07-20 | 2023-06-05 | 规则查找方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859083.4A CN117472554A (zh) | 2022-07-20 | 2022-07-20 | 规则查找方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117472554A true CN117472554A (zh) | 2024-01-30 |
Family
ID=89616948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210859083.4A Pending CN117472554A (zh) | 2022-07-20 | 2022-07-20 | 规则查找方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117472554A (zh) |
WO (1) | WO2024016863A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579940B (zh) * | 2013-10-10 | 2017-08-11 | 新华三技术有限公司 | 查找访问控制列表的方法及装置 |
CN112425131B (zh) * | 2018-11-30 | 2022-03-04 | 华为技术有限公司 | 一种acl的规则分类方法、查找方法和装置 |
CN113037681B (zh) * | 2019-12-09 | 2023-09-05 | 中兴通讯股份有限公司 | Acl规则管理方法、装置、计算机设备及计算机可读介质 |
CN114374634A (zh) * | 2020-10-15 | 2022-04-19 | 华为技术有限公司 | 报文转发方法以及网络设备 |
CN112380253A (zh) * | 2020-11-12 | 2021-02-19 | 北京知道创宇信息技术股份有限公司 | 报文规则匹配方法、装置、电子设备和可读存储介质 |
-
2022
- 2022-07-20 CN CN202210859083.4A patent/CN117472554A/zh active Pending
-
2023
- 2023-06-05 WO PCT/CN2023/098210 patent/WO2024016863A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024016863A1 (zh) | 2024-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11811660B2 (en) | Flow classification apparatus, methods, and systems | |
US10455063B2 (en) | Packet flow classification | |
US20190266193A1 (en) | Data processing method for bloom filter, and bloom filter | |
US10795826B2 (en) | Translation lookaside buffer management method and multi-core processor | |
CN106713144B (zh) | 一种报文出口信息的读写方法及转发引擎 | |
US20200364080A1 (en) | Interrupt processing method and apparatus and server | |
CN104468401A (zh) | 一种报文处理方法和装置 | |
CN111817978A (zh) | 一种流分类方法及装置 | |
CN111526134B (zh) | 一种报文检测系统、方法及装置 | |
US20240152474A1 (en) | On-chip integrated circuit, data processing device, and data processing method | |
CN114885045A (zh) | 一种在高速智能网卡/dpu内节约dma通道资源方法和装置 | |
CN112866139A (zh) | 一种多规则流分类的实现方法、设备和存储介质 | |
US20170012874A1 (en) | Software router and methods for looking up routing table and for updating routing entry of the software router | |
CN117472554A (zh) | 规则查找方法、装置、设备及计算机可读存储介质 | |
CN111819552A (zh) | 访问控制列表的管理方法及装置 | |
CN105072047A (zh) | 一种报文传输及处理方法 | |
US20230101493A1 (en) | Data Processing Method and Interaction System | |
CN114827016B (zh) | 切换链路聚合方案的方法、装置、设备及存储介质 | |
JP2015053673A (ja) | パケット中継装置及びパケット中継方法 | |
WO2023130953A1 (zh) | 数据查找方法及装置、网络设备 | |
CN115225694B (zh) | 数据流传输方法、装置、设备和介质 | |
CN115996203B (zh) | 网络流量分域方法、装置、设备和存储介质 | |
WO2024045599A1 (zh) | 报文匹配方法、计算机设备和计算机可读存储介质 | |
CN117857447A (zh) | 规则处理、规则查找方法、装置、设备及可读存储介质 | |
CN118113131A (zh) | 芯片功耗的管理方法、装置、系统及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |