一种访问控制列表ACL的实现方法及装置与流程

文档序号:12182768阅读:来源:国知局

技术特征:

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个关键字段为地址访问所 述第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个 规则表,获取并管理对应的节点信息,其中,所述本次的剩余字段为所述关键字中需要关心的关键字段除去前i个关键字段之后剩余的字段;

当所述差值大于所述第i个关键字段的长度时,将所述第i-1个关键字段的下一级索引和所述第i个关键字段作为地址读取所述第i个规则表,获取并管理对应的节点信息。

8.根据权利要求1所述的方法,其特征在于,所述方法还包括:

当配置规则完成更新之后,基于新的配置规则,更新M个备份规则表,其中,所述M个备份规则表与所述M个规则表一一对应;

在所述M个备份规则表完成更新之后,切换至访问更新后的M个备份规则表,并更新所述M个规则表;

在所述M个规则表完成更新之后,回切至访问更新后的M个备份规则表。

9.根据权利要求1所述的方法,其特征在于,在所述步骤E之后,所述方法还包括:

将所述每一个待查找关键字的规则编号对应的动作进行归并,获得所述数据包的ACL结果。

10.一种访问控制列表ACL的实现装置,其特征在于,包括:规则表模块、调度模块、访问模块、确定模块、循环模块、获得模块;其中,

所述规则表模块,用于存储同一维度的规则所对应的M个规则表,M为大于等于1的整数;

所述调度模块,用于将从同一数据包中提取出的每一个待查找关键字划分为M个关键字段;

所述访问模块,用于至少以所述M个关键字段中的第i个关键字段作为地址访问预设的M个规则表中的第i个规则表,获得所述第i个关键字段对应的规则节点类型,其中,i=1、2、3、4、…、M;

所述确定模块,用于当所述第i个关键字段对应的规则节点类型是叶子节点时,将所述第i个关键字段对应的规则编号确定为所述M个关键字段对应的待查找关键字的规则编号,触发所述获得模块;

所述循环模块,用于当所述第i个关键字段对应的规则节点类型为中间节点或混合节点时,将i取值加1,触发所述访问模块;

所述获得模块,用于在确定所述待查找关键字的规则编号后,根据所述待查找关键字的规则编号,获得所述待查找关键字的规则编号对应的动作。

11.根据权利要求10所述的装置,其特征在于,当i=2、3、…、M时,所述确定模块,还用于当所述第i个关键字段对应的规则节点类型为无效节点,且第i-1个关键字段对应的规则节点类型为混合节点时,将所述第i-1个关键字段对应的规则编号确定为所述M个关键字段对应的待查找关键字的规则编号,触发所述获得模块。

12.根据权利要求10所述的装置,其特征在于,当i=1时,所述访问模块,用于以第1个关键字段作为地址访问预设的M个规则表中的第1个规则表。

13.根据权利要求10所述的装置,其特征在于,当i=2、3、…、M时,所述访问模块,用于以所述第i-1个关键字段的下一级索引和所述第i个关键字段为地址访问所述第i个规则表。

14.根据权利要求10所述的装置,其特征在于,所述循环模块,用于当所述第i个关键字段对应的规则节点类型为中间节点时,将i取值加1,触发所述访问模块;还用于当所述第i个关键字段对应的规则节点类型为混合节点时,记录所述第i个关键字段对应的规则编号,并将i取值加1,触发所述访问模块。

15.根据权利要求10所述的装置,其特征在于,所述装置还包括:规则表生成模块,用于将同一维度的规则对应的关键字分成M段;当所述关键字的长度等于第1个关键字段的长度时,将所述第1个关键字段作为地址读取第1个规则表,获取并管理对应的节点信息;当所述关键字的长度小于所述第1个关键字段的长度时,将本次的剩余字段进行扩充,得到关键字剩余字段,以所述关键字剩余字段为地址分别读取所述第1个规则表,获取并管理对应的节点信息,其中,所述本次的剩余字段为所述关键字中需要关心的关键字段;当所述关键字的长度大于所述第1个关键字段的长度时,将所述第1个关键字段作为地址读取所述第1个规则表,获取并管理对应的节点信息。

16.根据权利要求15所述的装置,其特征在于,所述规则表生成模块,用于针对所述M个关键字段中的第i个关键字段,计算前一次的差值与所述第i个关键字段长度的差值,其中,所述前一次的差值所述关键字中需要关心的关键字段长度与所述第i个关键字段长度的差值,i=2、3、…、M;当所述差值等于所述第i个关键字段的长度时,将所述第i-1个关键字段的下一级索引和所述第i个关键字段作为地址读取第i个规则表,获取并管理对应的节点信息;当所述差值小于所述第i个关键字段的长度时,将本次的剩余字段进行扩充,得到关键字剩余字段,以所述关键字剩余字段为地址分别读取所述第i个规则表,获取并管理对应的节点信息,其中,所述本次的剩余字段为所述关键字中需要关心的关键字段除去前i个关键字段之后剩余的字段;当所述差值大于所述第i个关键字段的长度时,将所述第i-1个关键字段的下一级索引和所述第i个关键字段作为地址读取所述第i个规则表,获取并管理对应的节点信息。

17.根据权利要求10所述的装置,其特征在于,所述规则表模块,还用于当配置规则完成更新之后,基于新的配置规则,更新M个备份规则表,其中,所述M个备份规则表与所述M个规则表一一对应;

相应地,所述访问模块,还用于在所述M个备份规则表完成更新之后,切换至访问更新后的M个备份规则表,并更新所述M个规则表;在所述M个规则表完成更新之后,回切至访问更新后的M个备份规则表。

18.根据权利要求10所述的装置,其特征在于,所述装置还包括:归并模块,用于在多个所述获得模块获得所述每一个待查找关键字的规则编号对应的动作之后,将所述动作进行归并,获得所述数据包的ACL结果。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1