路由表项的处理方法及装置转让专利

申请号 : CN201911419898.5

文献号 : CN111131049B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵茂聪何志川王文刚

申请人 : 苏州盛科通信股份有限公司

摘要 :

本发明提供了一种路由表项的处理方法及装置,上述方法包括:确定ipv6地址的网络部分中的第一部分、第二部分以及与ipv6地址对应的第一虚拟路由转发实例标识,第一部分是网络部分的高32位,第二部分是网络部分中的低32位;将第一部分以及第一虚拟路由转发实例标识组合得到第一组合信息,确定与第一组合信息对应的第一前缀索引,将第二部分与第一前缀索引组合得到第二组合信息;将第一组合信息以及第一前缀索引对应存储在第一路由表中以将第一组合信息以及第一前缀索引作为第一路由表中的路由表项,将第二组合信息存储在第二路由表中以将第二组合信息作为第二路由表中的路由表项。通过本发明,解决了相关技术中ipv6路由的存储存在存储资源浪费的问题。

权利要求 :

1.一种路由表项的处理方法,其特征在于,包括:确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32位,所述第二部分是所述网络部分中的低32位;

将所述第一部分以及所述第一虚拟路由转发实例标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第二部分与所述第一前缀索引组合得到第二组合信息;

将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表项。

2.根据权利要求1所述的方法,其特征在于,所述第一路由表为第一TCAM路由表,所述第二路由表至少包括以下之一:HASH路由表,最长前缀匹配路由表;其中,所述最长前缀匹配路由表包括:第二TCAM路由表以及字典树路由表;

其中,所述将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表项包括:

将所述第二组合信息存储在所述HASH路由表中;或,确定所述第二部分中的第三部分和第四部分,其中,所述第三部分是所述第二部分的公共前缀,所述第二部分由所述第三部分和所述第四部分组成;

将所述第三部分与所述第一前缀索引组合得到第三组合信息,将所述第三组合信息存储在所述第二TCAM路由表中,并将所述第四部分存储在所述字典树路由表中。

3.根据权利要求2所述的方法,其特征在于,在将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表项之后,所述方法还包括:获取报文的目的网络地址以及与所述报文对应的第二虚拟路由转发实例标识,其中,所述目的网络地址为ipv6地址,所述目的网络地址包括第五部分与可变部分,所述第五部分为所述目的网络地址的高32位,所述可变部分为所述目的网络地址的低32位;

将所述第五部分与所述第二虚拟路由转发实例标识组成第一关键字,根据所述第一关键字在所述第一路由表中查找匹配的第一表项,确定与所述第一表项对应的第二前缀索引以及与所述第二前缀索引对应的第一前缀,确定所述第一前缀为所述目的网络地址的自治域前缀;

将所述可变部分与所述自治域前缀组成第二关键字,根据所述第二关键字在所述第二路由表中查找匹配的路由表项。

4.根据权利要求3所述的方法,其特征在于,所述根据所述第二关键字在所述第二路由表中查找匹配的路由表项,包括:

根据所述第二关键字在所述HASH路由表中查找匹配的第二表项,并获取与所述第二表项对应的下一跳信息;

根据所述下一跳信息对所述报文进行转发。

5.根据权利要求3所述的方法,其特征在于,所述根据所述第二关键字在所述第二路由表中查找匹配的路由表项,包括:

根据所述第二关键字在所述第二TCAM路由表中查找匹配的第三表项,确定与所述第三表项对应的第三前缀索引以及与所述第三前缀索引对应的第二前缀,确定所述第二前缀为所述可变部分的前缀,其中,所述可变部分由所述可变部分的前缀与第六部分组成,所述第六部分为所述可变部分中除所述可变部分的前缀之外的部分;

根据所述可变部分的前缀以及所述第六部分在所述字典树路由表中查找匹配的第四表项,确定与所述第四表项对应的下一跳信息;

根据所述下一跳信息对所述报文进行转发。

6.一种路由表项的处理装置,其特征在于,包括:确定模块,用于确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32位,所述第二部分是所述网络部分中的低32位;

组合模块,用于将所述第一部分以及所述第一虚拟路由转发实例标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第二部分与所述第一前缀索引组合得到第二组合信息;

存储模块,用于将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表项。

7.根据权利要求6所述的装置,其特征在于,所述第一路由表为第一TCAM路由表,所述第二路由表至少包括以下之一:HASH路由表,最长前缀匹配路由表;其中,所述最长前缀匹配路由表包括:第二TCAM路由表以及字典树路由表;

其中,所述存储模块,还用于:

将所述第二组合信息存储在所述HASH路由表中;或,确定所述第二部分中的第三部分和第四部分,其中,所述第三部分是所述第二部分的公共前缀,所述第二部分由所述第三部分和所述第四部分组成;

将所述第三部分与所述第一前缀索引组合得到第三组合信息,将所述第三组合信息存储在所述第二TCAM路由表中,并将所述第四部分存储在所述字典树路由表中。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:获取模块,用于获取报文的目的网络地址以及与所述报文对应的第二虚拟路由转发实例标识,其中,所述目的网络地址为ipv6地址,所述目的网络地址包括第五部分与可变部分,所述第五部分为所述目的网络地址的高32位,所述可变部分为所述目的网络地址的低

32位;

第一匹配模块,用于将所述第五部分与所述第二虚拟路由转发实例标识组成第一关键字,根据所述第一关键字在所述第一路由表中查找匹配的第一表项,确定与所述第一表项对应的第二前缀索引以及与所述第二前缀索引对应的第一前缀,确定所述第一前缀为所述目的网络地址的自治域前缀;

第二匹配模块,用于将所述可变部分与所述自治域前缀组成第二关键字,根据所述第二关键字在所述第二路由表中查找匹配的路由表项。

9.根据权利要求8所述的装置,其特征在于,所述第二匹配模块还用于:根据所述第二关键字在所述HASH路由表中查找匹配的第二表项,并获取与所述第二表项对应的下一跳信息;

根据所述下一跳信息对所述报文进行转发。

10.根据权利要求8所述的装置,其特征在于,所述第二匹配模块还用于包括:根据所述第二关键字在所述第二TCAM路由表中查找匹配的第三表项,确定与所述第三表项对应的第三前缀索引以及与所述第三前缀索引对应的第二前缀,确定所述第二前缀为所述可变部分的前缀,其中,所述可变部分由所述可变部分的前缀与第六部分组成,所述第六部分为所述可变部分中除所述可变部分的前缀之外的部分;

根据所述可变部分的前缀以及所述第六部分在所述字典树路由表中查找匹配的第四表项,确定与所述第四表项对应的下一跳信息;

根据所述下一跳信息对所述报文进行转发。

说明书 :

路由表项的处理方法及装置

技术领域

[0001] 本发明涉及通信领域,具体而言,涉及一种路由表项的处理方法及装置。

背景技术

[0002] 目前,ipv6技术的应用越来越广泛。ipv6地址为128位,如何规划、分配和使用128位的ipv6地址是目前需要解决问题之一。亚太地区从互联网数字分配机构(Internet 
Assigned Numbers Authority,简称为IANA)分配到的ipv6地址的地址前缀为19位到23位
之间,即/19到/23,中国各大运营商被分配到的自治域(又称为自治系统,Autonomous 
System,简称为AS)前缀在/20到/32之间。比如中国电信商用ipv6为240e::/20,中国联通为
2408:8000::/20,中国广电为240a:4000::/21。按照ipv6地址分配规则,到省级的ipv6地址
前缀为/32,并且到用户侧区域的网络段地址是/64,并且各厂商和运营商都使用小于/64位
的地址寻址分配。
[0003] 在相关技术中,ipv6路由的存储主要有以下两种方式。图1是相关技术中ipv6路由的存储示意图,在第一种方式中,如图1所示,由于ipv6地址是128位,因此将ipv6地址全部
存储在内存中,即在内存中,一个ipv6地址需要占用128位。图2是相关技术中另一ipv6路由
的存储示意图,在第二种方式中,如图2所示,由于各厂商和运营商分配的ipv6地址的前缀
都小于64位,并且路由寻址也是使用小于/64位的路由,因此在内存中存储ipv6地址中的64
位网络部分。
[0004] 但是,上述第一种方式存在以下问题:因为ipv4地址是32位,所以存储一个ipv6地址所占用的内存是一个ipv4地址占用内存的4倍,从而导致相同的内存,ipv6地址的表项规
格是ipv4地址的表项规格的1/4(表项规格表示一块内存所能存储的地址(即路由条目)的
数量),因此使用相同的内存,该内存所能存储的ipv6地址的数量是所能存储的ipv4地址的
数量的1/4),ipv6地址的表项规格受限,并且由于每个ipv6地址均需要占用128位,从而导
致了存储资源的浪费。同时由于ipv6表项与ipv4表项的大小不一致,导致芯片设计和内部
处理流程也不一致,增加了芯片设计复杂度。上述第二种方式存在以下问题:存储一个ipv6
地址所占用的内存是一个ipv4地址占用内存的2倍,从而导致相同的内存,ipv6地址的表项
规格是ipv4地址的表项规格的1/2,因此ipv6地址的表项规格受限,并且由于每个ipv6地址
均需要占用64位,从而导致了存储资源的浪费,同时由于ipv6表项与ipv4表项的大小不一
致,也会导致芯片设计和内部处理流程也不一致,增加了芯片设计复杂度。
[0005] 针对相关技术中,ipv6路由的存储存在存储资源浪费的问题,尚未提出有效的技术方案。

发明内容

[0006] 本发明实施例提供了一种路由表项的处理方法及装置,以至少解决相关技术中ipv6路由的存储存在存储资源浪费的问题。
[0007] 根据本发明的一个实施例,提供了一种路由表项的处理方法,包括:
[0008] 确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32位,所述第二部分是
所述网络部分中的低32位;
[0009] 将所述第一部分以及所述第一虚拟路由转发实例标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第二部分与所述第一前缀索引组合
得到第二组合信息;
[0010] 将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,以及将所述第二
组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表项。
[0011] 可选地,所述第一路由表为第一TCAM路由表,所述第二路由表至少包括以下之一:HASH路由表,最长前缀匹配路由表;其中,所述最长前缀匹配路由表包括:第二TCAM路由表
以及字典树路由表;其中,所述将所述第二组合信息存储在第二路由表中以将所述第二组
合信息作为所述第二路由表中的路由表项包括:将所述第二组合信息存储在所述HASH路由
表中;或,确定所述第二部分中的第三部分和第四部分,其中,所述第三部分是所述第二部
分的公共前缀,所述第二部分由所述第三部分和所述第四部分组成;将所述第三部分与所
述第一前缀索引组合得到第三组合信息,将所述第三组合信息存储在所述第二TCAM路由表
中,并将所述第四部分存储在所述字典树路由表中。
[0012] 可选地,在将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,以及将
所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的
路由表项之后,所述方法还包括:获取报文的目的网络地址以及与所述报文对应的第二虚
拟路由转发实例标识,其中,所述目的网络地址为ipv6地址,所述目的网络地址包括第五部
分与可变部分,所述第五部分为所述目的网络地址的高32位,所述可变部分为所述目的网
络地址的低32位;将所述第五部分与所述第二虚拟路由转发实例标识组成第一关键字,根
据所述第一关键字在所述第一路由表中查找匹配的第一表项,确定与所述第一表项对应的
第二前缀索引以及与所述第二前缀索引对应的第一前缀,确定所述第一前缀为所述目的网
络地址的自治域前缀;将所述可变部分与所述自治域前缀组成第二关键字,根据所述第二
关键字在所述第二路由表中查找匹配的路由表项。
[0013] 可选地,所述根据所述第二关键字在所述第二路由表中查找匹配的路由表项,包括:根据所述第二关键字在所述HASH路由表中查找匹配的第二表项,并获取与所述第二表
项对应的下一跳信息;根据所述下一跳信息对所述报文进行转发。
[0014] 可选地,所述根据所述第二关键字在所述第二路由表中查找匹配的路由表项,包括:根据所述第二关键字在所述第二TCAM路由表中查找匹配的第三表项,确定与所述第三
表项对应的第三前缀索引以及与所述第三前缀索引对应的第二前缀,确定所述第二前缀为
所述可变部分的前缀,其中,所述可变部分由所述可变部分的前缀与第六部分组成,所述第
六部分为所述可变部分中除所述可变部分的前缀之外的部分;根据所述可变部分的前缀以
及所述第六部分在所述字典树路由表中查找匹配的第四表项,确定与所述第四表项对应的
下一跳信息;根据所述下一跳信息对所述报文进行转发。
[0015] 根据本发明的另一个实施例,提供了一种路由表项的处理装置,包括:
[0016] 确定模块,用于确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32
位,所述第二部分是所述网络部分中的低32位;
[0017] 组合模块,用于将所述第一部分以及所述第一虚拟路由转发实例标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第二部分与所述第
一前缀索引组合得到第二组合信息;
[0018] 存储模块,用于将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,以
及将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表
中的路由表项。
[0019] 可选地,所述第一路由表为第一TCAM路由表,所述第二路由表至少包括以下之一:HASH路由表,最长前缀匹配路由表;其中,所述最长前缀匹配路由表包括:第二TCAM路由表
以及字典树路由表;其中,所述存储模块,还用于:将所述第二组合信息存储在所述HASH路
由表中;或,确定所述第二部分中的第三部分和第四部分,其中,所述第三部分是所述第二
部分的公共前缀,所述第二部分由所述第三部分和所述第四部分组成;将所述第三部分与
所述第一前缀索引组合得到第三组合信息,将所述第三组合信息存储在所述第二TCAM路由
表中,并将所述第四部分存储在所述字典树路由表中。
[0020] 可选地,所述装置还包括:获取模块,用于获取报文的目的网络地址以及与所述报文对应的第二虚拟路由转发实例标识,其中,所述目的网络地址为ipv6地址,所述目的网络
地址包括第五部分与可变部分,所述第五部分为所述目的网络地址的高32位,所述可变部
分为所述目的网络地址的低32位;第一匹配模块,用于将所述第五部分与所述第二虚拟路
由转发实例标识组成第一关键字,根据所述第一关键字在所述第一路由表中查找匹配的第
一表项,确定与所述第一表项对应的第二前缀索引以及与所述第二前缀索引对应的第一前
缀,确定所述第一前缀为所述目的网络地址的自治域前缀;第二匹配模块,用于将所述可变
部分与所述自治域前缀组成第二关键字,根据所述第二关键字在所述第二路由表中查找匹
配的路由表项。
[0021] 可选地,所述第二匹配模块还用于:根据所述第二关键字在所述HASH路由表中查找匹配的第二表项,并获取与所述第二表项对应的下一跳信息;根据所述下一跳信息对所
述报文进行转发。
[0022] 可选地,所述第二匹配模块还用于包括:根据所述第二关键字在所述第二TCAM路由表中查找匹配的第三表项,确定与所述第三表项对应的第三前缀索引以及与所述第三前
缀索引对应的第二前缀,确定所述第二前缀为所述可变部分的前缀,其中,所述可变部分由
所述可变部分的前缀与第六部分组成,所述第六部分为所述可变部分中除所述可变部分的
前缀之外的部分;根据所述可变部分的前缀以及所述第六部分在所述字典树路由表中查找
匹配的第四表项,确定与所述第四表项对应的下一跳信息;根据所述下一跳信息对所述报
文进行转发。
[0023] 可选地,根据本发明的另一个实施例,提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述方法。
[0024] 可选地,根据本发明的另一个实施例,提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上
述方法。
[0025] 通过本发明,确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32位,所
述第二部分是所述网络部分中的低32位;将所述第一部分以及所述第一虚拟路由转发实例
标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第
二部分与所述第一前缀索引组合得到第二组合信息;将所述第一组合信息以及所述第一前
缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述
第一路由表中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组
合信息作为所述第二路由表中的路由表项。因此,可以解决相关技术中ipv6路由的存储存
在存储资源浪费的问题,节省了ipv6路由所需的存储资源,并且提高了ipv6路由的表项规
格。

附图说明

[0026] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0027] 图1是相关技术中ipv6路由的存储示意图;
[0028] 图2是相关技术中另一ipv6路由的存储示意图;
[0029] 图3为根据本发明实施例的路由表项的处理方法的流程图;
[0030] 图4为根据本发明实施例的路由表项的处理方法的示意图;
[0031] 图5为根据本发明实施例的路由表项的处理装置的结构框图。

具体实施方式

[0032] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0033] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0034] 对本发明实施例中的技术术语作如下解释:
[0035] TCAM:三态存储内存,可以使用掩码进行匹配;
[0036] HASH:散列算法,又称为哈希算法;
[0037] TCAM路由表(或TCAM表)即为存储在TCAM中的路由表;
[0038] HASH路由表为使用HASH算法进行匹配的路由表。
[0039] 实施例1
[0040] 本发明实施例提供了一种路由表项的处理方法。图3为根据本发明实施例的路由表项的处理方法的流程图,如图3所示,包括:
[0041] 步骤S102,确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32位,所述
第二部分是所述网络部分中的低32位;
[0042] 可选地,所述ipv6地址由网络部分和节点部分组成,所述网络部分包括站点前缀和子网ID,所述节点部分包括接口ID。
[0043] 步骤S104,将所述第一部分以及所述第一虚拟路由转发实例标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第二部分与所述第一前
缀索引组合得到第二组合信息;
[0044] 步骤S106,将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,以及将
所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的
路由表项。
[0045] 通过本发明,确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32位,所
述第二部分是所述网络部分中的低32位;将所述第一部分以及所述第一虚拟路由转发实例
标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第
二部分与所述第一前缀索引组合得到第二组合信息;将所述第一组合信息以及所述第一前
缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述
第一路由表中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组
合信息作为所述第二路由表中的路由表项。因此,可以解决相关技术中ipv6路由的存储存
在存储资源浪费的问题,节省了ipv6路由所需的存储资源,并且提高了ipv6路由的表项规
格。
[0046] 需要说明的是,在上述实施例中,考虑到了一个转发设备(例如路由器)通常仅在几个或者仅在一个自治域内进行路由,从而转发设备存储的路由表项中,绝大部分的ipv6
地址都具有相同的自治域公共前缀。基于上述实施例,将ipv6地址的网络部分进行了拆分,
即拆分为高32位和低32位,以及将高32位和对应的虚拟路由转发实例标识存储在第一路由
表中,实现了对pv6地址所具有的相同部分进行存储,从而避免了针对每个ipv6地址均分别
进行存储导致的存储资源的浪费。可选地,第二路由表可以是传统的路由表中,比如HASH
表,TCAM表(即TCAM路由表)以及字典树路由表,从而在使用第二路由表进行查表时,路由查
找与传路由表的路由查找一致(例如,与ipv4的路由查找一致)。基于上述实施例,简化了芯
片设计和芯片内部处理流程,实现了地址处理的规格一致。
[0047] 在本发明的一可选实施例中,所述第一路由表为第一TCAM路由表,所述第二路由表至少包括以下之一:HASH路由表,最长前缀匹配路由表;其中,所述最长前缀匹配路由表
包括:第二TCAM路由表以及字典树路由表;其中,所述将所述第二组合信息存储在第二路由
表中以将所述第二组合信息作为所述第二路由表中的路由表项包括:将所述第二组合信息
存储在所述HASH路由表中;或,确定所述第二部分中的第三部分和第四部分,其中,所述第
三部分是所述第二部分的公共前缀,所述第二部分由所述第三部分和所述第四部分组成;
将所述第三部分与所述第一前缀索引组合得到第三组合信息,将所述第三组合信息存储在
所述第二TCAM路由表中,并将所述第四部分存储在所述字典树路由表中。
[0048] 可选地,在上述实施例中,例如对于64位主机路由(即/64位主机路由)而言,可以将所述第二组合信息存储在所述HASH路由表中。基于上述实施例,考虑到了第二部分也会
存在具有公共前缀的情况,因此对第二部分进行了进一步的拆分,例如,对于最长前缀匹配
路由而言,可以对第二部分进行进一步的拆分为第三部分和第四部分,其中,第三部分是第
二部分所具有的公共前缀,并将第三部分和对应的前缀索引存储在第二TCAM路由表中,进
一步的实现了节省存储资源,从而进一步提高了ipv6地址的表项规格。
[0049] 在本发明的一可选实施例中,在将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表
中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为
所述第二路由表中的路由表项之后,所述方法还包括:获取报文的目的网络地址以及与所
述报文对应的第二虚拟路由转发实例标识,其中,所述目的网络地址为ipv6地址,所述目的
网络地址包括第五部分与可变部分,所述第五部分为所述目的网络地址的高32位,所述可
变部分为所述目的网络地址的低32位;将所述第五部分与所述第二虚拟路由转发实例标识
组成第一关键字,根据所述第一关键字在所述第一路由表中查找匹配的第一表项,确定与
所述第一表项对应的第二前缀索引以及与所述第二前缀索引对应的第一前缀,确定所述第
一前缀为所述目的网络地址的自治域前缀;将所述可变部分与所述自治域前缀组成第二关
键字,根据所述第二关键字在所述第二路由表中查找匹配的路由表项。
[0050] 可选地,所述目的网络地址由网络部分和节点部分组成,所述网络部分包括站点前缀和子网ID,所述节点部分包括接口ID。需要说明的是,在上述实施例中,确定与所述第
一表项对应的第二前缀索引以及与所述第二前缀索引对应的第一前缀,确定所述第一前缀
为所述目的网络地址的自治域前缀,即将与所述第二前缀索引对应的第一前缀作为所述目
的网络地址的自治域前缀。
[0051] 在上述实施例中,在对报文进行路由时,同样对报文的目的网络地址中的网络部分进行了拆分,即拆分为高32位和低32位。
[0052] 在本发明的一可选实施例中,所述根据所述第二关键字在所述第二路由表中查找匹配的路由表项,包括:根据所述第二关键字在所述HASH路由表中查找匹配的第二表项,并
获取与所述第二表项对应的下一跳信息;根据所述下一跳信息对所述报文进行转发。
[0053] 在本发明的一可选实施例中,所述根据所述第二关键字在所述第二路由表中查找匹配的路由表项,包括:根据所述第二关键字在所述第二TCAM路由表中查找匹配的第三表
项,确定与所述第三表项对应的第三前缀索引以及与所述第三前缀索引对应的第二前缀,
确定所述第二前缀为所述可变部分的前缀,其中,所述可变部分由所述可变部分的前缀与
第六部分组成,所述第六部分为所述可变部分中除所述可变部分的前缀之外的部分;根据
所述可变部分的前缀以及所述第六部分在所述字典树路由表中查找匹配的第四表项,确定
与所述第四表项对应的下一跳信息;根据所述下一跳信息对所述报文进行转发。
[0054] 需要说明的是,确定与所述第三表项对应的第三前缀索引以及与所述第三前缀索引对应的第二前缀,确定所述第二前缀为所述可变部分的前缀,即将与所述第三前缀索引
对应的第二前缀作为所述可变部分的前缀。
[0055] 以下结合一示例对上述的路由表项的处理方法进行解释说明,但不用于限定本发明实施例的技术方案。图4为根据本发明实施例的路由表项的处理方法的示意图。下面结合
图4所示的流程图对本发明示例的技术方案进行详细说明,本发明示例的技术方案如下:
[0056] ipv6路由包括/64位主机路由以及最长前缀匹配路由,从而对于待存储的以下ipv6路由表项:
[0057] 主机路由:240E:0001:C201:0001/64+VRF(2)(其中,VRF(2)表示虚拟路由转发实例标识为2);
[0058] 主机路由:240E:0001:C201:0002/64+VRF(2);
[0059] 最长前缀匹配路由:240E:0001:C201:2103/56+VRF(2);
[0060] 最长前缀匹配路由:240E:0001:C201:3103/56+VRF(2);
[0061] 步骤1、确定出这4条路由表项具有共同的自治域前缀,即高32位(240E:0001)。如图4所示,将高32位(240E:0001)以及VRF(2)存储在第一路由表中并作为第一路由表中的一
个条目,并分配该条目对应的第一索引前缀(prefix index)为1,即在第一路由表中存储上
述条目以及上述条目与第一前缀索引的对应关系。
[0062] 步骤2、对于主机路由240E:0001:C201:0001/64和240E:0001:C201:0002/64,将后32位加上第一前缀索引存储在第二路由表(例如HASH表)中,如图4中所示,在HASH表中,将
后32位(即C201:0001、C201:0002)与对应的第一前缀索引(即PI(1))组合得到的信息作为
一个条目。
[0063] 步骤3、对于最长前缀匹配路由240E:0001:C201:2103/56和240E:0001:C201:3103/56,确定后32位(即C201:2103、C201:3103具有公共前缀为C201,因此将确定出的公共
前缀C201与第一前缀索引存储在第二TCAM路由表中,以及将每个最长前缀匹配路由的后32
位中除公共前缀以外的部分(即2103、3103)存储在字典树路由表(即Trie路由表)中,如图4
所示,最长前缀匹配路由表由第二TCAM路由表以及字典树路由表组成。其中,字典树路由表
可以存储在随机存储器RAM中。
[0064] 需要说明的是,在上述实施例中,将最长前缀匹配路由表使用第二TCAM路由表以及存储在RAM中的字典树路由表组成,由于RAM的成本较低,从而节省了成本。
[0065] 基于上述实施例,在对报文进行路由时,通过以下技术方案来执行:
[0066] /64位主机路由报文的处理流程如下:先提取报文中128位目的网络地址(即ipda地址)中的高32bits地址为ipda[127:96](即ipda中的127位至96位之间的地址)并确定报
文对应的vrf标识(表示为vrf[15:0],即vrf具有16bits),把ipda[127:96]和vrf[15:0]一
起组成关键字(即key)查第一TCAM路由表得到第一前缀即prefix[15:0](表示prefix具有
16bits),把prefix和ipda[95:64](即ipda中位于95位至64位之间的地址,也即网络部分的
后32位)组成key查HASH表,查找到结果(即下一跳信息,例如出口),并根据下一跳信息对报
文进行转发。
[0067] /64位最长前缀匹配报文的处理流程如下:
[0068] 提取报文中128位ipda地址中的高32bits地址ipda[127:96],把ipda[127:96]vrf[15:0]一起组成key查第一TCAM路由表得到第一前缀prefix[15:0],把prefix和ipda[95:
64]组成key查最长匹配路由表。具体的,由于最长匹配路由表由第二TCAM路由表以及字典
树路由表组成,因此把prefix和ipda[95:64]组成key查最长匹配路由表包括:根据prefix
和ipda[95:64]组成的key查第二TCAM表得到第二前缀,根据第二前缀以及ipda[95:64]中
除该公共前缀以外的部分组成key查字典树路由表得到下一跳信息,并根据下一跳信息对
报文进行转发。
[0069] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多
情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有
技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储
介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算
机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0070] 实施例2
[0071] 根据本发明的另一个实施例,提供了一种路由表项的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可
以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来
实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0072] 图5为根据本发明实施例的路由表项的处理装置的结构框图,如图5所示,该装置包括:
[0073] 确定模块52,用于确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32
位,所述第二部分是所述网络部分中的低32位;
[0074] 组合模块54,用于将所述第一部分以及所述第一虚拟路由转发实例标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第二部分与所述
第一前缀索引组合得到第二组合信息;
[0075] 存储模块56,用于将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,
以及将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由
表中的路由表项。
[0076] 通过本发明,确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32位,所
述第二部分是所述网络部分中的低32位;将所述第一部分以及所述第一虚拟路由转发实例
标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第
二部分与所述第一前缀索引组合得到第二组合信息;将所述第一组合信息以及所述第一前
缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述
第一路由表中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组
合信息作为所述第二路由表中的路由表项。因此,可以解决相关技术中ipv6路由的存储存
在存储资源浪费的问题,节省了ipv6路由所需的存储资源,并且提高了ipv6路由的表项规
格。
[0077] 在本发明的一可选实施例中,所述第一路由表为第一TCAM路由表,所述第二路由表至少包括以下之一:HASH路由表,最长前缀匹配路由表;其中,所述最长前缀匹配路由表
包括:第二TCAM路由表以及字典树路由表;其中,所述存储模块56,还用于:将所述第二组合
信息存储在所述HASH路由表中;或,确定所述第二部分中的第三部分和第四部分,其中,所
述第三部分是所述第二部分的公共前缀,所述第二部分由所述第三部分和所述第四部分组
成;将所述第三部分与所述第一前缀索引组合得到第三组合信息,将所述第三组合信息存
储在所述第二TCAM路由表中,并将所述第四部分存储在所述字典树路由表中。
[0078] 在本发明的一可选实施例中,所述装置还包括:获取模块,用于获取报文的目的网络地址以及与所述报文对应的第二虚拟路由转发实例标识,其中,所述目的网络地址为
ipv6地址,所述目的网络地址包括第五部分与可变部分,所述第五部分为所述目的网络地
址的高32位,所述可变部分为所述目的网络地址的低32位;第一匹配模块,用于将所述第五
部分与所述第二虚拟路由转发实例标识组成第一关键字,根据所述第一关键字在所述第一
路由表中查找匹配的第一表项,确定与所述第一表项对应的第二前缀索引以及与所述第二
前缀索引对应的第一前缀,确定所述第一前缀为所述目的网络地址的自治域前缀;第二匹
配模块,用于将所述可变部分与所述自治域前缀组成第二关键字,根据所述第二关键字在
所述第二路由表中查找匹配的路由表项。
[0079] 在本发明的一可选实施例中,所述第二匹配模块还用于:根据所述第二关键字在所述HASH路由表中查找匹配的第二表项,并获取与所述第二表项对应的下一跳信息;根据
所述下一跳信息对所述报文进行转发。
[0080] 在本发明的一可选实施例中,所述第二匹配模块还用于包括:根据所述第二关键字在所述第二TCAM路由表中查找匹配的第三表项,确定与所述第三表项对应的第三前缀索
引以及与所述第三前缀索引对应的第二前缀,确定所述第二前缀为所述可变部分的前缀,
其中,所述可变部分由所述可变部分的前缀与第六部分组成,所述第六部分为所述可变部
分中除所述可变部分的前缀之外的部分;根据所述可变部分的前缀以及所述第六部分在所
述字典树路由表中查找匹配的第四表项,确定与所述第四表项对应的下一跳信息;根据所
述下一跳信息对所述报文进行转发。
[0081] 实施例3
[0082] 本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
[0083] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
[0084] S1,确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32位,所述第二部
分是所述网络部分中的低32位;
[0085] S2,将所述第一部分以及所述第一虚拟路由转发实例标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第二部分与所述第一前缀索
引组合得到第二组合信息;
[0086] S3,将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,以及将所述第
二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表
项。
[0087] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read‑Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬
盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0088] 可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0089] 实施例4
[0090] 本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步
骤。
[0091] 可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0092] 可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0093] S1,确定ipv6地址的网络部分中的第一部分、第二部分以及与所述ipv6地址对应的第一虚拟路由转发实例标识,其中,所述第一部分是所述网络部分的高32位,所述第二部
分是所述网络部分中的低32位;
[0094] S2,将所述第一部分以及所述第一虚拟路由转发实例标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第二部分与所述第一前缀索
引组合得到第二组合信息;
[0095] S3,将所述第一组合信息以及所述第一前缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述第一路由表中的路由表项,以及将所述第
二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表
项。
[0096] 可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0097] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成
的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储
在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示
出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或
步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0098] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等
同替换、改进等,均应包含在本发明的保护范围之内。