一种访问控制列表规则匹配方法及系统的制作方法

文档序号:7925028阅读:179来源:国知局
专利名称:一种访问控制列表规则匹配方法及系统的制作方法
技术领域
本发明涉及一种网络交换技术,尤其涉及一种访问控制列表(Access Control List, ACL)规则匹配方法及系统。
背景技术
在通信领域,ACL是一种应用在交换设备上的技术。随着网络技术应用 的不断深入,ACL在安全接入,特定数据流监控等方面的应用越来越广泛, 已经成为交换设备中必不可少的重要技术之一。
现有ACL技术中,三态内容可寻址存储器(TCAM)规则匹配的宽度一 直是个棘手的问题。技术上TCAM的宽度可以做到很宽,但是由于TCAM价 格昂贵,而且ACL技术实际应用中对于超过TCAM长度的长规则匹配的需 求不是很多,基于TCAM的成本和ACL技术中长规则使用频率较低这两方 面考虑, 一般交换机的TCAM都做的不是很宽,可以满足大多数情况的ACL 需求即可。
但是,毕竟存在部分场合下需要长规则匹配,现在的芯片一般都无法实 现,比如对于IPV6,如果需要同时匹配源H>、目的IP、源介质访问控制(MAC ) 及目的MAC,再加上传输控制协议(TCP)的源端口号和目的端口号,现有 的交换芯片4艮难实现。虽然通过TCAM合并技术可以实现,但是灵活性很差, 资源浪费情况也很严重。以两块大小为512条的TCAM合并为例,合并后所 有的规则都变成了的两倍宽度长规则了,如果实际只需务使用2条长规则, 那么剩下510条本来可以实现510 x 2=1020条短规则,但是现在也只能实现 510的短规则了,造成了较大的资源浪费。
现在的交换芯片虽然能够实现ACL的长规则的匹配,但是资源浪费情况 比较严重,当然已有技术可以选择单倍宽度或者双倍宽度,但是灵活性比较 差,都有一些局限性比如每次TCAM操作后都需要进行碎片整理,长规则
TCAM的位置必须连续等等。

发明内容
本发明所要解决的技术问题是在于需要提供一种普通宽度TCAM上实现 2倍或者多倍宽度的ACL长规则匹配方法及系统,以节约TCAM资源。
为了解决上述技术问题,本发明首先提供了 一种访问控制列表规则匹配 方法,判断访问控制列表ACL规则的长度,将超过三态内容可寻址存储器 TCAM长度的ACL长规则拆分成若千条不超过所述TCAM长度的子规则, 对所述若干条子规则和/或不超过所述TCAM长度的ACL短规则分别进行 TCAM查找,完成所述长规则和/或短规则所规定的动作。
如上所述的方法中,将所述长规则拆分成若干条子规则时,各子规则可 以满足一个子规则的TCAM查找匹配到一个结果的互斥规则。
进一步地,可以将所述长规则拆分成尽量少的所述子规则。
如上所述的方法中,将所述长规则拆分成两条子规则时,可以对第一条 子规则进行第一次TCAM查找后输出报文类型标识,根据所述报文类型标识 对第二条子规则进行第二次TCAM查找。
如上所述的方法中,所述ACL规则中仅含所述短规则时,可以直接对所 述短规则进行TCAM查找;
所述ACL规则中含有所述长规则和短规则时,可以依次对每条子规则进 行TCAM查找,对所述短规则只进行一次TCAM查找。
为了解决上迷技术问题,本发明还提供了 一种访问控制列表规则匹配系 统,包括判断模块、拆分模块、查找模块及执行模块,其中
判断模块,用于判断访问控制列表ACL规则的长度;
拆分模块,与所述判断模块相连,将超过三态内容可寻址存储器TCAM 长度的ACL长规则拆分成若干条不超过TCAM长度的子规则;
查找模块,与所述判断才莫块及拆分模块相连,用于对所述子规则和/或不 超过所述TCAM长度的ACL短规则进行TCAM查找;及
执行模块,与所述查找模块相连,用于完成所述长规则和/或短规则所规 定的动作。
如上所迷的系统中,所迷拆分才莫块将所述长规则拆分成若干条子规则时,
各子规则可以满足一个子规则的TCAM查找匹配到一个结果的互斥规则。
进一步地,所述拆分模块可以将所述长规则拆分成尽量少的所述子规则。
如上所述的系统中,所述拆分才莫块将所述长规则拆分成两条子规则时, 所述查找模块可以对第 一条子规则进行第 一次TCAM查找后输出报文类型标 识,根据所述报文类型标识对第二条子规则进行第二次TCAM查找。
如上所述的系统中,所述ACL规则中仅含所述短规则时,所述查找模块 可以直接对所述短规则进行TCAM查找;
所述ACL规则中含有所述长规则和短规则时,所述查找模块可以依次对 每条子规则进行TCAM查找,对所述短规则只进行一次TCAM查找。
与现有技术相比,本发明采用拆分及多次查找的方式,在一块TCAM上 面实现了超过TCAM宽度的ACL匹配的方法,解决了长规则ACL匹配的问 题,节约了系统资源,减少了系统开销。


图1是本发明方法一实施例步骤示意图。
图2是本发明方法一应用实例的步骤示意图。
图3是本发明方法应用实例中最终TCAM使用情况示意图。
图4是本发明系统实施例的组成示意图。
具体实施例方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明 如何应用技术手段来解决技术问题,并达成技术效杲的实现过程能充分理解 并据以实施。
本发明采用以下技术方案,本发明实现ACL规则时候,对于超过TCAM
长度的ACL长规则,拆分成两条(或者多条)不超过TCAM长度的ACL子 规则,然后在同一块TCAM上面进行两次(或者多次)TCAM查找,第一次 TCAM查找如果有规则匹配,那么可以输出第 一次TCAM查找的报文类型标 识(classld),报文classId作为第二次TCAM查找的一个匹配字段,从而可 以在一块固定宽度的TCAM上面实现匹配差不多双倍TCAM宽度的规则匹 配。(增加查找的次数为N,可以实现差不多N倍TCAM宽度的规则匹配)。 这样在提高了 ACL的规则匹配宽度的同时,并没有增加TCAM的宽度,大 大节省了TCAM资源。在不含有长规则的情况下,只使能第一次查找,完成 没有超过TCAM长度的ACL短规则的查找,不会增加不必要的开销。
图1示出了本发明方法将一ACL长规则拆分成两部分的实施例,本实施 例主要包括以下步骤
步骤IIO,用户配置ACL规则,包括ACL长规则和/或ACL短规则,并 且指定ACL规则绑定到端口 ,此时不写硬件;
步骤120,根据TCAM宽度判断ACL规则中是否存在超过TCAM宽度 的ACL长规则,是则转步骤130,否则转步骤160;
步骤130,根据ACL长规则的内容将ACL长规则拆分成两部分,第一部 分进行第一次TCAM查找,输出报文类型标识,第二部分进行第二次TCAM 查找,执行ACL长规则所规定的动作;
步骤140,对长规则的第一部分,写基于端口的ACL配置硬件表,配置 第一次TCAM查找需要匹配的访问控制列表的硬件标志(ACL—Nol),把第 一次查找需要的关键字(key )和掩码(mask)以及响应的执行动作写入TCAM 中,进行第一次TCAM查找,获得类型标识;
步骤150,判断是否需要二次TCAM查找,需要则配置第二次查找TCAM 需要匹配的访问控制列表的硬件标志(ACL_No2),把第二次查找需要的关 键字(key)和掩码(mask)以及响应的执行动作写入TCAM中,使能并进 行第二次TCAM查找,执行规则所规定的动作,结束。
步骤160,判断ACL规则中是否还有不需要拆分的ACL短规则,是则转 步骤170,否则结束。
步骤170,对ACL短规则进行TCAM查找,执行该ACL短规则所规定 的动作,结束。
经过以上步骤,进入被设置端口的报文可以在一块普通宽度的TCAM上 面进行普通宽度的ACL或者差不多双倍TCAM宽度的长规则的ACL。
上述实施例中,对于ACL短规则,仅执行第二次查找执行该短规则所规 定的动作。如果所有规则均为短规则,则只进行一次查找,执行各短规则所 规定的动作。
上述实施例实现了普通宽度的TCAM上面长于TCAM宽度但较两倍 TCAM宽度短的ACL长规则。对于更长的ACL长规则,还可以进行两次以 上的拆分。作为一个基本的拆分原则,拆分后的每条子规则均不超过TCAM 宽度,且拆分后的各子规则之间满足互斥条件:,即一个子规则的TCAM查找 只能匹配到一个结果。除此之外,考虑到查找效率,另一个原则是拆分后所 进行的TCAM查找次数要尽量少,也即对同一条ACL长规则,满足各子规 则互斥的前提下,拆分后的子规则数目尽量少。
对于长规则与短规则混合在一起的情况,短规则只进行最后一次查找并 执行相应的动作。长规则在拆分成若千条子规则之后,最后查找的一条子规 则,执行该长规则所规定的动作。
图2示出了本发明方法一个具体的应用实例,在本应用实例中,所用的 TCAM宽度为210比特(bit) , TCAM大小为512条,TCAM开始为空。交 换机(或者路由器)的端口 1需要绑定一个ACL,此ACL有2条规则
头见则1:允许源IP为0000: 0000: 0000: O(JOO: 0000: 0000: 0000: 0001、目 的IP为0000: 0000: 0000: 0000: 0000: 0000: 0000: 0002、源MAC为 00.00.00.00.00.01 、目的MAC为00.00.00.00.00.02的IPV6报文上送CPU。
规则2:丟弃所有其它报文。
如图2所示的本应用实例,主要包括以下步骤
步骤210,规则1中,至少需要匹配352 bit, TCAM宽度为210个bit, 所以此ACL规则为 一长规则,需要对其进行拆分并进行两次TCAM查找;
步骤220,写ACL硬件配置表,具体包括以下步骤
步骤222,对该长规则进行规则拆分,也即将规则l拆分为两个子规则, 第一个子规则为源IP+源MAC,第二个子规则为目的IP+目的MAC + classld;
步骤224,第一次查找匹配源IP+源MAC,写到TCAM序号1中,匹 配内容为ACL—No =10,源IP为0000: 0000: 0000: 0000: 0000: 0000: 0000: 0001,源MAC为00.00.00.00.00.01;匹配的结果为分配到净艮文的classid为 100;
步骤226,对该长规则的第二次查找,匹配目的IP+目的MAC + classid, 写到TCAM序号2中,匹配内容为ACL_No =20,目的IP为0000: 0000: 0000: 0000: 0000: 0000: 0000: 0002,目的MAC为00.00.00. 00.00.02,报文的classid 为100,规则匹配的执行动作为报文上送CPU;
步骤228,规则2是短规则,不需要拆分,直接进行查找,由于规则2 在TCAM中必须写在规则1的后面,所以规则2写在TCAM序号3中,匹 配内容为ACL—No =20,规则匹配的动作为丢弃报文;
此时关于ACL的硬件设置已经全部完成,如图3所示,端口 1的ACL 配置表为
端口号 第一次查找ACL_Nol 第二次查找 ACL一No2
1 使能 10 使能 20
图3所示的ACL设置中,其余TCAM块为空;
步骤230,报文进入端口 l,查找端口 ACL配置硬件表,发现第一次TCAM 查找使能,由于第一次TCAM查找的ACL—Nol配置为10,所以只匹配TCAM 中ACL—No = 10的TCAM块(即图3中TCAM序号1块),如果进来的 才艮文源IP为0000: 0000: 0000: 0000: 0000: 0000: 0000: 0001,源MAC为 00.00.00.00. 00.01,则为报文分配到报文的classid为100;
步蹕240:查找端口 ACL配置石更件表,发现第二次TCAM查找使能,所 以继续进行第二次的TCAM查找,由于第二次TCAM查找的ACL—No2配置 为20,所以只匹配TCAM中ACL—No = 20的TCAM块(即图3中TCAM 序号为2, 3的块);
步骤250,如果classld = 100 (第一次TCAM查找的结果),目的IP 为0000: 0000: 0000: 0000: 0000: 0000: 0000: 0002,目的MAC为00.00.00.00. 00.02,则为符合规则1的报文;
步骤260,根据规则2,将符合规则1的报文则上送CPU,否则报文被丢弃。
经过上述步骤,通过两次TCAM查找在一块普通宽度的TCAM上面实 现了长规则匹配的ACL功能。
图4为本发明系统一实施例的组成示意图,该系统实施例主要包括判断 模块410、拆分模块420、查找模块430及执行模块440,其中
判断模块410,用于判断ACL规则的长度;
拆分4莫块420,与所述判断;f莫块410相连,将ACL长规则拆分成若千条 不超过TCAM长度的子规则;
查找模块430,与所述判断模块410及拆分模块420相连,用于对所述 子规则和/或ACL短规则进行TCAM查找;及
执行模块440,与所述查找模块430相连,用于完成所述长规则和/或短 规则所规定的动作。
其中,拆分模块420将长规则拆分成满足互斥条件的若干条子规则,拆 分后的子规则,数目尽量少,以提高效率。
拆分模块420将所述长规则拆分成两条子规则时,查找模块430对第一 条子规则进行TCAM查找后输出报文类型标识,根据报文类型标识对第二条 子规则再进行TCAM查找。
如果ACL规则中仅含短规则时,则查找模块430直接对短规则进行查找; 如果ACL规则中既含有长规则又含有短规则时,查找模块430对长规则拆分 后,依次对每条子规则进行查找,而对短规则只进行一次查找。
现有技术中通过芯片实现ACL,为了成本和绝大多数应用场合考虑, TCAM的宽度一般都不会做得很宽,所以一般无法进行长规则的ACL匹配, 虽然有些芯片支持几个TCAM合并的技术,但是灵活性比较差,而且会造成
比较大的资源浪费。本发明与现有技术相比较,通过拆分完成了在一块TCAM 上面实现超过TCAM宽度的ACL匹配的方法,解决了长规则ACL匹配的问 题,也不会造成不必要的资源浪费和系统的其它开销。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本 发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内 的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的 形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所 附的权利要求书所界定的范围为准。
权利要求
1、一种访问控制列表规则匹配方法,其特征在于,判断访问控制列表ACL规则的长度,将超过三态内容可寻址存储器TCAM长度的ACL长规则拆分成若干条不超过所述TCAM长度的子规则,对所述若干条子规则和/或不超过所述TCAM长度的ACL短规则分别进行TCAM查找,完成所述长规则和/或短规则所规定的动作。
2、 如权利要求l所述的方法,其特征在于将所述长规则拆分成若干条子规则时,各子规则满足一个子规则的 TCAM查找匹配到一个结果的互斥规则。
3、 如权利要求2所述的方法,其特征在于 将所述长规则拆分成尽量少的所述子规则。
4、 如权利要求l所述的方法,其特征在于将所述长规则拆分成两条子规则时,对第一条子规则进行第一次TCAM 查找后输出报文类型标识,根据所述报文类型标识对第二条子规则进行第二 次TCAM查找。
5、 如权利要求l所述的方法,其特征在于所迷ACL规则中仅含所迷短规则时,直接对所述短规则进行TCAM查找;所述ACL规则中含有所述长规则和短规则时,依次对每条子规则进行 TCAM查找,对所述短规则只进行一次TCAM查找。
6、 一种访问控制列表规则匹配系统,其特征在于,包括判断才莫块、拆分 模块、查找模块及执行模块,其中判断模块,用于判断访问控制列表ACL规则的长度;拆分模块,与所述判断才莫块相连,将超过三态内容可寻址存储器TCAM 长度的ACL长规则拆分成若干条不超过TCAM长度的子规则; 查找4莫块,与所述判断模块及拆分模块相连,用于对所述子规则和/或不超过所述TCAM长度的ACL短规则进行TCAM查找;及执行模块,与所述查找模块相连,用于完成所述长规则和/或短规则所规 定的动作。
7、 如权利要求6所述的系统,其特征在于所述拆分模块将所述长规则拆分成若干条子规则时,各子规则满足一个 子规则的TCAM查找匹配到一个结果的互斥规则。
8、 如权利要求7所述的系统,其特征在于 所述拆分模块将所述长规则拆分成尽量少的所述子规则。
9、 如权利要求6所述的系统,其特征在于所述拆分模块将所述长规则拆分成两条子规则时,所述查找模块对第一 条子规则进行第一次TCAM查找后输出报文类型标识,根据所述报文类型标 识对第二条子规则进行第二次TCAM查找。
10、 如权利要求6所述的系统,其特征在于所述ACL规则中仅含所述短规则时,所述查找模块直接对所述短规则进 行TCAM查找;所述ACL规则中含有所述长规则和短规则时,所述查找模块依次对每条 子规则进行TCAM查找,对所述短规则只进行一次TCAM查找。
全文摘要
本发明公开了一种访问控制列表规则匹配方法及系统,以节约TCAM资源。该方法首先判断访问控制列表ACL规则的长度,然后将超过三态内容可寻址存储器TCAM长度的ACL长规则拆分成若干条不超过所述TCAM长度的子规则,对所述若干条子规则和/或不超过所述TCAM长度的ACL短规则分别进行TCAM查找,完成所述长规则和/或短规则所规定的动作。本发明解决了长规则ACL匹配的问题,节约了系统资源,减少了系统开销,可应用在网络交换设备上。
文档编号H04L12/56GK101364947SQ200810212310
公开日2009年2月11日 申请日期2008年9月8日 优先权日2008年9月8日
发明者潘庭山 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1