CN107566201B - 报文处理方法及装置 - Google Patents

报文处理方法及装置 Download PDF

Info

Publication number
CN107566201B
CN107566201B CN201610513657.7A CN201610513657A CN107566201B CN 107566201 B CN107566201 B CN 107566201B CN 201610513657 A CN201610513657 A CN 201610513657A CN 107566201 B CN107566201 B CN 107566201B
Authority
CN
China
Prior art keywords
preselector
message
preset
conflict
acl
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
CN201610513657.7A
Other languages
English (en)
Other versions
CN107566201A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610513657.7A priority Critical patent/CN107566201B/zh
Publication of CN107566201A publication Critical patent/CN107566201A/zh
Application granted granted Critical
Publication of CN107566201B publication Critical patent/CN107566201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种报文处理方法及装置,该方法包括:创建至少两个预选器,每个预选器对应一种业务需求;生成至少两个预选器中每个预选器的冲突位图;获取至少两个预选器中每个预选器对应的报文预选规则;对于每一个预选器,根据预选器的报文预选规则,在预选器对应的冲突位图中分别设置每个特征位的特征值;根据至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文;当不存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,以便利用所配置的ACL程序分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。

Description

报文处理方法及装置
技术领域
本发明涉及报文技术领域,尤其涉及一种报文处理方法及装置。
背景技术
访问控制列表(access control list,ACL)可以被用来根据报文的特征对确定需要对该报文执行的动作(action),对报文执行的动作可以为丢弃、统计等。由于ACL功能的强大性和灵活性,越来越多地被应用到各种业务中,如基于流的优先级映射、流镜像、各种流量统计、筛选协议报文等业务。
ACL的上述功能通常由用户定义的规则实现,规则由两部分组成:需要匹配的字段集合和需要执行的动作集合,为了便于管理,将用于处理同一类报文的规则可以作为一个组,每个组可以包括:预选器、字段集合和动作集合,其中,一个组内可以包含有若干条规则,预选器预置了一些特定条件,只有符合特定条件的报文才会被用于匹配属于该组内的规则,字段集合是属于该组所有规则的字段全集,字段是指一个或若干个报文特征,组内的动作集合是属于该组所有规则的动作全集,动作是指一个或若干个处理策略,并且字段和动作之间存在对应关系,这样根据报文中所包含的字段查找规则,就可以确定与该报文对应的处理策略。
现有技术可以利用预选器和ACL查找模型共同实现对报文的处理。具体流程如下:首先根据报文预选规则创造一个预选器,这样符合特定条件的报文会被筛选出来,然后根据预选器在ACL查找模型中配置对应的ACL程序并运行,该ACL程序运行后会根据该预选器对应的组内的字段集合构建查找关键字(key),并利用该查找key去查找存储器,例如:三态内容寻址存储器TCAM(ternary content-addressable memory,),存储器返回对应的查找结果,即动作集合。最后,利用动作集合对筛选出来的报文进行相应的处理。
随着ACL使用范围越来越广,很多情况一个业务需要同时对多个报文特征进行匹配查找,并且针对每个报文特征都需要创建预选器。在配置ACL程序时,为了避免遗漏,通常会针对每个报文特征单独配置一个ACL程序,而且针对任意两个或两个以上预选器之间组合也会配置至少一个ACL程序,以处理头格式(header format)为IPv4且源端口为1的报文为例,需要配置三个ACL程序,分别为:
ACL程序1:处理头格式为IPv4的报文;
ACL程序2:处理源端口为1的报文;
ACL程序3:处理头格式为IPv4且源端口为1的报文。
ACL程序1和ACL程序2,都分别针对一个组,在查找时需要分别构建一个key,但对于ACL程序3,由于针对两个组,在查找时需要构建两个key。经过上述设置,源端口不为1的IPv4报文被ACL程序1处理,源端口为1的非IPv4报文被ACL程序2处理,从源端口1进来的IPv4报文被ACL程序3处理,使得各种可能会出现的合理场景都涉及到了。
对于ACL查找模型而言,同一时间能够运行的程序的数量有限,对于存储器而言,能够同时支持的查找key的数量也有限,对于不会同时出现在同一报文中的两个报文特征,如果仍然分配如前述的ACL程序3(即处理A和B同时成立的情况),不仅增加了无用的ACL程序,而且增加的ACL程序在通过查找关键字查找ACL规则时的资源消耗也较多,这使得此类ACL程序往往会成为资源使用的瓶颈。
发明内容
本发明实施例中提供了一种报文处理方法及装置,以解决现有技术中多余ACL程序被配置时极易造成资源消耗过多的问题。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
第一方面,本发明实施例提供了一种报文处理方法,包括:
创建至少两个预选器,每个预选器对应一种业务需求;
生成所述至少两个预选器中每个预选器的冲突位图,所述冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位;
获取所述至少两个预选器中每个预选器对应的报文预选规则;
对于每一个预选器,根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值;
根据所述至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文;
当不存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,以便利用所配置的ACL程序分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。
结合第一方面,在第一方面第一种可能的实现方式中,所述方法还包括:
当存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,且在预设ACL查找模型中为所述报文对应的两个或两个以上预选器配置至少一个共用ACL程序。
结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述在预设ACL查找模型中为所述报文对应的两个或两个以上预选器配置至少一个共用ACL程序,包括:
当存在同时匹配到两个预选器的报文时,在预设ACL查找模型中为所述两个预选器配置一个共用ACL程序;
当存在同时匹配到两个以上预选器的报文时,在预设ACL查找模型中为所述两个以上预选器之间的任意一个组合均分别配置一个共用ACL程序。
结合第一方面第一种或第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述生成所述至少两个预选器中每个预选器的冲突位图,包括:
获取对应所述预选器的业务需求的多个预设报文特征;
为所述多个预设报文特征中每个预设报文特征均创建一个支持位和冲突位。
结合第一方面第三种可能的实现方式,在第一方面第四种可能的实现方式中,所述根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值,包括:
根据所述预选器的报文预选规则,确定与所述预选器对应的目标报文特征;
在所述预选器的冲突位图中,将所述目标报文特征对应的支持位的特征值设置为预设值;
根据预设报文特征冲突关系表,确定与所述预选器的目标报文特征相冲突的冲突报文特征;
在所述预选器的冲突位图中,将所述冲突报文特征的冲突位的特征值设置为预设值。
结合第一方面第四种可能的实现方式,在第一方面第五种可能的实现方式中,所述确定是否存在同时匹配到两个或两个以上预选器的报文,包括:
针对每个所述预设报文特征,将一个预选器对应的支持位和另一预选器对应的冲突位进行与运算;
判断所有所述预设报文特征的与运算结果是否均为预设运算结果;
当所有所述预设报文特征的与运算结果均为预设运算结果时,确定在同时匹配到任意两个或两个以上预选器的报文;
当任意一个所述预设报文特征的与运算结果不为预设运算结果时,确定不存在同时匹配到两个或两个以上预选器的报文。
第二方面,本发明实施例还提供一种报文处理装置,其特征在于,包括:
预选器创建模块,用于创建至少两个预选器,每个预选器对应一种业务需求;
冲突位图生成模块,用于生成所述至少两个预选器中每个预选器的冲突位图,所述冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位;
预选规则获取模块,用于获取所述至少两个预选器中每个预选器对应的报文预选规则;
特征值设置模块,用于对于每一个预选器,根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值;
匹配确定模块,用于根据所述至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文;
第一程序配置模块,用于当不存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,以便利用所配置的ACL程序分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。
结合第二方面,在第二方面第一种可能的实现方式中,所述置还包括:
第二程序配置模块,用于当存在同时匹配到两个预选器的报文时,在预设ACL查找模型中为所述两个预选器配置一个共用ACL程序;且当存在同时匹配到两个以上预选器的报文时,在预设ACL查找模型中为所述两个以上预选器之间的任意一个组合均分别配置一个共用ACL程序。
结合第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,序配置模块,还用于:
当存在同时匹配到两个预选器的报文时,在预设ACL查找模型中为所述两个预选器配置一个共用ACL程序;
当存在同时匹配到两个以上预选器的报文时,在预设ACL查找模型中为所述两个以上预选器之间的任意一个组合均分别配置一个共用ACL程序。
结合第二方面第一种或第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述冲突位图生成模块,包括:
报文特征获取子模块,用于获取对应所述预选器的业务需求的多个预设报文特征;
特征位创建子模块,用于为所述多个预设报文特征中每个预设报文特征均创建一个支持位和冲突位。
结合第二方面第三种可能的实现方式,在第二方面第四种可能的实现方式中,所述特征位设置模块,包括:
目标报文确定子模块,用于根据所述预选器的报文预选规则,确定与所述预选器对应的目标报文特征;
第一特征值设置子模块,用于在所述预选器的冲突位图中,将所述目标报文特征对应的支持位的特征值设置为预设值;
冲突报文确定子模块,用于根据预设报文特征冲突关系表,确定与所述预选器的目标报文特征相冲突的冲突报文特征;
第二特征值设置子模块,用于在所述预选器的冲突位图中,将所述冲突报文特征的冲突位的特征值设置为预设值。
结合第二方面第四种可能的实现方式,在第二方面第五种可能的实现方式中,所述报文确定模块,包括:
运算子模块,用于针对每个所述预设报文特征,将一个预选器对应的支持位和另一预选器对应的冲突位进行与运算;
运算结果判断子模块,用于判断所有所述预设报文特征的与运算结果是否均为预设运算结果;
第一确定子模块,用于当所有所述预设报文特征的与运算结果均为预设运算结果时,确定在同时匹配到任意两个或两个以上预选器的报文;
第二确定子模块,用于当任意一个所述预设报文特征的与运算结果不为预设运算结果时,确定不存在同时匹配到两个或两个以上预选器的报文。
第三方面,本发明实施例还提供一种设备,包括:
至少一个通信接口;
与所述至少一个通信接口相连接的至少一个总线;
与所述至少一个总线相连接的至少一个处理器;
与所述至少一个总线相连接的至少一个存储器;
其中,所述存储器用于存储处理器的可执行指令;
所述处理器被配置为:
创建至少两个预选器,每个预选器对应一种业务需求;生成所述至少两个预选器中每个预选器的冲突位图,所述冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位;获取所述至少两个预选器中每个预选器对应的报文预选规则;对于每一个预选器,根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值;根据所述至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文;当不存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,以便利用所配置的ACL程序分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。
第四方面,还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可实现本发明第一方面提供一种报文处理方法的各实现方式中的部分或全部步骤。
本发明实施例提供的该方法,在为预选器配置ACL程序时,通过判断是否存在同时匹配到两个或两个以上的预选器对应的报文预选规则的报文,来确定这两个或两个以上的预选器之间是否存在交集,当没有报文同时匹配到两个预选器对应的报文预选规则时,即表示这两个预选器之间不存在交集,针对这种情况,在本发明实施例中,只需为每个预选器单独配置一个独立的ACL程序即可。
对于不存在交集的两个预选器而言,不会出现能够被这两个预选器同时筛选出来的报文,所以,只需为两个预选器单独配置ACL程序即可,而无需配置一个同时匹配到两个预选器的ACL程序。相比现有技术中,每次都需要为两个预选器配置三个ACL程序而言,该方法,可以减少由于配置的ACL程序较多,而导致查找key时资源消耗较多的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明实施例提供的ACL查找模型的结构示意图;
图2为本发明实施例提供的一种报文处理方法的流程示意图;
图3为本发明实施例提供的一种冲突位图的示意图;
图4为图2中步骤S104的详细示意图;
图5为本发明实施例提供的另一种冲突位图的示意图;
图6为本发明实施例提供的另一种报文处理方法的流程示意图;
图7为图2中步骤S105的详细示意图;
图8为本发明实施例提供的一种报文处理装置的结构示意图;
图9为本发明实施例提供的另一种报文处理装置的结构示意图;
图10为图8中冲突位图生成模块的结构示意图;
图11为图8中特征位设置模块的结构示意图;
图12为图8中匹配确定模块的结构示意图;
图13为本发明实施例提供的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
图1为本发明实施例提供的ACL查找模型的结构示意图。如图1所示,ACL查找模块可以包括:专用集成电路(application-specific integrated circuit,ASIC)1和TCAM2,针对一个ACL程序,在进行ACL查找时,ASIC1首先会根据报文对应的组内的字段集合构建查找key,然后利用该查找key,在TCAM2中进行查询,找到对应的ACL规则,以便利用该ACL规则内的动作集合对目标报文进行处理。
图2为本发明实施例提供的一种报文处理方法的流程示意图。如图2所示,该方法可以包括以下步骤。
步骤S101、创建至少两个预选器,每个预选器对应一种业务需求。
根据不同的业务需求可以创建不同的预选器,所述业务需求包括处理特定类型(例如IPv4、IPv6)的报文,处理特定端口(例如源端口为8080,源端口445)的报文,处理特定转发方式(例如三层单播转发,三层组播转发)的报文或者处理包括某些报文特征的报文等。
步骤S102、生成所述至少两个预选器中每个预选器的冲突位图。
在本发明实施例中,所述冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位。
以至少两个预选器为预选器A和预选器B为例,当一种业务需求是根据报文特征处理报文时,可能出现同一个报文既能匹配到预选器A,又能匹配到预选器B,例如:一个预选器用于选择源端口为8080的报文,另一预选器用于选择头格式为IPv4的报文,当某一个报文的源端口为1且头格式为IPv4,那么,该报文可以同时匹配到这两个预选器。
在本发明实施例中,一个预选器的冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位。其中报文特征的标识,可以为报文特征的名称,或者,代号,用于识别出该报文特征;报文特征的特征位可以包括支持位和冲突位,并且当支持位的值为预设值时,表示与该支持位对应的报文特征可以被匹配,而当冲突位的值为预设值时,表示该冲突位对应的报文特征不可以被匹配,例如:当支持位的值为1时,表示可以匹配到支持位对应的报文特征;相反,冲突位为1时,表示不可匹配到冲突位对应的报文特征。
在本发明实施例中,该步骤S102可以包括以下步骤:
步骤S1021:获取对应所述预选器的业务需求的多个预设报文特征。
预设报文特征可以为用于表征报文的常见特征,例如:头格式、目的端口、源端口等等,通过这些报文特征可以对报文进行区分。
步骤S1022:为所述多个预设报文特征中每个预设报文特征均创建一个支持位和冲突位。
参见图3所示,为本发明实施例提供的一种冲突位图的示意图。
图中包括:两个预选器,分别为预选器1和预选器2,其中,预设报文特征可以包括:L2、IPv4、IPv6、MPLS、端口8080和端口445,其中,L2是指符合二层(layer 2,L2)协议的报文,IPv4是指第四版互联网协议(Internet Protocol version 4),MPLS是指符合多协议标签交换(multi-protocol label switching)标准的报文。
从图3中可以看到每个预设报文特征均设置创建有两个特征位:支持位和冲突位,在图3中,以“L2”表示L2特征的支持位,以“-L2”表示L2特征的冲突位,其中,支持位和冲突位在创建后都设置为默认值,例如:默认值可以为0。对于某个预设报文特征而言,当预选器匹配该报文特征时,可以将该报文特征的支持位的特征值设置为预设值,例如:预设值可以为1;当与预选器匹配的报文特征相冲突时,例如:
当预选器设置为不匹配该报文特征时,可以将该报文特征的冲突位的值设置为预设值,例如:预设值可以为1。
步骤S103:获取所述至少两个预选器中每个预选器对应的报文预选规则。
每个预选器在创建时,根据对应的业务需求都会设置有一个对应的报文预选规则,例如:业务需求为处理头格式为IPv4的报文,那么报文预选规则,就是筛选包含IPv4特征的报文。
步骤S104:对于每一个预选器,根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值。
在本发明实施例中,如图4所示,该步骤S104可以包括以下步骤。
步骤S1041:根据预选器的报文预选规则,确定与所述预选器对应的目标报文特征。
目标报文特征为所述多个预设报文特征中的一个,由于每个预选器都有对应的报文预选规则,所以,可以根据报文预选规则,快速确定出该预选器对应的目标报文特征,这里目标报文特征是指该预选器需要匹配的报文特征。
步骤S1042:在所述预选器的冲突位图中,将所述目标报文特征对应的支持位的特征值设置为预设值。
在本发明实施例中,对于目标报文特征,预设值可以用1来表示。根据预选器对应的业务需求,当预选器对应的目标报文特征为多个时,可以分别对每个目标报文特征的支持位进行赋值。
步骤S1043:根据预设报文特征冲突关系表,确定与所述预选器的目标报文特征相冲突的冲突报文特征。
预先冲突关系表用于指示两个预设报文特征能否同时存在一个报文内,例如:对于任意一个预选器而言,如果其目标报文格式为:头格式IPv4,其所筛选的报文的转发类型不会为Ipv6UC(Internet Protocol version 4multicast unicast)或IPv6MC(InternetProtocol version 6multicast),所以,头格式IPv4与Ipv6UC以及IPv6MC这两个转发格式的报文特征是相冲突的。另外,如果其目标报文格式为:转发格式为IPv6UC,那么其所筛选的报文的头格式不会为L2和IPv4的报文,所以,转发格式为IPv6UC的冲突报文特征为L2和IPv4。
如图5所示,图中预选器3对应的目标报文特征为头格式IPv4,所以,预选器3的冲突报文特征为Ipv6UC以及IPv6MC。预选器4对应的目标报文特征为转发类型为IPv6UC,所以,预选器4的冲突报文特征为L2和IPv4。
当确定出预选器的目标报文特征后,就可以对预设报文特征的冲突关系表中进行查找,进而找到和目标报文特征相冲突的冲突报文特征。
在所述预选器的冲突位图中,将所述冲突报文特征的冲突位的特征值设置为预设值。
在本发明实施例中,对于目标报文特征,预设值可以用1来表示。
从图3中,可以看到预选器1选择的是IPv4且非源端口8080的报文,预选器2选择的是端口为8080且非IPv4的报文。
步骤S105:根据所述至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文。
在该步骤中,确定是否存在同时匹配到两个或两个以上的预选器的报文,可以通过对每个预选器对应的冲突位图进行分析来实现,由于在冲突位图中,通过预设报文特征的支持位和冲突位的特征值,可以清楚掌握每个预选器所匹配和不匹配的报文特征,所以,利用预先获取到不同预设报文特征之间的冲突关系,即可轻松确定出是否存在同时匹配到两个或两个以上预选器的报文。
当不存在同时匹配到两个或两个以上预选器的报文时,执行步骤S106;否则,结束流程。
步骤S106:在预设ACL查找模型中为每个预选器分别配置一个ACL程序。
利用所分配的ACL程序,可以分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。以图3为例,为预选器1独立配置一个ACL程序,并且为预选器1配置的ACL程序,在运行时,根据选择Ipv4字段集合构建查找关键字(key),并利用该查找key去查找存储器,例如:三态内容寻址存储器TCAM,存储器返回对应的查找结果,即动作集合。最后,利用动作集合对筛选出来的IPv4报文进行相应的处理。另外,为预选器2独立配置一个ACL程序,并且为预选器2配置的ACL程序,在运行时,根据选择端口为8080的字段集合构建查找关键字(key),并利用该查找key去查找存储器,例如:三态内容寻址存储器TCAM,存储器返回对应的查找结果,即动作集合。最后,利用动作集合对筛选出来的端口为8080报文进行相应的处理。
本发明实施例提供的该方法,在为预选器配置ACL程序时,通过判断是否存在同时匹配到两个或两个以上的预选器对应的报文预选规则的报文,来确定这两个或两个以上的预选器之间是否存在交集,当没有报文同时匹配到两个预选器对应的报文预选规则时,即表示这两个预选器之间不存在交集,针对这种情况,在本发明实施例中,只需为每个预选器单独配置一个独立的ACL程序即可。
对于不存在交集的两个预选器而言,不会出现能够被这两个预选器同时筛选出来的报文,所以,只需为两个预选器单独配置ACL程序即可,而无需配置一个同时匹配到两个预选器的ACL程序。相比现有技术中,每次都需要为两个预选器配置三个ACL程序而言,该方法,可以减少由于配置的ACL程序较多,而导致查找key时资源消耗较多的问题。
在本发明另一实施例中,如图6所示,在图1所示实施例的基础上,在步骤S105中,确定存在同时匹配到两个或两个以上预选器的报文时,该方法还可以包括以下步骤。
步骤S107,在预设ACL查找模型中为每个预选器分别配置一个ACL程序,且在预设ACL查找模型中为所述报文对应的两个或两个以上预选器配置至少一个共用ACL程序。
其中,关于在预设ACL查找模型中为每个预选器分别配置一个ACL程序的描述,详细可参见上述关于步骤S106中的详细描述。
在本发明实施例中,利用共用ACL程序可以查找同时匹配到两个或两个以上预选器的报文对应的处理策略。举例说明,预选器C匹配的是IPv4的报文,预选器D匹配的是端口为1的报文,对于由端口1发出的、头格式为IPv4的报文,就可以同时被预选器C和预选器D匹配。
在上述图5所示的实施例中,当存在同时匹配到两个预选器的报文时,只需要配置两个预选器之间共用ACL程序即可。但当存在同时匹配到三个或三个以上预选器的报文时,还要考虑到任意预选器之间的组合。为此,在本发明另一实施例中,上述图5所示实施例中的步骤107,在预设ACL查找模型中为所述报文对应的两个或两个以上预选器配置至少一个共用ACL程序,可以包括以下步骤。
当存在同时匹配到两个预选器的报文时,在预设ACL查找模型中为所述两个预选器配置一个共用ACL程序。
当存在同时匹配到两个以上预选器的报文时,在预设ACL查找模型中为所述两个以上预选器的之间的任意一个组合分别配置一个共用ACL程序。
以存在同时匹配到预选器A、预选器B、预选器C和预选器D的报文为例,可以先对预选器之间进行组合,得到的九种组合包括:(1)、预选器A+预选器B;(2)、预选器A+预选器C;(3)预选器A+预选器D;(4)、预选器B+预选器C;(5)预选器B+预选器D;(6)、预选器A+预选器B+预选器C;(7)、预选器A+预选器B+预选器D;(8)、预选器B+预选器C+预选器D;(9)、预选器A+预选器B+预选器C+预选器D。在该步骤,需要为上述九种组合中每个组合均配置一个共用ACL程序。
本发明实施例提供的该方法,即使某一个报文同时匹配到多个预选器,通过上述设置,利用配置的共用ACL程序,也可以对报文进行查找,而不会出现遗漏。
在本发明另一实施例中,如图7所示,前述图2所示实施例中的步骤S104,可以包括以下步骤。
步骤S1041:针对每个所述预设报文特征,将一个预选器对应的支持位和另一预选器对应的冲突位进行与运算。
以图5为例,在该步骤中,针对预设报文特征L2,将预选器3中L2的支持位的值0和预选器4中-L2的值1进行与运算,得到的结果为0。
步骤S1042:判断所有所述预设报文特征的与运算结果是否均为预设运算结果。
以特征值为1,默认值为0为例,预设运算结果可以为0。
当所有所述预设报文特征的与运算结果均为预设运算结果时,步骤S1043:确定存在同时匹配到两个或两个以上预选器的报文。
以图3为例,对于预选器1中的任意一个预设报文特征的支持位而言,在与预选器2中相同预设报文特征的冲突位进行与运算时,其结果都为0,所以预选器1和预选器2二者之间存在交集,即,存在同时匹配到这两个预选器的报文。
当任意一个所述预设报文特征的与运算结果不为预设运算结果时,步骤S1044:确定不存在同时匹配到两个或两个以上预选器的报文。
以图5为例,对于预设报文特征端口IPv4,将预选器4中-IPv4的冲突位的值1与预选器3中报文特征IPv4的支持位的值1进行与预算,得到的结果为1。
所以可见,预选器3和预选器4中,存在IPv4这个报文特征的与运算结果为1,也即满足任意一个所述预设报文在的与运算结果不为0,所以,预选器3和预选器4不存在交集,也即,不存在两个预选器之间存在同时匹配到这两个预选器的报文。
图8为本发明实施例提供的一种报文处理装置的结构示意图。如图8所示,该报文处理装置可以包括:预选器创建模块11、冲突位图生成模块12、预选规则获取模块13、特征值设置模块14、匹配确定模块15和第一程序配置模块16。
预选器创建模块11,用于创建至少两个预选器,每个预选器对应一种业务需求;
冲突位图生成模块12,用于生成所述至少两个预选器中每个预选器的冲突位图,所述冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位;
预选规则获取模块13,用于获取所述至少两个预选器中每个预选器对应的报文预选规则;
特征值设置模块14,用于对于每一个预选器,根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值;
匹配确定模块15,用于根据所述至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文;
第一程序配置模块16,用于当不存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,以便利用所配置的ACL程序分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。
在本发明另一实施例中,如图9所示,该报文处理装置还可以包括:第二程序配置模块17。
第二程序配置模块17,用于当存在同时匹配到两个预选器的报文时,在预设ACL查找模型中为所述两个预选器配置一个共用ACL程序;且当存在同时匹配到两个以上预选器的报文时,在预设ACL查找模型中为所述两个以上预选器之间的任意一个组合均分别配置一个共用ACL程序。
在本发明又一实施例中,图9中的第二程序配置模块17还可以被用于:
当存在同时匹配到两个预选器的报文时,在预设ACL查找模型中为所述两个预选器配置一个共用ACL程序;
当存在同时匹配到两个以上预选器的报文时,在预设ACL查找模型中为所述两个以上预选器之间的任意一个组合均分别配置一个共用ACL程序。
如图10所示,在本发明另一实施例中,图8中的冲突位图生成模块12可以包括:报文特征获取子模块121和特征位创建子模块122。
报文特征获取子模块121,用于获取对应所述预选器的业务需求的多个预设报文特征;
特征位创建子模块122,用于为所述多个预设报文特征中每个预设报文特征均创建一个支持位和冲突位。
如图11所示,在本发明另一实施例中,图8中的特征位设置模块14可以包括:目标报文确定子模块141、第一特征值设置子模块142、冲突报文确定子模块143和第二特征值设置子模块144。
目标报文确定子模块141,用于根据所述预选器的报文预选规则,确定与所述预选器对应的目标报文特征;
第一特征值设置子模块142,用于在所述预选器的冲突位图中,将所述目标报文特征对应的支持位的特征值设置为预设值;
冲突报文确定子模块143,用于根据预设报文特征冲突关系表,确定与所述预选器的目标报文特征相冲突的冲突报文特征;
第二特征值设置子模块144,用于在所述预选器的冲突位图中,将所述冲突报文特征的冲突位的特征值设置为预设值。
如图12所示,在本发明另一实施例中,图8中的匹配确定模块15,包括:运算子模块151、运算结果判断子模块152、第一确定子模块153和第二确定子模块154。
运算子模块151,用于针对每个所述预设报文特征,将一个预选器对应的支持位和另一预选器对应的冲突位进行与运算;
运算结果判断子模块152,用于判断所有所述预设报文特征的与运算结果是否均为预设运算结果;
第一确定子模块153,用于当所有所述预设报文特征的与运算结果均为预设运算结果时,确定在同时匹配到任意两个或两个以上预选器的报文;
第二确定子模块154,用于当任意一个所述预设报文特征的与运算结果不为预设运算结果时,确定不存在同时匹配到两个或两个以上预选器的报文。
图13为本发明实施例提供的一种设备的结构示意图。如图13所示,该设备130可以包括:
至少一个通信接口131;
与所述至少一个通信接口相连接的至少一个总线132;
与所述至少一个总线132相连接的至少一个处理器133;
与所述至少一个总线132相连接的至少一个存储器134;
其中,所述存储器134用于存储处理器133的可执行指令;
处理器133被配置为:
创建至少两个预选器,每个预选器对应一种业务需求;生成所述至少两个预选器中每个预选器的冲突位图,所述冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位;获取所述至少两个预选器中每个预选器对应的报文预选规则;对于每一个预选器,根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值;根据所述至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文;当不存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,以便利用所配置的ACL程序分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。
在本发明实施例中,处理器133可以为中央处理器(英文:central processingunit,CPU),网络处理器(英文:network processor,NP)或者CPU和NP的组合。存储器134可以为易失性存储器(volatile memory),非易失性存储器(non-volatile memory)或其组合。在本发明具体实施过程中,处理器133和存储器134可以设置在一个集成芯片上。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可实现图2、图4、图6和图7任意一个实施例提供的报文处理方法的各实现方式中的部分或全部步骤。
可以理解的是,本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (13)

1.一种报文处理方法,其特征在于,包括:
创建至少两个预选器,每个预选器对应一种业务需求;
生成所述至少两个预选器中每个预选器的冲突位图,所述冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位;
获取所述至少两个预选器中每个预选器对应的报文预选规则;
对于每一个预选器,根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值;
根据所述至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文;
当不存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,以便利用所配置的ACL程序分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,且在预设ACL查找模型中为所述报文对应的两个或两个以上预选器配置至少一个共用ACL程序。
3.根据权利要求2所述的方法,其特征在于,所述在预设ACL查找模型中为所述报文对应的两个或两个以上预选器配置至少一个共用ACL程序,包括:
当存在同时匹配到两个预选器的报文时,在预设ACL查找模型中为所述两个预选器配置一个共用ACL程序;
当存在同时匹配到两个以上预选器的报文时,在预设ACL查找模型中为所述两个以上预选器之间的任意一个组合均分别配置一个共用ACL程序。
4.根据权利要求1或2所述的方法,其特征在于,所述生成所述至少两个预选器中每个预选器的冲突位图,包括:
获取对应所述预选器的业务需求的多个预设报文特征;
为所述多个预设报文特征中每个预设报文特征均创建一个支持位和冲突位。
5.根据权利要求4所述的方法,其特征在于,所述根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值,包括:
根据所述预选器的报文预选规则,确定与所述预选器对应的目标报文特征;
在所述预选器的冲突位图中,将所述目标报文特征对应的支持位的特征值设置为预设值;
根据预设报文特征冲突关系表,确定与所述预选器的目标报文特征相冲突的冲突报文特征;
在所述预选器的冲突位图中,将所述冲突报文特征的冲突位的特征值设置为预设值。
6.根据权利要求5所述的方法,其特征在于,所述确定是否存在同时匹配到两个或两个以上预选器的报文,包括:
针对每个所述预设报文特征,将一个预选器对应的支持位和另一预选器对应的冲突位进行与运算;
判断所有所述预设报文特征的与运算结果是否均为预设运算结果;
当所有所述预设报文特征的与运算结果均为预设运算结果时,确定存在同时匹配到任意两个或两个以上预选器的报文;
当任意一个所述预设报文特征的与运算结果不为预设运算结果时,确定不存在同时匹配到两个或两个以上预选器的报文。
7.一种报文处理装置,其特征在于,包括:
预选器创建模块,用于创建至少两个预选器,每个预选器对应一种业务需求;
冲突位图生成模块,用于生成所述至少两个预选器中每个预选器的冲突位图,所述冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位;
预选规则获取模块,用于获取所述至少两个预选器中每个预选器对应的报文预选规则;
特征值设置模块,用于对于每一个预选器,根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值;
匹配确定模块,用于根据所述至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文;
第一程序配置模块,用于当不存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,以便利用所配置的ACL程序分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。
8.根据权利要求7所述的装置,其特征在于,所述装 置还包括:
第二程序配置模块,用于当存在同时匹配到两个预选器的报文时,在预设ACL查找模型中为所述两个预选器配置一个共用ACL程序;且当存在同时匹配到两个以上预选器的报文时,在预设ACL查找模型中为所述两个以上预选器之间的任意一个组合均分别配置一个共用ACL程序。
9.根据权利要求8所述的装置,其特征在于,所述第二程序配置模块,还用于:
当存在同时匹配到两个预选器的报文时,在预设ACL查找模型中为所述两个预选器配置一个共用ACL程序;
当存在同时匹配到两个以上预选器的报文时,在预设ACL查找模型中为所述两个以上预选器之间的任意一个组合均分别配置一个共用ACL程序。
10.根据权利要求7或8所述的装置,其特征在于,所述冲突位图生成模块,包括:
报文特征获取子模块,用于获取对应所述预选器的业务需求的多个预设报文特征;
特征位创建子模块,用于为所述多个预设报文特征中每个预设报文特征均创建一个支持位和冲突位。
11.根据权利要求10所述的装置,其特征在于,所述特征位设置模块,包括:
目标报文确定子模块,用于根据所述预选器的报文预选规则,确定与所述预选器对应的目标报文特征;
第一特征值设置子模块,用于在所述预选器的冲突位图中,将所述目标报文特征对应的支持位的特征值设置为预设值;
冲突报文确定子模块,用于根据预设报文特征冲突关系表,确定与所述预选器的目标报文特征相冲突的冲突报文特征;
第二特征值设置子模块,用于在所述预选器的冲突位图中,将所述冲突报文特征的冲突位的特征值设置为预设值。
12.根据权利要求11所述的装置,所述匹配确定模块,包括:
运算子模块,用于针对每个所述预设报文特征,将一个预选器对应的支持位和另一预选器对应的冲突位进行与运算;
运算结果判断子模块,用于判断所有所述预设报文特征的与运算结果是否均为预设运算结果;
第一确定子模块,用于当所有所述预设报文特征的与运算结果均为预设运算结果时,确定存在同时匹配到任意两个或两个以上预选器的报文;
第二确定子模块,用于当任意一个所述预设报文特征的与运算结果不为预设运算结果时,确定不存在同时匹配到两个或两个以上预选器的报文。
13.一种设备,其特征在于,包括:
至少一个通信接口;
与所述至少一个通信接口相连接的至少一个总线;
与所述至少一个总线相连接的至少一个处理器;
与所述至少一个总线相连接的至少一个存储器;
其中,所述存储器用于存储处理器的可执行指令;
所述处理器被配置为:
创建至少两个预选器,每个预选器对应一种业务需求;生成所述至少两个预选器中每个预选器的冲突位图,所述冲突位图中包含有对应所述预选器的业务需求的多个预设报文特征的标识,以及为每个预设报文特征预留的特征位;获取所述至少两个预选器中每个预选器对应的报文预选规则;对于每一个预选器,根据所述预选器的报文预选规则,在所述预选器对应的冲突位图中分别设置每个特征位的特征值;根据所述至少两个预选器的冲突位图中的特征值,确定是否存在同时匹配到两个或两个以上预选器的报文;当不存在同时匹配到两个或两个以上预选器的报文时,在预设访问控制列表ACL查找模型中为每个预选器分别配置一个ACL程序,以便利用所配置的ACL程序分别查找匹配到每个预选器的报文对应的处理策略并根据所述策略处理所述报文。
CN201610513657.7A 2016-06-30 2016-06-30 报文处理方法及装置 Active CN107566201B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610513657.7A CN107566201B (zh) 2016-06-30 2016-06-30 报文处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610513657.7A CN107566201B (zh) 2016-06-30 2016-06-30 报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN107566201A CN107566201A (zh) 2018-01-09
CN107566201B true CN107566201B (zh) 2020-08-25

Family

ID=60969635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610513657.7A Active CN107566201B (zh) 2016-06-30 2016-06-30 报文处理方法及装置

Country Status (1)

Country Link
CN (1) CN107566201B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651623A (zh) * 2009-09-07 2010-02-17 中兴通讯股份有限公司 访问控制列表应用的生成方法及装置
CN101820383A (zh) * 2010-01-27 2010-09-01 中兴通讯股份有限公司 限制交换机远程访问的方法及装置
CN102473229A (zh) * 2009-08-28 2012-05-23 国际商业机器公司 访问控制列表的修改
CN103220287A (zh) * 2013-04-11 2013-07-24 汉柏科技有限公司 利用acl对报文进行业务匹配的方法
CN105791142A (zh) * 2016-03-10 2016-07-20 盛科网络(苏州)有限公司 一种tap报文的标记方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015674A1 (en) * 2003-07-01 2005-01-20 International Business Machines Corporation Method, apparatus, and program for converting, administering, and maintaining access control lists between differing filesystem types
US7782859B2 (en) * 2007-05-07 2010-08-24 Cisco Technology, Inc. Enhanced packet classification

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102473229A (zh) * 2009-08-28 2012-05-23 国际商业机器公司 访问控制列表的修改
CN101651623A (zh) * 2009-09-07 2010-02-17 中兴通讯股份有限公司 访问控制列表应用的生成方法及装置
CN101820383A (zh) * 2010-01-27 2010-09-01 中兴通讯股份有限公司 限制交换机远程访问的方法及装置
CN103220287A (zh) * 2013-04-11 2013-07-24 汉柏科技有限公司 利用acl对报文进行业务匹配的方法
CN105791142A (zh) * 2016-03-10 2016-07-20 盛科网络(苏州)有限公司 一种tap报文的标记方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fast Algorithms for Local Inconsistency Detection in Firewall ACL Updates;S. Pozo, R. Ceballos, R. M. Gasca, A. J. Varela-Vaca;《2008 Second International Conference on Emerging Security Information, Systems and Technologies》;20080909;全文 *
基于接入交换机的Web认证研究与实现;高亚军;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140115;全文 *

Also Published As

Publication number Publication date
CN107566201A (zh) 2018-01-09

Similar Documents

Publication Publication Date Title
CN107733670B (zh) 一种转发策略配置方法和装置
US8345688B2 (en) System and method for managing flow of packets
US8681658B2 (en) System and method to provision an MPLS/VPN network
US20160212048A1 (en) Openflow service chain data packet routing using tables
US9923819B2 (en) Systems and methods for routing information in an information handling system using extended L3 lookup tables
CN108768866B (zh) 组播报文跨卡转发方法、装置、网络设备及可读存储介质
US20230300070A1 (en) Packet Sending Method, Device, and System
US10257091B2 (en) Pipeline table identification
US10805216B2 (en) Shared service access for multi-tenancy in a data center fabric
US11018977B2 (en) Pre-built match-action tables
US8670352B2 (en) Link inference in large networks based on incomplete data
CN111355661B (zh) 一种vpn的处理方法和pe设备以及系统
Kulkarni et al. Neo-NSH: Towards scalable and efficient dynamic service function chaining of elastic network functions
CN111600797A (zh) 一种数据传输方法、节点以及系统
US12063155B2 (en) Packet sending method and apparatus, and storage medium
CN113542128A (zh) 一种发送路由信息的方法和装置
US8811158B1 (en) Fast reroute for common network routes
CN106453088A (zh) 一种静态路由配置方法及终端
CN107566201B (zh) 报文处理方法及装置
CN105207904A (zh) 报文的处理方法、装置和路由器
CN111800338A (zh) 跨as的evpn路由交互方法及装置
CN112866208B (zh) 表项配置方法、报文处理方法、装置、设备及存储介质
CN112737850B (zh) 一种互斥访问的方法及装置
US7643485B2 (en) Method and system for managing communication of router information
CN113923162A (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