CN103618711A - 一种acl规则的配置方法及网络设备 - Google Patents

一种acl规则的配置方法及网络设备 Download PDF

Info

Publication number
CN103618711A
CN103618711A CN201310603931.6A CN201310603931A CN103618711A CN 103618711 A CN103618711 A CN 103618711A CN 201310603931 A CN201310603931 A CN 201310603931A CN 103618711 A CN103618711 A CN 103618711A
Authority
CN
China
Prior art keywords
address
commensurate
resolver
interval
scope
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.)
Granted
Application number
CN201310603931.6A
Other languages
English (en)
Other versions
CN103618711B (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.)
Shenzhen Shangge Intellectual Property Service Co ltd
Tongding Interconnection Information 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 CN201310603931.6A priority Critical patent/CN103618711B/zh
Publication of CN103618711A publication Critical patent/CN103618711A/zh
Application granted granted Critical
Publication of CN103618711B publication Critical patent/CN103618711B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种ACL规则的配置方法及网络设备。ACL规则的配置方法包括:将范围匹配地址进行2n分解得到至少两个分解区间,将分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,其中,0<k<n,对经再次分解后得到的有效地址个数不为2的幂次方的分解区间采用减法方式进行再次分解,直至分解得到的所有区间包含的有效地址个数都为2的幂次方;对有效地址个数为2的幂次方的所有区间中的连续区间进行合并处理,不连续区间进行累加处理;为合并处理和累加处理后得到的每个区间分别配置一条ACL规则。本发明能够减少ACL规则使用数量,节省TCAM硬件资源。

Description

一种ACL规则的配置方法及网络设备
技术领域
本发明涉及通讯领域,特别是涉及一种ACL规则的配置方法及网络设备。
背景技术
随着通信领域数据业务的不断发展,基于以太网络应用的技术手段逐步在网络设备中得到应用,其中作为网络服务质量(QoS)特性领域中的访问控制列表(ACL)技术,应用尤为广泛。
在访问控制列表(ACL,Access Control List)技术应用的场景中,常用的实现方式是使用三态内容寻址存储器(TCAM)实现特性访问控制规则的匹配查找功能,可以对需要处理数据报文中的特定字段进行精确匹配、范围匹配以及最长匹配等查找功能。但是,并非所有的TCAM器件都支持范围匹配的查找功能,在TCAM器件功能受限制的场景,需要使用数据报文中的特殊字段进行范围匹配规则操作的情况下,提供不了特殊字段范围匹配查找的TCAM器件,需要将用户下发的范围匹配规则分解为多个精确匹配规则进行查找。
范围匹配规则分解为多个精确匹配规则组合的其中一种方法为单范围匹配规则的加法分解方式,这种方式是指,在对于一个范围匹配规则进行分解的情况下,将范围匹配区间的最小数值作为门限,采用二进制累加的方式,使用2n作为增加分别规则个数增加的基本单元,直到达到范围匹配规则最大数值门限的规则分解方法。使用该方法分解简单、动态处理方便,但是没有实现范围匹配分解到最少,额外的消耗精确匹配硬件资源。
发明内容
本发明主要解决的技术问题是提供一种ACL规则的配置方法及网络设备,能够减少数据ACL规则的占用,节省TCAM器件的使用空间。
第一方面,提供一种ACL规则的配置方法,包括:网络设备接收数据包中一段需要范围匹配的地址;将范围匹配地址进行2n分解得到至少两个分解区间,其中n取非负整数;将分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,其中,0<k<n,通过减法方式进行再次分解是通过包含分解区间且有效地址个数为2的幂次方的大区间减去大区间内分解区间之外的区间以得到分解区间的方式;对经再次分解后得到的有效地址个数不为2的幂次方的分解区间再次执行采用减法方式进行再次分解的步骤,如此循环直至分解得到的所有区间包含的有效地址个数都为2的幂次方;对有效地址个数为2的幂次方的所有区间中的连续区间进行合并处理,不连续区间进行累加处理;为合并处理和累加处理后得到的每个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。
结合第一方面,在第一方面的第一种可能的实现方式中:将范围匹配地址进行2n分解得到至少两个分解区间的步骤包括:确定范围匹配地址的中心地址,以中心地址为中心,分别向范围匹配地址的两端分解得到至少两个分解区间,中心地址为范围匹配地址以内最大的2n或为通过a2n+b2n-1+c2n-2+d2n-3……方式逐级累加得到的范围匹配区间内的最小数值,其中,a、b、c、d取0或1。
结合第一方面,在第一方面的第二种可能的实现方式中:大区间的有效地址个数是大于分解区间的有效地址个数且最接近分解区间的有效地址个数的2的幂次方。
第二方面,提供一种网络设备,网络设备包括接收模块、第一分解模块、第二分解模块、处理模块以及配置模块,其中:接收模块用于接收数据包中一段需要范围匹配的地址;第一分解模块用于将接收模块接收的范围匹配地址进行2n分解得到至少两个分解区间,其中n取非负整数;第二分解模块用于将第一分解模块分解得到的分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,其中,0<k<n,通过减法方式再次分解是通过包含分解区间且有效地址个数为2的幂次方的大区间减去大区间内分解区间之外的区间以得到分解区间的方式,并对经再次分解后得到的有效地址个数不为2的幂次方的分解区间再次执行采用减法方式进行再次分解的步骤,如此循环直至分解得到的所有区间包含的有效地址个数都为2的幂次方;处理模块用于对第二分解模块得到的有效地址个数为2的幂次方的所有区间中的连续区间进行合并处理,不连续区间进行累加处理;配置模块用于对处理模块处理后得到的每个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。
结合第二方面,在第二方面的第一种可能的实现方式中:第一分解模块用于确定范围匹配地址的中心地址,以中心地址为中心,分别向范围匹配地址的两端分解得到至少两个分解区间,中心地址为范围匹配地址以内最大的2n或为通过a2n+b2n-1+c2n-2+d2n-3……方式逐级累加得到的范围匹配地址内的最小数值,其中,a、b、c、d取0或1。
结合第二方面,在第二方面的第二种可能的实现方式中:大区间的有效地址个数是大于分解区间的有效地址个数且最接近分解区间的有效地址个数的2的幂次方。
本发明的有益效果是:区别于现有技术的情况,本发明对范围匹配地址进行2n分解得到至少两个分解区间,对分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,如此循环直至所有分解区间的有效地址个数都为2的幂次方,然后对这些有效地址个数为2的幂次方的所有区间中的连续区间进行合并处理,不连续区间进行累加处理,对经过累加处理和合并处理后得到的区间分别配置ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。通过这样的方式,从而大大减少ACL规则使用数量,提高ACL规则利用率,节省TCAM硬件资源。
附图说明
图1是本发明实施方式提供的一种ACL规则的配置方法流程图;
图2是本发明实施方式提供的ACL规则的配置方法中针对范围匹配地址101~200的分解示意图;
图3是本发明实施方式提供的一种网络设备的结构示意图;
图4是本发明实施方式提供的另一种网络设备的结构示意图。
具体实施方式
网络技术快速发展的今天,网络的安全问题也备受关注,对于承载着各种网络业务的网络设备来说,比如路由器、交换机等,拥有一个自身安全保护措施也显得尤为重要,ACL就是常用的安全技术之一。
ACL的功能是用来过滤进出网络设备端口的数据包。ACL由很多条ACL规则组成,将数据包中相应字段的地址与ACL规则进行匹配,ACL规则可以是数据包的源地址、目的地址、源端口号、目的端口号等信息,从而达到访问控制的目的。
ACL技术应用场景中,常见的实现方式是使用TCAM实现特性访问控制规则的匹配查找功能。但是并非所有的TCAM都支持范围匹配的查找功能,在TCAM受限情况下,需要将用户下发的范围匹配规则分解为多个精确匹配规则进行查找。
现有范围匹配规则分解的中最常用的是单范围匹配规则的加法分解方式,这种分解方式分解简单,动态处理方便,比如实现101-200区间范围匹配,在实现上直接使用范围匹配最小数据101作为低门限,使用2n作为增加数据步长进行累加的操作,最终实现的分解功能所使用的精确规则匹配数为7条,即101;102~103;104~111;112~127;128~191;192~199;200分别配置一条ACL规则。具体实现方法如下:
Figure BDA0000421481180000041
Figure BDA0000421481180000051
但是,现有的范围匹配规则分解的方法,存在范围匹配分解不够精简,额外消耗精确匹配硬件资源的缺点。
有鉴于此,本发明提供一种ACL规则的配置方法及网络设备,旨在解决现有范围匹配分解不够精简,额外消耗精确匹配硬件资源的问题。
以下结合具体的实施方式对本发明进行详细阐述,但这些只是本发明提供的具体实施方式,并不用以限定本发明的保护范围。
请参阅图1,图1是本发明实施方式提供的一种ACL规则的配置方法,本实施方式ACL规则的配置方法以网络设备的角度来进行描述,本实施方式的ACL规则的配置方法包括以下步骤:
S101:网络设备接收数据包中一段需要范围匹配的地址;
在本步骤中,首先接收数据包中的一段需要范围匹配的地址,这里假设需要范围匹配的地址为101~200。
S102:将范围匹配地址进行2n分解得到至少两个分解区间,其中,n取非负整数;
将范围匹配地址进行2n分解得到至少两个分解区间,n取非负整数。在本步骤中,可以采用现有的任何一种进行2n分解的方式来对范围匹配地址进行分解。
其中,本发明实施方式中提供的一种将范围匹配地址进行2n分解得到至少两个分解区间的方法为:确定范围匹配地址的中心地址,以中心地址为中心,分别向范围匹配地址的两端分解得到至少两个分解区间,中心地址为范围匹配地址以内最大的2n或为通过a2n+b2n-1+c2n-2+d2n-3……方式逐级累加得到的范围匹配区间内的最小数值,其中,a、b、c、d取0或1。
以范围匹配地址101~200为例,28=256,超出上限200,26=64在下限101之外,27=128刚好处于101~200范围内且是该范围内最大的2的幂次方数值,因此以128作为中心地址,向101~200的两端分解得到101~127,128~200两个分解区间。
而以范围匹配地址130~200作为举例,28=256,超出上限200,27=128又在下限130之外,这时候,将27向下一级26做一个累加,即128+64=192,这个192刚好处于范围130~200之间,以192作为中心地址,向130~200的两端分解得到130~191,192~200两个分解区间。
需要说明的是,当范围匹配地址以内不存在2幂次方数值时,以2的幂次方数值逐级累加得到的最小数值作为中心地址,这时候的累加过程,只能是逐级累加。以上述为例,27+25=160虽然也在130~200之间,但是这不是逐级累加的结果,所以不能作为中心地址。在确定中心地址的时候,只要最高一级与其下一级幂次方的数累加得到的数值在范围匹配地址以内,即以这个数值作为中心地址,不再继续往下一级幂次方累加。
S103:将分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,0<k<n;
将分解得到的分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,0<k<n。其中,采用减法方式进行再次分解是通过包含分解区间且有效地址个数为2的幂次方的大区间减去大区间内分解区间之外的区间以得到分解区间的方式。
优选地,大区间的有效地址个数是大于分解区间有效地址个数且最接近分解区间有效地址个数的2的幂次方。
以范围匹配地址为101~200为例,上述分解得到101~127,128~200两个分解区间,其中101~127之间有效地址个数为27,128~200之间有效地址为55,其中,27大于24(16)小于25(32),则将101~127采用减法方式进行再次分解。选择的大区间可以是包含101~127在内且有效地址个数为32,64,128……等的区间。因为有效地址个数为2的幂次方的区间都可以用一条规则表示,所以为了简化分解次数,优选包含101~127在内且有效地址个数为32的区间即96~127作为大区间,然后用区间96~127减去区间96~100即得到区间101~127,也就是说,区间101~127再次分解得到(96~127)-(96~100)。同样,对于128~200区间也按照同样的方法,分解得到(128~255)-(201~255)。
S104:查找是否有再次分解后得到的有效地址个数不为2的幂次方的分解区间;
对于经再次分解后,得到的所有区间中,有效地址不为2的幂次方的分解区间,还需要再次分解,因此,从再次分解后得到的分解区间中查找是否有有效地址个数不为2的幂次方的分解区间,如果有,返回执行步骤S104即对于有效地址不为2的幂次方的分解区间采用减法方式进行再次分解,否则,执行步骤S105。如此循环直到所有分解得到的区间的有效地址个数都为2的幂次方为止。
比如上述分解后得到的区间(96~100),其有效地址个数为5,区间(201~255),其有效地址个数为55,都需要进行再次分解。按照上述同样的方法,22<5<23,所以96~100再次分解得到(96~103)-(101~103),(101~103)满足再次分解的条件,再次分解得到(100~103)-(100),到此,针对101~127分解得到的所有区间的有效地址个数都为2的幂次方,不需要再往下分解,最终分解结果为101~127=(96~127)-(96~100)=(96~127)-[(96~103)-(101~103)]=(96~127)-[(96~103)-(100~103)+(100)]=(96~127)-[(96~103)-(100~103)]-(100)。
同理,128~200也按照同样的方法进行分解,最终分解结果为128~200=(128~255)-(201~255)=(128~255)-[(192~255)-(192~200)]=(128~255)-[(192~255)-(192~207)+(201~207)]=(128~255)-[(192~255)-(192~207)+(200~207)-(200)]=(128~255)-(192~255)+(192~207)-(200~207)+(200)。
S105:对有效地址个数为2的幂次方的所有区间中的连续区间进行合并处理,不连续区间进行累加处理;
本步骤可以在上述步骤都执行完后再执行,也可以每进行一次分解后分别执行。
这里的连续区间可以有两种情况:第一种情况是指两个区间有部分重叠,且合并后可以用同一条规则表示(即合并后的有效地址个数也是2的幂次方)的区间,比如区间(128~255)-(192~255),是两个部分重叠的区间,并且合并后得到的区间(128~191)的有效地址个数为64个,符合合并条件,所以进行合并处理。
第二种情况是指两个区间,其中一个区间的上限刚好跟另一个区间的下限是连续的数值,并且合并后可以用同一条规则表示(即合并后的有效地址个数也是2的幂次方)的区间。比如(0~1)+(2~3),这两个区间中1与2刚好是连续的数值,且两个区间合并后得到(0~3)中有效地址个数又刚好为4,符合合并条件,经合并后可以用一条规则来进行表示。
对上述的举例分解得到的区间进行合并和累加处理,即101~127=(96~127)-(96~99)-(100),128~200=(128~191)+(192~199)+(200)。请参阅图2,图2是本实施方式中针对范围匹配地址101~200的分解示意图,其中,每个区间之前的符号表示该区间最终分配到的符号,每个区间之后的数值表示该区间内的有效地址个数。
S106:为合并处理和累加处理后得到的每个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理;
对进行合并处理和累加处理后得到的每个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。比如针对范围匹配地址101~200,最终分别为(96~127)、(96~99)、(100)、(128~191)、(192~199)、(200)配置一条ACL规则,总共配置6条ACL规则,相对于现有技术通过加法分解方式需要7条规则进一步精简到只需要6条规则,避免精确匹配硬件资源的浪费。具体分配结果如下:
Figure BDA0000421481180000081
Figure BDA0000421481180000091
以下给出针对两个不同范围匹配地址,现有技术加法分解方法跟本发明分解方法进行比较的结果可见,通过本发明实施方式提供的上述方法,可以减少ACL规则使用数量,提高ACL规则利用率。
表1:本发明分解方法跟现有加法分解方法比较结果
Figure BDA0000421481180000092
通过上述实施方式的描述,可以理解,本发明实施方式提供的ACL规则的配置方法,通过对范围匹配地址进行2n分解得到至少两个分解区间,对分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,如此循环直至所有分解区间的有效地址个数都为2的幂次方,然后对这些有效地址个数为2的幂次方的所有区间中的连续区间进行合并处理,不连续区间进行累加处理,对经过累加处理和合并处理后得到的区间分别配置ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。通过这样的方式,从而大大减少ACL规则使用数量,提高ACL规则利用率,节省TCAM硬件资源。
请参阅图3,图3是本发明实施方式提供的一种网络设备的结构示意图,本实施方式的网络设备100包括接收模块11、第一分解模块12、第二分解模块13、处理模块14以及配置模块15,其中:
接收模块11用于接收数据包中一段需要范围匹配的地址;
网络设备通过接收模块11接收数据包中的一段需要范围匹配的地址,这里假设需要范围匹配的地址为72~255。
第一分解模块12用于将接收模块11接收的范围匹配地址进行2n分解得到至少两个分解区间,其中n取非负整数;
其中,第一分解模块12将范围匹配地址进行2n分解得到至少两个分解区间,n取非负整数。其中,第一分解模块12可以采用现有的任何一种进行2n分解的方式来对范围匹配地址进行分解。
其中,本发明实施方式中提供的一种将范围匹配地址进行2n分解得到至少两个分解区间的方法为:第一分解模块12确定范围匹配地址的中心地址,以中心地址为中心,分别向范围匹配地址的两端分解得到至少两个分解区间,中心地址为范围匹配地址以内最大的2n或为通过a2n+b2n-1+c2n-2+d2n-3……方式累加得到的范围匹配区间内的最小数值,其中,a、b、c、d取0或1。
以范围匹配地址72~255为例,28=256,超出上限255,26=64在下限72之外,27=128刚好处于72~255范围内且是该范围内最大的2的幂次方数值,因此以128作为中心地址,向72~255的两端分解得到72~127,128~255两个分解区间。
而以范围匹配地址130~200作为举例,28=255,超出上限200,27=128又在下限130之外,这时候,将27向下一级26做一个累加,即128+64=192,这个192刚好处于范围130~200之间,以192作为中心地址,向130~200的两端分解得到130~191,192~200两个分解区间。
需要说明的是,当范围匹配地址以内不存在2幂次方数值时,以2的幂次方数值逐级累加得到的最小数值作为中心地址,这时候的累加过程,只能是逐级累加。以上述为例,27+25=160虽然也在130~200之间,但是这不是逐级累加的结果,所以不能作为中心地址。在确定中心地址的时候,只要最高一级与其下一级幂次方的数累加得到的数值在范围匹配地址以内,即以这个数值作为中心地址,不再继续往下一级幂次方累加。
第二分解模块13用于将第一分解模块分解得到的分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,其中,0<k<n,通过减法方式再次分解是通过包含分解区间且有效地址个数为2的幂次方的大区间减去大区间内分解区间之外的区间以得到分解区间的方式,并对经再次分解后得到的有效地址个数不为2的幂次方的分解区间再次执行采用减法方式进行再次分解的步骤,如此循环直至分解得到的所有区间包含的有效地址个数都为2的幂次方;
将分解得到的分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,0<k<n。其中,采用减法方式进行再次分解是通过包含分解区间且有效地址个数为2的幂次方的大区间减去大区间内分解区间之外的区间以得到分解区间的方式。
优选地,大区间的有效地址个数是大于分解区间有效地址个数且最接近分解区间有效地址个数的2的幂次方。
以范围匹配地址为72~255为例,上述分解得到的72~127,128~255两个分解区间,其中72~127之间有效地址个数为56,56大于25(32)小于26(64),则将72~127采用减法方式进行再次分解。选择的大区间可以是包含72~127且有效地址个数为64,128,256……等的区间。这里优选有效地址个数为64的大区间即64~127,然后用区间64~127减去区间64~71即得到区间72~127。分解得到的64~127以及64~71都包含2的幂次方的有效地址,不需要循环执行再次分解的步骤,而128~255也刚好包含2的幂次方的有效地址,也不需要执行再次分解的步骤。
处理模块14用于对第二分解模块13的有效地址个数为2的幂次方的所有区间中的连续区间进行合并处理,不连续区间进行累加处理;
处理模块14对经分解后得到的所有的有效地址个数为2的幂次方的区间中连续区间进行合并处理,不连续区间进行累加处理。
这里的连续区间可以有两种情况:第一种情况是指两个区间有部分重叠,且合并后可以用同一条规则表示(即合并后的有效地址个数也是2的幂次方)的区间,比如区间(128~255)-(192~255),是两个部分重叠的区间,并且合并后得到的区间(128~191)的有效地址个数为64个,符合合并条件,因此进行合并处理。
第二种情况是指两个区间,其中一个区间的上限刚好跟另一个区间的下限是连续的数值,并且合并后可以用同一条规则表示(即合并后的有效地址个数也是2的幂次方)的区间。比如(0~1)+(2~3),这两个区间中1与2刚好是连续的数值,且两个区间合并后得到(0~3)中有效地址个数又刚好为4,符合合并条件,经合并后可以用一条规则来进行表示。
比如针对上述的72~200分解得到的区间64~127、64~71以及128~255,都不存在连续的区间,因此对这些区间进行累加处理。即最终结果为72~200=(64~127)-(64~71)+(128~255)。
其中,处理模块14可以在第二分解模块13将所有分解区间都分解到包含2的幂次方的区间后再执行处理操作,也可以在每次第二分解模块13执行完一次分解后执行一次处理操作。
配置模块15对处理模块14后得到的每个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。
配置模块15对处理模块14进行合并处理和累加处理后得到的每个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。比如针对上述范围匹配区间72~200,最终分别为(64~127)、(64~71)、(128~255)配置一条ACL规则,总共配置3条ACL规则。相对于现有技术通过加法分解方式需要4条规则即(72~79)、(80~95)、(96~127)以及(128~255),本发明方法进一步精简到只需要3条规则,避免精确匹配硬件资源的浪费。
请参阅图4,图4是本发明实施方式提供的另一种网络设备的结构示意图,本实施方式的网络设备200包括处理器21、存储器22、输入设备23、输出设备24以及总线系统25,其中:
处理器21控制网络设备200的操作,处理器21还可以称为CPU(Central Processing Unit,中央处理单元)。处理器21可能是一种集成电路芯片,具有信号的处理能力。处理器21还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器22可以包括只读存储器和随机存取存储器,并向处理器21提供指令和数据。存储器22的一部分还可以包括非易失性随机存取存储器(NVRAM)。
网络设备200的各个组件通过总线系统25耦合在一起,其中总线系统25除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统25。
存储器22存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器21通过调用存储器22存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
处理器21接收数据包中一段需要范围匹配的地址,将范围匹配地址进行2n分解得到至少两个分解区间,其中n取非负整数,并进一步将分解得到的分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,其中,0<k<n,通过减法方式再次分解是通过包含分解区间且有效地址个数为2的幂次方的大区间减去大区间内分解区间之外的区间以得到分解区间的方式,并对经再次分解后得到的有效地址个数不为2的幂次方的分解区间再次执行采用减法方式进行再次分解的步骤,如此循环直至分解得到的所有区间包含的有效地址个数都为2的幂次方,然后对有效地址个数为2的幂次方的所有区间中的连续区间进行合并处理,不连续区间进行累加处理,并为经合并处理和累加处理后的每一个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。
其中,处理器31可以采用现有的任何一种进行2n分解的方式来对范围匹配地址进行分解。
本实施方式中提供的一种将范围匹配地址进行2n分解得到至少两个分解区间的方法为:处理器21确定范围匹配地址的中心地址,以中心地址为中心,分别向范围匹配地址的两端分解得到至少两个分解区间,中心地址为范围匹配地址以内最大的2n或为通过a2n+b2n-1+c2n-2+d2n-3……方式累加得到的范围匹配区间内的最小数值,其中,a、b、c、d取0或1。
以范围匹配地址72~255为例,28=256,超出上限255,26=64在下限72之外,27=128刚好处于72~255范围内且是该范围内最大的2的幂次方数值,因此以128作为中心地址,向72~255的两端分解得到72~127,128~255两个分解区间。
而以范围匹配地址130~200作为举例,28=255,超出上限200,27=128又在下限130之外,这时候,将27向下一级26做一个累加,即128+64=192,这个192刚好处于范围130~200之间,以192作为中心地址,向130~200的两端分解得到130~191,192~200两个分解区间。
需要说明的是,当范围匹配地址以内不存在2幂次方数值时,以2的幂次方数值逐级累加得到的最小数值作为中心地址,这时候的累加过程,只能是逐级累加。以上述为例,27+25=160虽然也在130~200之间,但是这不是逐级累加的结果,所以不能作为中心地址。在确定中心地址的时候,只要最高一级与其下一级幂次方的数累加得到的数值在范围匹配地址以内,即以这个数值作为中心地址,不再继续往下一级幂次方累加。
其中,处理器21将分解得到的分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,0<k<n。其中,采用减法方式进行再次分解是通过包含分解区间且有效地址个数为2的幂次方的大区间减去大区间内分解区间之外的区间以得到分解区间的方式。
优选地,大区间的有效地址个数是大于分解区间有效地址个数且最接近分解区间有效地址个数的2的幂次方。
以范围匹配地址为72~255为例,上述分解得到的72~127,128~255两个分解区间,其中72~127之间有效地址个数为56,56大于25(32)小于26(64),则将72~127采用减法方式进行再次分解。选择的大区间可以是包含72~127且有效地址个数为64,128,256……等的区间。这里优选有效地址个数为64的大区间即64~127,然后用区间64~127减去区间64~71即得到区间72~127。分解得到的64~127以及64~71都包含2的幂次方的有效地址,不需要循环执行再次分解的步骤,而128~255也刚好包含2的幂次方的有效地址,也不需要执行再次分解的步骤。
本实施方式中,处理器21对所有有效地址个数为2的幂次方的区间中连续区间进行合并处理,这里的连续区间可以有两种情况:第一种情况是指两个区间的有部分重叠,且合并后可以用同一条规则表示(即合并后的有效地址个数也是2的幂次方)的区间,比如区间(128~255)-(192~255),是两个部分重叠的区间,并且合并后得到的区间(128~191)的有效地址个数为64个,符合合并条件进行合并处理。
第二种情况是指两个区间,其中一个区间的上限刚好跟另一个区间的下限是连续的数值,并且合并后可以用同一条规则表示(即合并后的有效地址个数也是2的幂次方)的区间。比如(0~1)+(2~3),这两个区间中1与2刚好是连续的数值,且两个区间合并后得到(0~3)中有效地址个数又刚好为4,符合合并条件,经合并后可以用一条规则来进行表示。
处理器21可以在将所有分解区间都分解到包含2的幂次方的区间后再进行合并和累加处理,也可以是没执行一次分解后都执行一次合并和累加处理。
处理器21还进一步对进行合并处理和累加处理后得到的每个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。比如针对上述范围匹配区间72~200,最终分别为(64~127)、(64~71)、(128~255)配置一条ACL规则,总共配置3条ACL规则。相对于现有技术通过加法分解方式需要4条规则即(72~79)、(80~95)、(96~127)以及(128~255),本发明方法进一步精简到只需要3条规则,避免精确匹配硬件资源的浪费。
上述本发明实施方式揭示的方法可以应用于处理器21中,或者由处理器21实现。在实现过程中,上述方法的各步骤可以通过处理器21中的硬件的集成逻辑电路或者软件形式的指令完成。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。结合本申请实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器22,处理器21读取存储器22中的信息,结合其硬件完成上述方法的步骤。
通过本实施方式的提供的网络设备为范围匹配区间配置ACL规则,可以减少ACL规则使用数量,提高ACL规则利用率。
上述为本发明实施方式提供的ACL规则的配置方法及网络设备的详细描述,通过上述实施方式的描述,可以理解,本发明通过对范围匹配地址进行2n分解得到至少两个分解区间,对分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,如此循环直至所有分解区间的有效地址个数都为2的幂次方,然后对这些有效地址个数为2的幂次方的所有区间中的连续区间进行合并处理,不连续区间进行累加处理,对经过累加处理和合并处理后得到的区间分别配置ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。通过这样的方式,从而大大减少ACL规则使用数量,提高ACL规则利用率,节省TCAM硬件资源。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (6)

1.一种ACL规则的配置方法,其特征在于,包括:
网络设备接收数据包中一段需要范围匹配的地址;
将所述范围匹配地址进行2n分解得到至少两个分解区间,其中n取非负整数;
将所述分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,其中,0<k<n,所述通过减法方式进行再次分解是通过包含所述分解区间且有效地址个数为2的幂次方的大区间减去所述大区间内所述分解区间之外的区间以得到所述分解区间的方式;
对经再次分解后得到的有效地址个数不为2的幂次方的分解区间再次执行所述采用减法方式进行再次分解的步骤,如此循环直至分解得到的所有区间包含的有效地址个数都为2的幂次方;
对有效地址个数为2的幂次方的所述所有区间中的连续区间进行合并处理,不连续区间进行累加处理;
为所述合并处理和所述累加处理后得到的每个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。
2.根据权利要求1所述的方法,其特征在于,所述将范围匹配地址进行2n分解得到至少两个分解区间的步骤包括:
确定范围匹配地址的中心地址,以所述中心地址为中心,分别向所述范围匹配地址的两端分解得到至少两个分解区间,所述中心地址为所述范围匹配地址以内最大的2n或为通过a2n+b2n-1+c2n-2+d2n-3……方式逐级累加得到的范围匹配区间内的最小数值,其中,a、b、c、d取0或1。
3.根据权利要求1所述的方法,其特征在于,所述大区间的有效地址个数是大于所述分解区间的有效地址个数且最接近所述分解区间的有效地址个数的2的幂次方。
4.一种网络设备,其特征在于,所述网络设备包括接收模块、第一分解模块、第二分解模块、处理模块以及配置模块,其中:
所述接收模块用于接收数据包中一段需要范围匹配的地址;
所述第一分解模块用于将所述接收模块接收的所述范围匹配地址进行2n分解得到至少两个分解区间,其中n取非负整数;
所述第二分解模块用于将所述第一分解模块分解得到的所述分解区间中有效地址个数大于2k小于2k+1的分解区间,采用减法方式进行再次分解,其中,0<k<n,所述通过减法方式再次分解是通过包含所述分解区间且有效地址个数为2的幂次方的大区间减去所述大区间内所述分解区间之外的区间以得到所述分解区间的方式,并对经再次分解后得到的有效地址个数不为2的幂次方的分解区间再次执行所述采用减法方式进行再次分解的步骤,如此循环直至分解得到的所有区间包含的有效地址个数都为2的幂次方;
所述处理模块用于对所述第二分解模块得到的有效地址个数为2的幂次方的所述所有区间中的连续区间进行合并处理,不连续区间进行累加处理;
所述配置模块用于对所述处理模块处理后得到的每个区间分别配置一条ACL规则,以依据配置的ACL规则对经过的数据包地址进行处理。
5.根据权利要求4所述的网络设备,其特征在于,所述第一分解模块用于确定范围匹配地址的中心地址,以所述中心地址为中心,分别向所述范围匹配地址的两端分解得到至少两个分解区间,所述中心地址为所述范围匹配地址以内最大的2n或为通过a2n+b2n-1+c2n-2+d2n-3……方式逐级累加得到的范围匹配地址内的最小数值,其中,a、b、c、d取0或1。
6.根据权利要求4所述的网络设备,其特征在于,所述大区间的有效地址个数是大于所述分解区间的有效地址个数且最接近所述分解区间的有效地址个数的2的幂次方。
CN201310603931.6A 2013-11-25 2013-11-25 一种acl规则的配置方法及网络设备 Active CN103618711B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310603931.6A CN103618711B (zh) 2013-11-25 2013-11-25 一种acl规则的配置方法及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310603931.6A CN103618711B (zh) 2013-11-25 2013-11-25 一种acl规则的配置方法及网络设备

Publications (2)

Publication Number Publication Date
CN103618711A true CN103618711A (zh) 2014-03-05
CN103618711B CN103618711B (zh) 2016-11-23

Family

ID=50169415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310603931.6A Active CN103618711B (zh) 2013-11-25 2013-11-25 一种acl规则的配置方法及网络设备

Country Status (1)

Country Link
CN (1) CN103618711B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335307A (zh) * 2014-08-13 2016-02-17 华为技术有限公司 一种acl规则的加载方法及装置
CN107800627A (zh) * 2016-09-06 2018-03-13 南京中兴软件有限责任公司 三态内容寻址存储器tcam表的写入方法及装置
CN108965337A (zh) * 2018-09-17 2018-12-07 新华三信息安全技术有限公司 规则匹配方法、装置、防火墙设备及机器可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7227842B1 (en) * 2001-04-24 2007-06-05 Tensilica, Inc. Fast IP packet classification with configurable processor
CN101035061A (zh) * 2006-03-09 2007-09-12 中兴通讯股份有限公司 实现三重内容可寻址存储器范围匹配的分段编码扩展方法
US7711893B1 (en) * 2004-07-22 2010-05-04 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
US20130232104A1 (en) * 2011-08-02 2013-09-05 Cavium, Inc. Duplication in decision trees

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7227842B1 (en) * 2001-04-24 2007-06-05 Tensilica, Inc. Fast IP packet classification with configurable processor
US7711893B1 (en) * 2004-07-22 2010-05-04 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
CN101035061A (zh) * 2006-03-09 2007-09-12 中兴通讯股份有限公司 实现三重内容可寻址存储器范围匹配的分段编码扩展方法
US20130232104A1 (en) * 2011-08-02 2013-09-05 Cavium, Inc. Duplication in decision trees

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335307A (zh) * 2014-08-13 2016-02-17 华为技术有限公司 一种acl规则的加载方法及装置
CN105335307B (zh) * 2014-08-13 2018-10-02 华为技术有限公司 一种acl规则的加载方法及装置
CN107800627A (zh) * 2016-09-06 2018-03-13 南京中兴软件有限责任公司 三态内容寻址存储器tcam表的写入方法及装置
CN107800627B (zh) * 2016-09-06 2021-04-06 中兴通讯股份有限公司 三态内容寻址存储器tcam表的写入方法及装置
CN108965337A (zh) * 2018-09-17 2018-12-07 新华三信息安全技术有限公司 规则匹配方法、装置、防火墙设备及机器可读存储介质

Also Published As

Publication number Publication date
CN103618711B (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
US9665346B2 (en) Performing arithmetic operations using both large and small floating point values
US20170097853A1 (en) Realizing graph processing based on the mapreduce architecture
CN1841331A (zh) 为被先占的虚拟处理器分配应得处理器周期的方法和系统
US20180024812A1 (en) Dynamic evaluation and adaption of hardware hash function
JP2021525403A (ja) 改良された低精度の2進浮動小数点形式設定
TW201723811A (zh) 於指令集架構中排序資料及合併經排序資料之技術
CN112445729B (zh) 操作地址确定方法、PCIe系统、电子设备及存储介质
US11321136B2 (en) Techniques for collective operations in distributed systems
CN103838626A (zh) 一种处理串行任务的数据处理装置及方法
CN108228754A (zh) 流程生成方法及终端设备
Ouyang et al. Active SSD design for energy-efficiency improvement of web-scale data analysis
CN103618711A (zh) 一种acl规则的配置方法及网络设备
CN104035747A (zh) 用于并行计算的方法和装置
CN112000484A (zh) 栈帧地址随机化方法及相关设备
CN113918233A (zh) 一种ai芯片控制方法、电子设备及ai芯片
US9262162B2 (en) Register file and computing device using the same
US20170185667A1 (en) Content classification
US8645404B2 (en) Memory pattern searching via displaced-read memory addressing
CN102567247A (zh) 硬件搜索引擎
US20120173928A1 (en) Analyzing Simulated Operation Of A Computer
CN105653364A (zh) 应用进程管理方法及应用进程管理装置
CN111681093B (zh) 一种展示资源页面的方法、装置和电子设备
CN113325797B (zh) 控制设备的数据采集方法、装置、存储介质和电子设备
CN111198900B (zh) 工业控制网络的数据缓存方法、装置、终端设备及介质
KR101559651B1 (ko) 동적 분석 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201026

Address after: No.8, Xiaoping Avenue, Badu Economic Development Zone, Zhenze Town, Wujiang District, Suzhou City, Jiangsu Province

Patentee after: TONGDING INTERCONNECTION INFORMATION Co.,Ltd.

Address before: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Effective date of registration: 20201026

Address after: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right