改进的用于路由器的访问控制列表机制的制作方法

文档序号:7600017阅读:186来源:国知局
专利名称:改进的用于路由器的访问控制列表机制的制作方法
技术领域
本发明涉及通信系统中的路由器接口,尤其涉及与这种接口相关的访问控制列表。
背景技术
通信系统中的网际路由器在线路卡上的接口接收网际协议(IP)分组。一个路由器包括许多线路卡,每一个线路卡可以有多个接口。典型地,每一个接口都有一个存储在三态内容寻址存储器(TCAM)内的线路卡上的相关访问控制列表(ACL)。ACL是一组应用于IP分组的规则,以便过滤不想要的分组,或者执行其他有关分组的操作,诸如计数或者复制。每个规则包括一个密钥和一个操作。当一个IP分组经由一个接口到达时,路由器从该分组中提取特定字段,以形成一个密钥,并且查找与接口相关的ACL以获得具有匹配密钥的规则。如果找到规则,则滤波器将与该规则相关的操作应用到该分组。
接口可以有相同的规则组。一些路由器利用这一点来简化配置和故障诊断,并且提高稳定性。规则组可在ACL之间复制。然而,一旦ACL被装载入TCAM,每个接口的每个ACL的每个规则就分别被存储和访问。因此,没有节省TCAM存储空间。其他的路由器有一定改进,是在两个或者多个接口之间共享一个单独的ACL。虽然这有些减少所需TCAM存储空间量,但这也只在接口共有所有规则的情况下才是可能的。
TCAM存储容量的提高没有访问速率的提高发展得快。由于与TCAM相关的空间和功率限制以及TCAM的成本,因此将每个线路卡上的TCAM的数量和尺寸保持在最小值是更好的。在一些情况下,这可能是困难的,因为路由器通常支持数百个接口以及数百个ACL,需要大的TCAM存储空间。最小化存储的规则总数的线路接口卡允许使用更少或者更小的TCAM,从而节省了空间和功率。可选择地,对于相同的空间和功率使用,这种卡能够支持更多的规则。

发明内容
根据本发明的一个方面,提供了一种方法,用于确定在数据分组路由器的第一接口到达的数据分组上应用的规则。至少两组规则与所述第一接口相关,其中至少一组规则是还与第二接口相关的共享规则组。确定所述数据分组的密钥。查找所述至少两组规则,以获得至少一个匹配所述密钥的规则。
根据本发明的另一个方面,提供了一种方法,用于在数据分组路由器中提供安全,其中在所述数据分组路由器,数据分组到达第一接口。至少两组规则与所述第一接口相关,其中至少一组规则是还与第二接口相关的共享规则组,所述至少两组规则中的每一个规则都有一个相关的操作。确定所述数据分组的密钥。查找所述至少两组规则,以获得至少一个匹配所述密钥的规则。如果找到至少一个匹配所述密钥的规则,则将与所述至少一个规则的每一个规则相关的操作应用到所述数据分组。
提供一种用于实现本发明方法的线路卡。本发明的方法还可以作为指令存储在计算机可读介质中。
本发明的方法和线路接口卡允许在接口之间共享规则,同时还允许使用单个接口卡的特定规则。通过在接口之间共享规则而不仅是复制规则,节省了存储器的存储空间(如TCAM),从而减少了线路卡的成本和功率消耗。


通过以下结合附图的优选实施例的详细描述,本发明的特征和优点将变得更加清楚,其中图1是根据本发明的一个实施例的路由器的框图;图2是图1中接口卡和ACL之间的关系举例的框图;图3是根据本发明的一个实施例的方法流程图,其中图1的滤波器采用该方法访问ACL内的规则。
应当注意到,在附图中,同样的特征具省相同的标记。
具体实施例方式
参考图1,图中示出了根据本发明的优选实施例的路由器10。路由器10包括线路卡12。线路卡12包括四个网际协议(IP)分组可到达的接口14,16,18和20。线路卡12还包括三态内容寻址存储器(TCAM)24。该TCAM存储多个访问控制列表(ACL)。至少一个ACL是特定ACL 26,至少一个ACL是共享ACL 28。每个接口与至少一个ACL相关,如下所述。
线路卡12还包括滤波器34。对于每个IP分组,滤波器34从IP分组包头中提取特定字段以构造密钥,在与IP分组到达的接口相关的ACL中查找与从IP分组中获得的密钥相对应的规则,并执行与任何找到的规则相关的操作。滤波器34包括用于定位和应用与收到的IP分组对应的规则的指令,并且优选地,指令采用在处理器上运行的软件的形式。更一般地,滤波器可以包括采用处理器内的软件或者硬件的任意组合形式的指令,该处理器包括集成电路内的硬件。处理器不需要是单个设备,但是指令最好位于多于一个的设备上。如果采用软件的形式,指令可以存储在计算机可读介质上。
每个特定ACL 26与单独一个接口相关,并且每个接口可以与对应的特定ACL相关。每个特定ACL包括其对应的接口特有的规则。这些规则可以包括相关的操作,诸如分组拒绝,分组接受,分组计数和分组复制。每个共享ACL 28与至少两个接口相关,并且每个接口与至少一个共享ACL相关。每个共享ACL 28包括一些或者所有接口共有的规则。参考图2,示出了接口和ACL之间的关系举例。每个接口具有一个相关的特定ACL 26。两个接口14和16与一个共享ACL 28a相关,并且所有四个接口与一个共享ACL 28b相关。每个特定ACL 26包括可以应用于在对应接口到达的IP分组的规则。共享ACL 28a包括可以应用于在相关的两个接口14和16中的任意一个到达的IP分组的规则。共享ACL 28b包括可以应用于在任意一个接口到达的IP分组的规则。
典型地,由于多数接口具有的与至少一个其他接口共有的规则比特定用于该接口的规则多,因此可以实现TCAM存储量的有效节省,也能实现扩大缩放(scaling)效益。例如,考虑每个接口75个和其他接口共有的规则,并有25个特定用于该接口的规则的情况,并且假定有100个接口。如果每个接口有自己唯一的ACL,则必须提供可存储100个具有100个规则的表,或者10000个规则的TCAM存储量。通过利用共享ACL,并且通过允许用于一个接口的规则可以存储在超过一个的ACL中,TCAM存储量可以为只有一个具有75个规则的表和100个具有25个规则的表,或者全部2575个规则。
返回图1,路由器10还包括多个其他的线路卡36,其细节在图1中未示出。每一个线路卡36都类似于线路卡12,包括多个接口,滤波器,TCAM和多个ACL,尽管线路卡之间的ACL的数量可以不同。
参考图3,图中示出了根据本发明的一个实施例的恢复和应用用于IP分组的规则的方法。在步骤50,一个IP分组到达接口14,16,18和20中的一个。该IP分组具有IP包头和传输控制协议(TCP)报头。在步骤52,滤波器34从IP分组的IP包头和TCP报头内的信息中确定用于该分组的密钥。密钥可以从诸如IP源地址,IP目的地址,ICMP类型/代码,协议数量,TCP/UDP源端口以及TCP/UDP目的端口这样的信息中确定。
滤波器34包括接口查询表,用于确定哪个ACL或者哪些ACL将被查找。在步骤54,滤波器34在与接口相关的ACL内查找匹配该密钥的规则。如果在步骤56找到一个规则,则在步骤58,滤波器将与该规则相关的操作应用到该IP分组。这样的操作例子包括分组拒绝,接受分组,计数分组和复制分组。典型地,有至少两个与该接口相关的ACL,尽管在线路卡上可以有多个只与一个ACL相关的接口。如果在步骤56没有找到一个规则,或者如果找到规则,而一旦与该规则相关的操作已经在步骤58被应用了,那么在步骤60,滤波器34确定是否存在另一个与该接口相关的ACL。如果在步骤60,滤波器34确定另一个与该接口相关的ACL存在,则返回步骤54,滤波器34在该ACL内查找匹配该密钥的规则。如果在步骤60,滤波器34确定另一个与该接口相关的ACL不存在,则滤波器已经完成了查找与接口相关的规则的工作。
滤波器34可以以任意顺序查找与一个接口相关的ACL。然而,在优选实施例中,滤波器保持每个接口的优先顺序不变。该优先顺序可以由用户来配置。
不是每一个共享规则都需要存储在共享ACL中,可以在不同的特定ACL上有规则的副本。然而,这将增加使用的TCAM存储量。为了最小化所需的TCAM存储量,每个共享规则应当存储在共享ACL中。
线路卡12可以具有多个TCAM,每个TCAM都包括至少一个ACL。
本发明已经就具有四个接口,一个TCAM,两个特定ACL和四个共享ACL的线路卡进行了描述。更一般地,线路卡具有多个接口和至少两个ACL,其中至少一个ACL是共享ACL。共享ACL或者包括在所有接口之间共享的规则,或者包括仅在接口的一个子集之间共享的规则。接口可以与任何数量的共享ACL相关,并且可以与或者不与一个特定ACL相关。然而,至少一个接口与至少两个ACL相关,其中至少一个ACL是共享ACL。这样,就节省了TCAM存储空间。
对与每个接口相关的ACL的数量的实际限制是ACL访问时间。访问ACL所花费的时间必须少于处理一个分组可用的时间。例如,OC-48线路速率需要大约6.1Mpps(每秒百万个分组)的分组处理速率。当前TCAM访问速率在每秒60到100百万次查询的水平,因此,与每个接口相关的ACL的数量限制在8左右。
本发明已经就IP分组,路由器和ACL进行了描述。更一般地,本发明可以应用于任何分组交换机(诸如以太网交换机,ATM交换机或者Ipv6交换机),其包括接口特定规则组,该规则组包含在进入的分组上应用的规则。例如,本发明可以应用于更普通的基于规则的安全功能,诸如速率限制(rate-limiting)和速率管制(rate-policing),基于策略的转送,优先权分配和分类。用于收到的分组的密钥可以通过滤波器利用分组包头信息的任意变化来确定。
此处所介绍的实施例仅是示范性的,本领域的技术人员会理解可以不脱离本发明的精神,对上述实施例进行变化。本发明的范围完全由所附的权利要求来限定。
权利要求
1.一种用于确定在数据分组路由器的第一接口到达的数据分组上应用的规则的方法,包括以下步骤a.将至少两组规则与所述第一接口相关,其中至少一组规则是还与第二接口相关的共享规则组;b.确定所述数据分组的密钥;以及c.查找所述至少两组规则,以获得至少一个匹配所述密钥的规则。
2.根据权利要求1所述的方法,其中所述将至少两组规则与所述第一接口相关的步骤包括将至少一组规则单独与所述第一接口相关。
3.根据权利要求1所述的方法,其中所述数据分组是网际协议(IP)分组,所述接口位于路由器内,所述将至少两组规则与所述第一接口相关的步骤包括将至少两个访问控制列表(ACL)与所述第一接口相关。
4.根据权利要求3所述的方法,其中每一个规则有一个相关的操作,每一个相关的操作是分组拒绝,分组允许,分组计数和分组复制中的一个。
5.根据权利要求3所述的方法,其中所述密钥从包含在所述IP分组包头内的信息中确定。
6.根据权利要求5所述的方法,其中确定所述密钥的信息包括IP源地址,IP目的地址,协议数量,传输控制协议/用户数据报文协议(TCP/UDP)源端口,TCP/UDP目的端口和网间控制报文协议代码中的至少一个。
7.根据权利要求1所述的方法,其中所述查找所述至少两组规则的步骤包括以下步骤a.确定所述至少两组规则的优先顺序;以及b.按照与所述优先顺序一致的顺序,在所述至少两组规则中查找匹配所述密钥的规则。
8.一种在数据分组路由器中提供安全的方法,其中数据分组到达所述数据分组路由器的第一接口,所述方法包括以下步骤a.将至少两组规则与所述第一接口相关,其中至少一组规则是还与第二接口相关的共享规则组,所述至少两组规则中的每一个规则都有一个相关的操作;b.确定所述数据分组的密钥;c.查找所述至少两组规则,以获得至少一个匹配所述密钥的规则;以及d.如果找到至少一个匹配所述密钥的规则,则将与所述至少一个规则的每一个规则相关的操作应用到所述数据分组。
9.根据权利要求8所述的方法,其中所述将至少两组规则与所述第一接口相关的步骤包括将至少一组规则单独与所述第一接口相关。
10.根据权利要求8所述的方法,其中所述数据分组是网际协议(IP)分组,所述接口位于路由器内,所述将至少两组规则与所述第一接口相关的步骤包括将至少两个访问控制列表(ACL)与所述第一接口相关。
11.根据权利要求10所述的方法,其中每一个相关的操作是分组拒绝,分组允许,分组计数和分组复制中的一个。
12.根据权利要求10所述的方法,其中所述密钥从包含在IP分组包头内的信息中确定。
13.根据权利要求12所述的方法,其中确定所述密钥的信息包括IP源地址,IP目的地址,协议数量,传输控制协议/用户数据报文协议(TCP/UDP)源端口,TCP/UDP目的端口和网间控制报文协议代码中的至少一个。
14.根据权利要求8所述的方法,其中所述查找所述至少两组规则的步骤包括以下步骤a.确定所述至少两组规则的优先顺序;以及b.按照与所述优选顺序一致的顺序,在所述至少两组规则中查找匹配所述密钥的规则。
15.一种线路卡,包括a.第一接口;b.第二接口;c.至少与所述第一接口相关的第一组规则;d.与所述第一接口和所述第二接口相关的第二组规则;e.用于查找所述第一组规则和所述第二组规则,以获得至少一个特定用于到达所述第一接口的单个数据分组的规则的装置。
16.根据权利要求15所述的线路卡,其中所述第一组规则和所述第二组规则是访问控制列表(ACL)。
17.根据权利要求15所述的线路卡,其中所述第一组规则仅与所述第一接口相关。
18.根据权利要求17所述的线路卡,进一步包括a.第三接口;以及b.与所述第一接口和所述第二接口相关的第三组规则;其中,用于查找至少一个特定用于到达所述第一接口的单个数据分组的规则的装置进一步包括查找所述第三组规则,以获得这样一个规则。
19.根据权利要求15所述的线路卡,进一步包括用于根据优先顺序将所述第一组规则和所述第二组规则与所述第一接口相关的装置,其中用于查找规则的装置包括按照优先顺序规定的顺序查找所述第一组规则和所述第二组规则。
20.一种分组交换机,包括权利要求15所述的线路卡。
21.一种包括用于在数据分组路由器中提供安全的指令的计算机可读介质,其中数据分组到达所述数据分组路由器的第一接口,该方法包括a.用于将至少两组规则与所述第一接口相关的指令,其中至少一组规则是还与第二接口相关的共享规则组,所述至少两组规则的每一个规则都有一个相关的操作;b.用于确定所述数据分组的密钥的指令;c.用于查找所述至少两组规则,以获得至少一个匹配所述密钥的规则的指令;以及d.用于在找到至少一个匹配所述密钥的规则时,将与所述至少一个规则的每一个规则相关的操作应用到所述数据分组的指令。
全文摘要
提供了一种用于维护数据分组路由器中线路卡上TCAM内的访问控制列表(ACL)的方法和设备,将规则应用于进入的数据分组。每个接口可以与多个ACL相关,多个接口可以与单个共享ACL相关。共享ACL包括可应用于超过一个接口的规则。其他ACL是特定用于特定接口的。当查找规则以应用于进入的数据分组时,滤波器查找与数据分组到达的接口相关的特定ACL和共享ACL。利用共享ACL,减少了共有规则的复制,从而减少存储在线路卡上的规则的总数,并节省了存储器存储空间。本发明还适用于除了ACL的规则组。
文档编号H04L29/06GK1606294SQ200410095909
公开日2005年4月13日 申请日期2004年10月8日 优先权日2003年10月7日
发明者J·施特内 申请人:阿尔卡特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1