查找访问控制列表的方法及装置的制造方法

文档序号:8265538阅读:322来源:国知局
查找访问控制列表的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及网络传输技术领域,尤其涉及查找访问控制列表(ACL,Access Control List)的方法及装置。
【背景技术】
[0002] 随着网络的快速发展,对网络设备的需求从性能和功能上提出了更高的要求。其 中,性能方面:网络设备常用的端口从10M、100M、1G、10G到目前的40G/100G,在10几年的 时间提升了几千、几万倍。功能需求体现多个方面,比较典型的有:服务质量(Q〇S,Quality of service)用来保证用户的基本带宽权益;为了应对越来越多的网络威胁,对在网络中传 输的报文进行报文过滤(filter)等安全检查;策略路由(PBR,Policy-based Routing),报 文不是按传统的查路由表转发,而是根据报文的分类规则进行转发,从而实现特殊定制转 发;网络地址转换(NAT,Network address translation),在IPv4地址数量较少,并且为了 屏蔽企业内部的网络规划而在网关上采取的一种地址端口转换技术,NAT是路由器上常用 的一个业务。
[0003] 上述需求都依赖对报文分类的功能,即通常说的ACL。ACL是由一系列的匹配规则 (rule)组成,一个ACL中rule的条数称为ACL的容量。每个rule又由多个字段(field) 组成。field有多种类型,每种field类型有自己的比较方法,只有一条规则的所有字段都 和输入的查找关键字(key)的对应部分都匹配了,这条规则才算匹配成功。常见的field类 型如下:
[0004] 1、数据掩码(DM,Data Mask);
[0005] 2、范围。
[0006] DM类字段包含数据(data)和掩码(mask)两部分,这两部分与查找key对应的位 的位宽相同。只有当M中的bit为1时,D中对应的bit位才参与和查找key中对应的bit 位的比较。
[0007] t匕如,当 D=b00101100,M=bl0100101 时,输入查找 key :key=bl0111100 时不命中, key=b01111100 时命中。
[0008] 范围字段是指该字段的取值是在一定的数据集合中的成员,包括范围或逻辑比 较。字段的位宽与查找key对应的位宽相同。比如,TCP port={l,2, 5-7, 11,19},当key对 应的字段是1或2、5、6、7、11、19时表示匹配,而当key对应的字段是8时不匹配。范围类 字段比较典型的应用是传输控制协议(TCP, Transferring Control Protocol)/用户数据 报协议(UDP,UserDatagram Protocol)端口号和IP报文长度。
[0009] 对ACL的匹配过程就是对一系列的规则进行匹配,从匹配成功的规则中选优先级 最高的一条作为查找结果。
[0010] ACL的查表技术有多种,比较典型的如下:
[0011] 1、软件查找方法。
[0012] 逐条匹配ACL规则,满足一定条件(比如匹配成功了)就不再继续匹配。这种方法 实现简单,效率低,没有严格的容量限制:容量越大,查找性能越低。
[0013] 2、硬件芯片查找。
[0014] 通过专用的硬件芯片,比如三态内容寻址存储器(TCAM,Ternary ContentAddressable Memory),来实现ACL的匹配。这种方式查找性能最高,但容量受硬件 限制,功能固定,不能扩展,成本高,功耗大。
[0015] 针对高性能设备,对ACL的容量和性能都有很强的要求。尤其是对多种业务同时 存在需求时,比如对QOS和包过滤同时使能时,针对每个报文要做两次ACL查找。对IOOG 端口来说,64字节的以太网报文,其线速(最高线路速率)流量时大约是150MPPS (包每秒), 这是当前高端设备比较典型的需求。随着时间的推移,这个速率还会继续成倍地提升。另 夕卜,如果要满足多个功能需求,每秒中要完成的查找次数就要翻多番。比如每个报文做QOS 和包过滤的ACL查找,每秒钟要查2X 150M次=300M次。
[0016] 使用TCAM等专用ASIC芯片是比较流行的技术方案。典型的高端TCAM芯片可以 完成大约每秒300M次查找,一些芯片可以实现两次或四次并行查找。但是,专用ASIC芯 片,比如TCAM,要实现并行查找,是通过牺牲容量来实现的。即把需要并行的ACL复制成多 个表,然后对这些表并行查找。对于本来容量就很小的TCAM来说,如果再为了查找多个结 果而成倍地降低表容量,很多情况下在实现方案上是不可行的。
[0017] 使用FPGA等可编程器件,通过算法方式查找ACL,要实现多个业务并行查找,有如 下两种方式:
[0018] -、将多个业务的ACL拆分成多个表。多个表并行查找。
[0019] 二、提升查找频率,即对一个表,每个包实现多次查找。
[0020] 其中,第一种方式同样需要消耗多份硬件资源,硬件资源的提升会导致芯片成本 的急剧上升,同时芯片的最大规格是有限的,达到一定规模后无法通过提高芯片资源的方 法提高查找次数,所以同样存在表容量和查找次数相矛盾的问题。第二种方式受芯片频率 的硬件限制,无法根据多业务的同时查找要求来实现几倍的查找频率提升。

【发明内容】

[0021] 本发明提供查找ACL的方法及装置,以提高查找ACL的效率。
[0022] 本发明的技术方案是这样实现的:
[0023] -种查找访问控制列表ACL的方法,该方法包括:
[0024] 在ACL表中的每条ACL规则上标记该规则适用的所有业务类型;
[0025] 当接收到一个报文时,确定对该报文要执行的所有业务类型;
[0026] 在ACL表中查找满足如下条件的ACL规则:该规则适用的业务类型与对该报文要 执行的所有业务类型部分或全部匹配;
[0027] 对于满足条件的任一 ACL规则,将该报文的查找关键字key与该ACL规则的对应 字段进行匹配,若匹配上,则确定该ACL规则为与该报文的上述匹配的各业务类型对应的 ACL规则;
[0028] 当对该ACL表查找完毕时,得到对该报文要执行的所有业务类型对应的ACL规则, 按照各ACL规则对该报文执行对应业务处理。
[0029] 所述在每条ACL规则上标记该规则适用的所有业务类型之前进一步包括:
[0030] 当有多类业务配置了内容相同的ACL规则时,将该多条ACL规则合并成一条规则。
[0031] 当判定报文的查找关键字key与该ACL规则的对应字段匹配上之后进一步包括:
[0032] 对于匹配的任一业务类型,判断该ACL规则的优先级是否高于记录的与该报文的 该业务类型对应的命中ACL规则的优先级,若是,则以该ACL规则的编号、优先级更新记录 的与该报文的该业务类型对应的命中ACL规则的编号、优先级;其中,对于该报文的各业务 类型,初始化该业务类型的命中ACL规则的编号为小于任一 ACL规则编号的值,优先级为低 于任一 ACL规则优先级的值;
[0033] 且,所述当对该ACL表查找完毕时,得到对该报文要执行的所有业务类型对应的 ACL规则包括:
[0034] 当对ACL表查找完毕时,根据记录的与对该报文要执行的各业务类型对应的命中 ACL规则的编号,得到对该报文要执行的所有业务类型对应的ACL规则,根据各ACL规则对 该报文执行对应的业务处理。
[0035] 所述业务包括:策略路由PBR、服务质量Q0S、报文过滤、网络地址转换NAT中的一 种或任意组合。
[0036] 一种查找ACL的装置,该装置包括:
[0037] ACL配置模块:配置ACL表,在ACL表中的每条ACL规则上标记该规则适用的所有 业务类型;
[0038] 查找模块:当接收到一个报文时,确定对该报文要执行的所有业务类型;在ACL表 中查找满足如下条件的ACL规则:该规则适用的业务类型与对该报文要执行的业务类型部 分或全部匹配;对于满足条件的任一 ACL规则,将该报文的查找关键字key与该ACL规则的 对应字段进行匹配,若匹配上,则确定该ACL规则为与该报文的上述匹配的各业务类型对 应的ACL规则;当对该ACL表查找完毕时,得到对该报文要执行的所有业务类型对应的ACL 规则,按照各ACL规则对该报文执行对应业务处理。
[0039] 所述ACL配置模块进一步用于,当有多类业务配置了内容相同的ACL规则时,将该 多条ACL规则合并成一条规则。
[0040] 所述查找模块进一步用于,当判定报文的查找关键字key与该ACL规则的对应字 段匹配上之后,对于匹配的任一业务类型,判断该ACL规则的优先级是否高于记录的与该 报文的该业务类型对应的命中ACL规则的优先级,若是,则以该ACL规则的编号、优先级更 新记录的与该报文的该业务类型对应的命中ACL规则的编号、优先级,其中,对于该报文的 各业务类型,初始化该业务类型的命中ACL规则的编号为小于任一 ACL规则编号的值,优先 级为低于任一 ACL规则优先级的值;且,当对ACL表查找完毕时,根据记录的与对该报文要 执行的各业务类型对应的命中ACL规则的编号,得到对该报文要执行的所有业务类型对应 的ACL规则,根据各ACL规则对该报文执行对应的业务处理。
[0041] 可见,本发明中,通过将适用不同业务的ACL规则合并,并在ACL规则上标记其适 用的业务类型,从而只需要查找一次ACL表,就可以得出多类业务的ACL命中结果,提高了 查找效率;同时,本发明可以减少ACL表项复制,减少芯片资源的浪费。
【附图说明】
[0042] 图1为本发明实施例提供的查找ACL的方法流程图;
[0043] 图2为本发明实施例提供的查找ACL的装置的组成示意图;
[0044] 图3为本发明又一实施例提供的查找ACL的装置的组成示意图。
【具体实施方式】
[0045] 下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0046] 图1为本发明实施例提供的查找ACL的方法流程图,如图1所示,其具体步骤如 下:
[0047] 步骤101 :针对使用ACL表的任一网络设备,若有多类业务同时配置了内容相同的 ACL规则,则将该多条ACL规则合并成一条ACL规则;在ACL表中的每条ACL规则上标记该 ACL规则适用的所有业务类型。
[0048] ACL表由ACL规则组成。
[0049] 另外,若该网络设备上存在针对不同业务的多张 ACL表,则首先将该多张 ACL表合 并成一张 ACL表。
[0050] 例如:设一个网络设备上共有4张 ACL表,每张表对应一类业务,这四类业务为: PBR、Q0S、包过滤(filter)、NAT,则将该4张 ACL表合并成一张 ACL表,并引入一个4比特 (bit)的业务字段,每个b
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1