一种访问控制列表ACL的实现方法及装置制造方法及图纸

技术编号:14785774 阅读:60 留言:0更新日期:2017-03-10 23:27
本发明专利技术实施例公开了一种访问控制列表ACL的实现方法,包括:步骤A、将从同一数据包中提取出的每一个待查找关键字划分为M个关键字段;步骤B、至少以M个关键字段中的第i个关键字段作为地址访问预设的M个规则表中的第i个规则表,获得第i个关键字段对应的规则节点类型;步骤C、当第i个关键字段对应的规则节点类型是叶子节点时,将第i个关键字段对应的规则编号确定为M个关键字段对应的待查找关键字的规则编号,转到执行步骤E;步骤D、当第i个关键字段对应的规则节点类型为中间节点或混合节点时,i取值加1,转到执行步骤B;步骤E、在确定待查找关键字的规则编号后,根据待查找关键字的规则编号,获得对应的动作。

【技术实现步骤摘要】

本专利技术涉及分组传输领域,尤其涉及一种访问控制列表ACL的实现方法及装置
技术介绍
随着网络技术的发展,越来越多的网络设备需要支持快速准确的报文分类,如安全网关、边缘路由器、核心路由器等。未来网络的发展趋势需要为用户提供更好的服务质量,而诸如防火墙、区分服务、虚拟专网VPN、基于策略的路由等提高服务质量的机制都是基于高效访问控制列表(ACL,AccessControlList)技术之上的。此外,随着光纤通信技术的发展,链路带宽和传输速率已不再成为问题,路由转发设备正在成为网络瓶颈,而ACL更是关键之关键。因此高效快速的实现ACL对于未来互联网的发展具有极其重要的意义。现行分组传输设备采用三态内容寻址存储器(TCAM,TernaryContentAddressableMemory)实现ACL。采用TCAM实现ACL的优点在于实现简单,但是TCAM也有许多不足的地方。首先,TCAM在同一时钟周期内将待查找的关键字和TCAM的每一个条目进行比较,导致功耗比较大;第二是TCAM器件成本比较高,价格昂贵。因此,现有技术中并不存在一种较为合适的ACL的实现方法。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种访问控制列表ACL的实现方法及装置,以提供一种新的实现ACL的方法,避免TCAM所导致的功耗大、成本高的问题。为达到上述目的,本专利技术的技术方案是这样实现的:第一方面,本专利技术实施例提供一种访问控制列表ACL的实现方法,包括:步骤A、将从同一数据包中提取出的每一个待查找关键字划分为M个关键字段,其中,M为大于等于1的整数;步骤B、至少以所述M个关键字段中的第i个关键字段作为地址访问预设的M个规则表中的第i个规则表,获得所述第i个关键字段对应的规则节点类型,其中,i=1、2、3、4、…、M,所述M个规则表对应于同一维度的规则;步骤C、当所述第i个关键字段对应的规则节点类型是叶子节点时,将所述第i个关键字段对应的规则编号确定为所述M个关键字段对应的待查找关键字的规则编号,转到执行步骤E;步骤D、当所述第i个关键字段对应的规则节点类型为中间节点或混合节点时,将i取值加1,转到执行步骤B;步骤E、在确定所述待查找关键字的规则编号后,根据所述待查找关键字的规则编号,获得所述待查找关键字的规则编号对应的动作。在上述方案中,当i=2、3、…、M时,在所述步骤B之后,所述方法还包括:当所述第i个关键字段对应的规则节点类型为无效节点,且所述第i-1个关键字段对应的规则节点类型为混合节点类型时,将所述第i-1个关键字段对应的规则编号确定为所述M个关键字段对应的待查找关键字的规则编号,转到执行步骤E。在上述方案中,当i=1时,所述步骤B,包括:以第1个关键字段作为地址访问预设的M个规则表中的第1个规则表。在上述方案中,当i=2、3、…、M时,所述步骤B,包括:以所述第i-1个关键字段的下一级索引和所述第i个关键字段为地址访问所述第i个规则表。在上述方案中,所述步骤D,包括:当所述第i个关键字段对应的规则节点类型为中间节点时,将i取值加1,转到执行所述步骤B;当所述第i个关键字段对应的规则节点类型为混合节点时,记录所述第i个关键字段对应的规则编号,并将i取值加1,转到执行所述步骤B。在上述方案中,所述方法还包括:将同一维度的规则对应的关键字分成M段;当所述关键字的长度等于第1个关键字段的长度时,将所述第1个关键字段作为地址读取第1个规则表,获取并管理对应的节点信息;当所述关键字的长度小于所述第1个关键字段的长度时,将本次的剩余字段进行扩充,得到关键字剩余字段,以所述关键字剩余字段为地址分别读取所述第1个规则表,获取并管理对应的节点信息,其中,所述本次的剩余字段为所述关键字中需要关心的关键字段;当所述关键字的长度大于所述第1个关键字段的长度时,将所述第1个关键字段作为地址读取所述第1个规则表,获取并管理对应的节点信息。在上述方案中,所述方法还包括:针对所述M个关键字段中的第i个关键字段,其中,i=2、3、…、M,依次执行以下步骤:计算前一次的差值与所述第i个关键字段长度的差值,其中,所述前一次的差值所述关键字中需要关心的关键字段长度与所述第i个关键字段长度的差值;当所述差值等于所述第i个关键字段的长度时,将所述第i-1个关键字段的下一级索引和所述第i个关键字段作为地址读取第i个规则表,获取并管理对应的节点信息;当所述差值小于所述第i个关键字段的长度时,将本次的剩余字段进行扩充,得到关键字剩余字段,以所述关键字剩余字段为地址分别读取所述第i个规则表,获取并管理对应的节点信息,其中,所述本次的剩余字段为所述关键字中需要关心的关键字段除去前i个关键字段之后剩余的字段;当所述差值大于所述第i个关键字段的长度时,将所述第i-1个关键字段的下一级索引和所述第i个关键字段作为地址读取所述第i个规则表,获取并管理对应的节点信息。在上述方案中,所述方法还包括:当配置规则完成更新之后,基于新的配置规则,更新M个备份规则表,其中,所述M个备份规则表与所述M个规则表一一对应;在所述M个备份规则表完成更新之后,切换至访问更新后的M个备份规则表,并更新所述M个规则表;在所述M个规则表完成更新之后,回切至访问更新后的M个备份规则表。在上述方案中,在所述步骤E之后,所述方法还包括:将所述每一个待查找关键字的规则编号对应的动作进行归并,获得所述数据包的ACL结果。第二方面,本专利技术实施例提供一种访问控制列表ACL的实现装置,包括:规则表模块、调度模块、访问模块、确定模块、循环模块、获得模块;其中,所述规则表模块,用于存储同一维度的规则所对应的M个规则表,M为大于等于1的整数;所述调度模块,用于将从同一数据包中提取出的每一个待查找关键字划分为M个关键字段;所述访问模块,用于至少以所述M个关键字段中的第i个关键字段作为地址访问预设的M个规则表中的第i个规则表,获得所述第i个关键字段对应的规则节点类型,其中,i=1、2、3、4、…、M;所述确定模块,用于当所述第i个关键字段对应的规则节点类型是叶子节点时,将所述第i个关键字段对应的规则编号确定为所述M个关键字段对应的待查找关键字的规则编号,触发所述获得模块;所述循环模块,用于当所述第i个关键字段对应的规则节点类型为中间节点或混合节点时,将i取值加1,触发所述访问模块;所述获得模块,用于在确定所述待查找关键字的规则编号后,根据所述待查找关键字的规则编号,获得所述待查找关键字的规则编号对应的动作。在上述方案中,当i=2、3、…、M时,所述确定模块,还用于当所述第i个关键字段对应的规则节点类型为无效节点,且第i-1个关键字段对应的规则节点类型为混合节点时,将所述第i-1个关键字段对应的规则编号确定为所述M个关键字段对应的待查找关键字的规则编号,触发所述获得模块。在上述方案中,当i=1时,所述访问模块,用于以第1个关键字段作为地址访问预设的M个规则表中的第1个规则表。在上述方案中,当i=2、3、…、M时,所述访问模块,用于以所述第i-1个关键字段的下一级索引和所述第i个关键字段为地址访问所述第i个规则表。在上述方案中,所述循环模块,用于当所述第i个关键字段对应的规则节点类型为中间节点时,将i取本文档来自技高网...
一种访问控制列表ACL的实现方法及装置

【技术保护点】
一种访问控制列表ACL的实现方法,其特征在于,包括:步骤A、将从同一数据包中提取出的每一个待查找关键字划分为M个关键字段,其中,M为大于等于1的整数;步骤B、至少以所述M个关键字段中的第i个关键字段作为地址访问预设的M个规则表中的第i个规则表,获得所述第i个关键字段对应的规则节点类型,其中,i=1、2、3、4、…、M,所述M个规则表对应于同一维度的规则;步骤C、当所述第i个关键字段对应的规则节点类型是叶子节点时,将所述第i个关键字段对应的规则编号确定为所述M个关键字段对应的待查找关键字的规则编号,转到执行步骤E;步骤D、当所述第i个关键字段对应的规则节点类型为中间节点或混合节点时,将i取值加1,转到执行步骤B;步骤E、在确定所述待查找关键字的规则编号后,根据所述待查找关键字的规则编号,获得所述待查找关键字的规则编号对应的动作。

【技术特征摘要】
1.一种访问控制列表ACL的实现方法,其特征在于,包括:步骤A、将从同一数据包中提取出的每一个待查找关键字划分为M个关键字段,其中,M为大于等于1的整数;步骤B、至少以所述M个关键字段中的第i个关键字段作为地址访问预设的M个规则表中的第i个规则表,获得所述第i个关键字段对应的规则节点类型,其中,i=1、2、3、4、…、M,所述M个规则表对应于同一维度的规则;步骤C、当所述第i个关键字段对应的规则节点类型是叶子节点时,将所述第i个关键字段对应的规则编号确定为所述M个关键字段对应的待查找关键字的规则编号,转到执行步骤E;步骤D、当所述第i个关键字段对应的规则节点类型为中间节点或混合节点时,将i取值加1,转到执行步骤B;步骤E、在确定所述待查找关键字的规则编号后,根据所述待查找关键字的规则编号,获得所述待查找关键字的规则编号对应的动作。2.根据权利要求1所述的方法,其特征在于,当i=2、3、…、M时,在所述步骤B之后,所述方法还包括:当所述第i个关键字段对应的规则节点类型为无效节点,且所述第i-1个关键字段对应的规则节点类型为混合节点类型时,将所述第i-1个关键字段对应的规则编号确定为所述M个关键字段对应的待查找关键字的规则编号,转到执行步骤E。3.根据权利要求1所述的方法,其特征在于,当i=1时,所述步骤B,包括:以第1个关键字段作为地址访问预设的M个规则表中的第1个规则表。4.根据权利要求1所述的方法,其特征在于,当i=2、3、…、M时,所述步骤B,包括:以所述第i-1个关键字段的下一级索引和所述第i个关键字段为地址访问所
\t述第i个规则表。5.根据权利要求1所述的方法,其特征在于,所述步骤D,包括:当所述第i个关键字段对应的规则节点类型为中间节点时,将i取值加1,转到执行所述步骤B;当所述第i个关键字段对应的规则节点类型为混合节点时,记录所述第i个关键字段对应的规则编号,并将i取值加1,转到执行所述步骤B。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:将同一维度的规则对应的关键字分成M段;当所述关键字的长度等于第1个关键字段的长度时,将所述第1个关键字段作为地址读取第1个规则表,获取并管理对应的节点信息;当所述关键字的长度小于所述第1个关键字段的长度时,将本次的剩余字段进行扩充,得到关键字剩余字段,以所述关键字剩余字段为地址分别读取所述第1个规则表,获取并管理对应的节点信息,其中,所述本次的剩余字段为所述关键字中需要关心的关键字段;当所述关键字的长度大于所述第1个关键字段的长度时,将所述第1个关键字段作为地址读取所述第1个规则表,获取并管理对应的节点信息。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:针对所述M个关键字段中的第i个关键字段,其中,i=2、3、…、M,依次执行以下步骤:计算前一次的差值与所述第i个关键字段长度的差值,其中,所述前一次的差值所述关键字中需要关心的关键字段长度与所述第i个关键字段长度的差值;当所述差值等于所述第i个关键字段的长度时,将所述第i-1个关键字段的下一级索引和所述第i个关键字段作为地址读取第i个规则表,获取并管理对应的节点信息;当所述差值小于所述第i个关键字段的长度时,将本次的剩余字段进行扩充,得到关键字剩余字段,以所述关键字剩余字段为地址分别读取所述第i个
\t规则表,获取并管理对应的节点信息,其中,所述本次的剩余字段为所述关键字中需要关心的关键字段除去前i个关键字段之后剩余的字段;当所述差值大于所述第i个关键字段的长度时,将所述第i-1个关键字段的下一级索引和所述第i个关键字段作为地址读取所述第i个规则表,获取并管理对应的节点信息。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:当配置规则完成更新之后,基于新的配置规则,更新M个备份规则表,其中,所述M个备份规则表与所述M个规则表一一对应;在所述M个备份规则表完成更新之后,切换至访问更新后的M个备份规则表,并更新所述M个规则表;在所述M个规则表完成更新之后,回切至访问更新后的M个备份规则表。9.根据权利要求1所述的方法,其特征在于,在所述步骤E之后,所述方法还包括:将所述每一个待查找关键字的规则编号对应的动作进行归并,获得所述数据包的ACL结果。10.一种访问控制列表ACL的实现装置,其特征在于,包括:规则表模块、调度模块、访问模块、确定模块、...

【专利技术属性】
技术研发人员:陈钦树郭继正王平
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1