基于前缀覆盖级别的二分IP路由查找方法转让专利

申请号 : CN200910133643.2

文献号 : CN101515900B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱国胜

申请人 : 武汉烽火网络有限责任公司

摘要 :

本发明涉及互联网高速IP地址查找方法,是一种基于前缀覆盖级别的二分IP路由查找方法,根据IP路由表中前缀之间的覆盖和重叠关系将前缀进行分级,采用基于前缀覆盖级别的二分路由查找,在每个级别,采用TCAM来完成路由匹配查找,和传统TCAM路由查找方法相比,由于同一级别的前缀不会重叠,不存在排序要求,可以支持随机增量更新;二分查找特性使得功耗可以降低约50%;查找可以在个TCAM时钟周期内完成,其中max_level为最大重叠前缀个数,目前对于IPv4为7,对于IPv6为2,满足高速分组转发的要求。

权利要求 :

1.基于前缀覆盖级别的二分IP路由查找方法,其特征在于:

将IP路由前缀按照前缀重叠和覆盖关系对该前缀进行分级;

根据IP路由前缀的级别分别放入不同的TCAM Block中;

通过二分查找算法进行匹配查找,即先查找中间级别的TCAM Block,如果匹配则继续按照二分查找算法查找更高级别的TCAM Block,如果没有匹配则继续按照二分查找算法查找更低级别的TCAM Block,直到查找结束;在每一个级别的匹配过程中,仅使能相应级别的TCAM Block。

2.如权利要求1所述的基于前缀覆盖级别的二分IP路由查找方法,其特征在于对于待添加和删除的IP路由前缀在相应的TCAM Block中直接进行插入和删除,同时对于前缀覆盖级别发生改变的前缀也要进行相应级别的TCAMBlock更新操作,实现随机增量更新。

3.如权利要求1或2所述的基于前缀覆盖级别的二分IP路由查找方法,其特征在于在将IP路由前缀按照前缀重叠和覆盖关系进行分类的过程中,目前最大的前缀覆盖级别对于IPv4为7,对于IPv6为2。

说明书 :

基于前缀覆盖级别的二分IP路由查找方法

技术领域

[0001] 本发明涉及互联网高速IP地址查找方法,特别是涉及一种基于前缀覆盖级别的二分IP路由查找方法。

背景技术

[0002] IP路由查找是计算机网络设备关键技术之一,IP路由查找需要根据到达分组的目的IP地址,查找路由表得到该分组去往最终目的地址的下一跳信息(出接口和下一条IP地址)。
[0003] 随着Internet的快速发展,用于主干网络互联的核心路由器的接口速率已达到2.5Gb/s~10Gb/s,这一速率要求核心路由器每秒能够转发几百万乃至上千万个分组,分组转发的重要步骤就是查找路由表。因此,IP路由查找面临巨大挑战:①路由表越来越大,目前骨干路由比较已经接近30万条,并且每年增长大约5万条;②接口速率越来越高,10Gbps接口已经商用,40Gbps接口开始部署;③路由更新频繁,峰值时达到每秒数千条前缀的更新;④高功耗,网络设备功耗以及机房散热设备的功耗目前已经成为网络运营的主要成本;⑤32比特的IPv4正在向128比特的IPv6过渡;⑥CIDR(Classless Inter-DomainRouting)的采用需要路由查找在IP路由前缀和值两个维度进行匹配,进一步增加了IP路由查找的难度。以最小以太网包长672比特来计算,为保证40Gbps接口的线速转发,包转发率要达到59.5Mpps,每包处理时延小于16.8ns。
[0004] 针对路由查找,业界提出了种种IP路由查找方案,按照IP路由最长前缀 长度匹配的二维特性来分类的话,分类如下:
[0005] ①基于前缀长度的二分搜索的内存操作次数为O(log2W),其中W为IP地址长度,对IPv4来说是32,对IPv6来说是128,基于前缀长度的二分搜索在查找匹配时,向更长的前缀长度方向进行查找;如果不匹配,不能确定是否该向更长或更短的方向查找,因此需要引入额外的Marker来引导二分搜索得到正确的结果,导致增量更新复杂。 [0006] ②基于前缀长度的线性搜索一般采用Trie结构,完成1次路由查找需要进行O(W)次内存操作,多比特Trie将内存操作次数减少到O(W/k),其中k为每次比较的比特位数,但是需要进行前缀扩展导致增量更新复杂。
[0007] ③基于前缀值的二分搜索完成1次路由查找需要进行O(log2N)次内存操作,N为路由条目的隔阂素,当N为30万时内存操作次数为18。
[0008] ④基于前缀值的线性搜索完成1次路由查找需要进行O(N)次内存操作,无法满足高速IP分组转发要求。引入TCAM三态内容寻址内存硬件,将路由前缀按照长度进行降序排列存放,在一个TCAM时钟周期内对所有的路由表项进行并行查找,存在多重匹配时优先选择低地址区的匹配前缀作为结果返回。返回的结果是一个指向比如SRAM的地址指针,下一条信息和出接口存放在相应的SRAM中。目前TCAM的时钟周期可以做到5ns,可以满足高速接口线速转发的要求,在高端路由设备上被大量采用。
[0009] 综上所述,方案①、②和③等基于软件的IP路由查找方案很难满足目前高速IP分组线速转发要求,方案④基于硬件TCAM的IP路由查找速度快且性能稳定,但是其缺点也非常明显,主要表现在高功耗以及表项排序要求导致的更新复杂。因此,传统基于软件的IP路由查找方案很难满足目前高速IP分组 线速转发要求。

发明内容

[0010] 本发明所要解决的技术问题是解决传统基于软件的IP路由查找方案很难满足目前高速IP分组线速转发要求的问题。
[0011] 为了解决上述技术问题,本发明所采用的技术方案是提供一种基于前缀覆盖级别的二分IP路由查找方法,首先将IP路由前缀按照前缀重叠和覆盖关系对该前缀进行分级;然后根据IP路由前缀的级别分别放入不同的TCAM Block中;通过二分查找算法进行匹配查找,即先查找中间级别的TCAM Block,如果匹配则继续按照二分查找算法查找更高级别的TCAM Block,如果没有匹配则继续按照二分查找算法查找更低级别的TCAM Block,直到查找结束。
[0012] 在上述方案中,对于待添加和删除的IP路由前缀在相应的TCAM Block中直接进行插入和删除,同时对于前缀覆盖级别发生改变的前缀也要进行相应级别的TCAM Block更新操作,实现随机增量更新。
[0013] 在将IP路由前缀按照前缀重叠和覆盖关系进行分类的过程中,目前最大的前缀覆盖级别对于IPv4为7,对于IPv6为2。
[0014] 本发明,根据IP路由表中前缀之间的覆盖和重叠关系将前缀进行分级,采用基于前缀覆盖级别的二分路由查找,在每个级别,采用TCAM来完成路由匹配查找,和传统TCAM路由查找方法相比,由于同一级别的前缀不会重叠,不存在排序要求,可以支持随机增量更新;二分查找特性使得功耗可以降低约50%;查找可以在 个TCAM时钟周期内完成,满足高速分组高速转发的要求。

附图说明

[0015] 图1为本发明基于Trie结构的IP路由表前缀分级示意图;
[0016] 图2为应用本发明的路由器结构示意图;
[0017] 图3为应用本发明的路由器原理示意图;
[0018] 图4为本发明的工作流程图。

具体实施方式

[0019] 本发明提供了一种基于前缀覆盖级别的二分IP路由查找方法,根据IP路由表中前缀之间的覆盖和重叠关系将前缀进行分级,然后采用基于前缀覆盖级别的二分路由进行查找,满足了高速IP分组高速转发的要求。
[0020] 通过对骨干网路由表进行分析,将路由前缀按照前缀重叠和覆盖关系对前缀进行分级,不被任何其他前缀覆盖的前缀称为0级(Level 0)前缀,只被一个前缀覆盖的前缀称为1级(Level 1)前缀。如图1所示,虽然互联网路由条目在急剧膨胀,也存在大量前缀相互重叠和覆盖,目前IPv4路由表最大的相互重叠前缀个数不超过7个,而IPv6路由表最大的相互重叠前缀个数为2个。
[0021] 处在相同覆盖级别的前缀是不会相互重叠的,对于某个查找Key值,在某个级别最多只会有一个匹配。因为如果两个前缀重叠,则其中必有一个是另外一个的前缀,他们应该处在不同的级别,因此在同一个Level,所有前缀都是不重叠和覆盖的,最多只能有一个前缀匹配待查Key值。
[0022] 如果某个Key值在某个级别存在匹配,则从根到该级别的路径上的所有前缀都会匹配该Key值,因此,如果某Key值在某个级别存在匹配,则在更低的级别也存在匹配;同理,如果某个Key值在某个级别不存在匹配,则在更高的级别也不存在匹配。 [0023] 基于以上分析,本发明提出一种基于路由前缀覆盖级别的二分IP路由查找方法,首先将路由前缀按照前缀重叠和覆盖关系对前缀进行分级,在每个级别,采用TCAM来完成路由匹配查找,和传统TCAM路由查找方法相比,由于同一级别的前缀不会重叠,不存在排序要求,可以支持随机增量更新;然后,根据二分查找算法,从中间的前缀覆盖级别开始查找,如果匹配,则向更高覆盖级别方向进行查找,如果不匹配,根据上述证明肯定不存在更高级别的匹配前缀,因此直接向更小覆盖级别的方向进行查找,在查找失败时不需要引入Marker来引导二分查找,这一点和基于前缀长度的二分查找算法是完全不同的,二分查找特性使得功耗可以降低约50%;查找可以在 个TCAM时钟周期内完成,其中max_level为最大重叠前缀个数,目前对于IPv4为7,对于IPv6为2。现在TCAM时钟周期小于4ns,因此,对于IPv4可以在16ns(4个TCAM时钟周期)内完成,可以满足40Gbps接口最小包长线速转发要求。如果采用流水线结构则可以在一个时钟周期内返回IP路由查找结果,满足高速分组线速转发要求,同时二分查找特性使得功耗可以降低约
50%。现有商用TCAM芯片支持TCAM Block模式,将表项内容放入同一个TCAM芯片的不同Block,查找时只需要使能并查找特定的TCAM Block而无需驱动整个TCAM芯片,可以达到节省TCAM功耗的目的。
[0024] 本发明的主要思路,第一,对于TCAM路由转发表项的建立来说,按照路由前缀所处的覆盖级别,将路由前缀放入不同的TCAM Block,或者放入不同的TCAM芯片;第二,对于路由查找来说,采用基于覆盖级别的二分查找算法,先查找中间级别的TCAM Block或者TCAM芯片,如果匹配则继续按照二分查找算法查找更高级别的TCAM Block或者TCAM芯片,如果没有匹配则继续按照二分查找算法查找更低级别的TCAM Block或者TCAM芯片,直到二分查找结束,最后记录的匹配结果则为最长匹配;第三,对于路由更新来说,由于保存在同一个TCAM Block或者TCAM芯片中的前缀没有排序要 求,路由前缀的插入和删除可以直接进行,同时对于前缀覆盖级别发生改变的前缀也要进行相应级别的TCAM Block或者TCAM芯片更新操作。
[0025] 以下以图1中的前缀为例具体说明如下:
[0026] 图1中的19个前缀a-t分布在5个级别,分别为Level 0到Level4,其中: [0027] Level 0:a、h、i、m;
[0028] Level 1:b、e、g、j、k、o;
[0029] Level 2:c、d、f、l、n、s、t;
[0030] Level 3:p、r;
[0031] Level 4:q;
[0032] 假设待查的目的地址最长匹配为前缀Leve 3的p,查找过程为: [0033] 第1步:查找中间的Level 2,肯定会匹配前缀s;
[0034] 第2步:根据二分查找特性,将在上半区Level 3和Level 4进行查找;在Level3进行查找,匹配前缀p;
[0035] 第3步:继续在Level 4进行查找,不匹配,最后匹配的前缀p为最长匹配结果。 [0036] 如图3所示,IP路由前缀按照前缀覆盖级别被放置在TCAM芯片的不同Block或者直接放置在不同的TCAM芯片中以备二分路由查找。入方向,线路接口(Line Interface)接收的分组(Packet)传递给FPGA逻辑,FPGA从分组中提取目的地址作为查找关键字(Key)传给IP路由查找部分作二分路由查找,查找结束后对分组头部进行修改,包括IP TTL字段和校验和等,修改后的分组(Modified Packet)送出接口发送出去。下面结合图2和图4具体描述如下:
[0037] 101、设备启动路由学习完成,控制CPU按照路由前缀的覆盖级别将相应 的前缀分别放入相应的TCAM Block或者TCAM Chip中;
[0038] 102、分组Packet到达线路接口,经过接口Phy和Mac层到达FPGA分组处理逻辑模块;
[0039] 103、分组处理逻辑模块FPGA进行分组解帧处理,提取目的IP地址作为查找Key送路由查找逻辑进行二分查找,分组本身被缓存;
[0040] 104、开始基于前缀覆盖级别的二分路由查找,确定二分查找的区域; [0041] 105、判断二分查找是否结束,也就是区域的下界是否大于上界;如果查找结束转110;没有结束转106;
[0042] 106、将查找Key值和对应的中间级别的TCAM Block或者Chip进行比较; [0043] 107、判断在本级别的TCAM中是否有匹配该Key值前缀存在,若不存在,转108,若存在转109;
[0044] 108、将二分查找区域调整为前缀覆盖级别的低半区;转105; [0045] 109、将二分查找区域调整为前缀覆盖级别的高半区;转105; [0046] 110、二分查找过程结束,最后匹配的查找结果包含该分组的下一跳和出接口信息,被送给FPGA分组处理逻辑;
[0047] 111、FPGA分组处理逻辑修改分组头部,包括TTL、校验和等,分组被送网出接口排队发送;
[0048] 以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。