路由表项的处理方法及装置转让专利
申请号 : CN201911419898.5
文献号 : CN111131049B
文献日 : 2021-08-27
发明人 : 赵茂聪 , 何志川 , 王文刚
申请人 : 苏州盛科通信股份有限公司
摘要 :
权利要求 :
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路由表中查找匹配的第三表项,确定与所述第三表项对应的第三前缀索引以及与所述第三前缀索引对应的第二前缀,确定所述第二前缀为所述可变部分的前缀,其中,所述可变部分由所述可变部分的前缀与第六部分组成,所述第六部分为所述可变部分中除所述可变部分的前缀之外的部分;
根据所述可变部分的前缀以及所述第六部分在所述字典树路由表中查找匹配的第四表项,确定与所述第四表项对应的下一跳信息;
根据所述下一跳信息对所述报文进行转发。
说明书 :
路由表项的处理方法及装置
技术领域
背景技术
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位
的地址寻址分配。
存储在内存中,即在内存中,一个ipv6地址需要占用128位。图2是相关技术中另一ipv6路由
的存储示意图,在第二种方式中,如图2所示,由于各厂商和运营商分配的ipv6地址的前缀
都小于64位,并且路由寻址也是使用小于/64位的路由,因此在内存中存储ipv6地址中的64
位网络部分。
格是ipv4地址的表项规格的1/4(表项规格表示一块内存所能存储的地址(即路由条目)的
数量),因此使用相同的内存,该内存所能存储的ipv6地址的数量是所能存储的ipv4地址的
数量的1/4),ipv6地址的表项规格受限,并且由于每个ipv6地址均需要占用128位,从而导
致了存储资源的浪费。同时由于ipv6表项与ipv4表项的大小不一致,导致芯片设计和内部
处理流程也不一致,增加了芯片设计复杂度。上述第二种方式存在以下问题:存储一个ipv6
地址所占用的内存是一个ipv4地址占用内存的2倍,从而导致相同的内存,ipv6地址的表项
规格是ipv4地址的表项规格的1/2,因此ipv6地址的表项规格受限,并且由于每个ipv6地址
均需要占用64位,从而导致了存储资源的浪费,同时由于ipv6表项与ipv4表项的大小不一
致,也会导致芯片设计和内部处理流程也不一致,增加了芯片设计复杂度。
发明内容
所述网络部分中的低32位;
得到第二组合信息;
组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表项。
以及字典树路由表;其中,所述将所述第二组合信息存储在第二路由表中以将所述第二组
合信息作为所述第二路由表中的路由表项包括:将所述第二组合信息存储在所述HASH路由
表中;或,确定所述第二部分中的第三部分和第四部分,其中,所述第三部分是所述第二部
分的公共前缀,所述第二部分由所述第三部分和所述第四部分组成;将所述第三部分与所
述第一前缀索引组合得到第三组合信息,将所述第三组合信息存储在所述第二TCAM路由表
中,并将所述第四部分存储在所述字典树路由表中。
所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的
路由表项之后,所述方法还包括:获取报文的目的网络地址以及与所述报文对应的第二虚
拟路由转发实例标识,其中,所述目的网络地址为ipv6地址,所述目的网络地址包括第五部
分与可变部分,所述第五部分为所述目的网络地址的高32位,所述可变部分为所述目的网
络地址的低32位;将所述第五部分与所述第二虚拟路由转发实例标识组成第一关键字,根
据所述第一关键字在所述第一路由表中查找匹配的第一表项,确定与所述第一表项对应的
第二前缀索引以及与所述第二前缀索引对应的第一前缀,确定所述第一前缀为所述目的网
络地址的自治域前缀;将所述可变部分与所述自治域前缀组成第二关键字,根据所述第二
关键字在所述第二路由表中查找匹配的路由表项。
项对应的下一跳信息;根据所述下一跳信息对所述报文进行转发。
表项对应的第三前缀索引以及与所述第三前缀索引对应的第二前缀,确定所述第二前缀为
所述可变部分的前缀,其中,所述可变部分由所述可变部分的前缀与第六部分组成,所述第
六部分为所述可变部分中除所述可变部分的前缀之外的部分;根据所述可变部分的前缀以
及所述第六部分在所述字典树路由表中查找匹配的第四表项,确定与所述第四表项对应的
下一跳信息;根据所述下一跳信息对所述报文进行转发。
位,所述第二部分是所述网络部分中的低32位;
一前缀索引组合得到第二组合信息;
及将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表
中的路由表项。
以及字典树路由表;其中,所述存储模块,还用于:将所述第二组合信息存储在所述HASH路
由表中;或,确定所述第二部分中的第三部分和第四部分,其中,所述第三部分是所述第二
部分的公共前缀,所述第二部分由所述第三部分和所述第四部分组成;将所述第三部分与
所述第一前缀索引组合得到第三组合信息,将所述第三组合信息存储在所述第二TCAM路由
表中,并将所述第四部分存储在所述字典树路由表中。
地址包括第五部分与可变部分,所述第五部分为所述目的网络地址的高32位,所述可变部
分为所述目的网络地址的低32位;第一匹配模块,用于将所述第五部分与所述第二虚拟路
由转发实例标识组成第一关键字,根据所述第一关键字在所述第一路由表中查找匹配的第
一表项,确定与所述第一表项对应的第二前缀索引以及与所述第二前缀索引对应的第一前
缀,确定所述第一前缀为所述目的网络地址的自治域前缀;第二匹配模块,用于将所述可变
部分与所述自治域前缀组成第二关键字,根据所述第二关键字在所述第二路由表中查找匹
配的路由表项。
述报文进行转发。
缀索引对应的第二前缀,确定所述第二前缀为所述可变部分的前缀,其中,所述可变部分由
所述可变部分的前缀与第六部分组成,所述第六部分为所述可变部分中除所述可变部分的
前缀之外的部分;根据所述可变部分的前缀以及所述第六部分在所述字典树路由表中查找
匹配的第四表项,确定与所述第四表项对应的下一跳信息;根据所述下一跳信息对所述报
文进行转发。
述方法。
述第二部分是所述网络部分中的低32位;将所述第一部分以及所述第一虚拟路由转发实例
标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第
二部分与所述第一前缀索引组合得到第二组合信息;将所述第一组合信息以及所述第一前
缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述
第一路由表中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组
合信息作为所述第二路由表中的路由表项。因此,可以解决相关技术中ipv6路由的存储存
在存储资源浪费的问题,节省了ipv6路由所需的存储资源,并且提高了ipv6路由的表项规
格。
附图说明
具体实施方式
第二部分是所述网络部分中的低32位;
缀索引组合得到第二组合信息;
所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的
路由表项。
述第二部分是所述网络部分中的低32位;将所述第一部分以及所述第一虚拟路由转发实例
标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第
二部分与所述第一前缀索引组合得到第二组合信息;将所述第一组合信息以及所述第一前
缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述
第一路由表中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组
合信息作为所述第二路由表中的路由表项。因此,可以解决相关技术中ipv6路由的存储存
在存储资源浪费的问题,节省了ipv6路由所需的存储资源,并且提高了ipv6路由的表项规
格。
地址都具有相同的自治域公共前缀。基于上述实施例,将ipv6地址的网络部分进行了拆分,
即拆分为高32位和低32位,以及将高32位和对应的虚拟路由转发实例标识存储在第一路由
表中,实现了对pv6地址所具有的相同部分进行存储,从而避免了针对每个ipv6地址均分别
进行存储导致的存储资源的浪费。可选地,第二路由表可以是传统的路由表中,比如HASH
表,TCAM表(即TCAM路由表)以及字典树路由表,从而在使用第二路由表进行查表时,路由查
找与传路由表的路由查找一致(例如,与ipv4的路由查找一致)。基于上述实施例,简化了芯
片设计和芯片内部处理流程,实现了地址处理的规格一致。
包括:第二TCAM路由表以及字典树路由表;其中,所述将所述第二组合信息存储在第二路由
表中以将所述第二组合信息作为所述第二路由表中的路由表项包括:将所述第二组合信息
存储在所述HASH路由表中;或,确定所述第二部分中的第三部分和第四部分,其中,所述第
三部分是所述第二部分的公共前缀,所述第二部分由所述第三部分和所述第四部分组成;
将所述第三部分与所述第一前缀索引组合得到第三组合信息,将所述第三组合信息存储在
所述第二TCAM路由表中,并将所述第四部分存储在所述字典树路由表中。
存在具有公共前缀的情况,因此对第二部分进行了进一步的拆分,例如,对于最长前缀匹配
路由而言,可以对第二部分进行进一步的拆分为第三部分和第四部分,其中,第三部分是第
二部分所具有的公共前缀,并将第三部分和对应的前缀索引存储在第二TCAM路由表中,进
一步的实现了节省存储资源,从而进一步提高了ipv6地址的表项规格。
中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为
所述第二路由表中的路由表项之后,所述方法还包括:获取报文的目的网络地址以及与所
述报文对应的第二虚拟路由转发实例标识,其中,所述目的网络地址为ipv6地址,所述目的
网络地址包括第五部分与可变部分,所述第五部分为所述目的网络地址的高32位,所述可
变部分为所述目的网络地址的低32位;将所述第五部分与所述第二虚拟路由转发实例标识
组成第一关键字,根据所述第一关键字在所述第一路由表中查找匹配的第一表项,确定与
所述第一表项对应的第二前缀索引以及与所述第二前缀索引对应的第一前缀,确定所述第
一前缀为所述目的网络地址的自治域前缀;将所述可变部分与所述自治域前缀组成第二关
键字,根据所述第二关键字在所述第二路由表中查找匹配的路由表项。
一表项对应的第二前缀索引以及与所述第二前缀索引对应的第一前缀,确定所述第一前缀
为所述目的网络地址的自治域前缀,即将与所述第二前缀索引对应的第一前缀作为所述目
的网络地址的自治域前缀。
获取与所述第二表项对应的下一跳信息;根据所述下一跳信息对所述报文进行转发。
项,确定与所述第三表项对应的第三前缀索引以及与所述第三前缀索引对应的第二前缀,
确定所述第二前缀为所述可变部分的前缀,其中,所述可变部分由所述可变部分的前缀与
第六部分组成,所述第六部分为所述可变部分中除所述可变部分的前缀之外的部分;根据
所述可变部分的前缀以及所述第六部分在所述字典树路由表中查找匹配的第四表项,确定
与所述第四表项对应的下一跳信息;根据所述下一跳信息对所述报文进行转发。
对应的第二前缀作为所述可变部分的前缀。
图4所示的流程图对本发明示例的技术方案进行详细说明,本发明示例的技术方案如下:
个条目,并分配该条目对应的第一索引前缀(prefix index)为1,即在第一路由表中存储上
述条目以及上述条目与第一前缀索引的对应关系。
后32位(即C201:0001、C201:0002)与对应的第一前缀索引(即PI(1))组合得到的信息作为
一个条目。
前缀C201与第一前缀索引存储在第二TCAM路由表中,以及将每个最长前缀匹配路由的后32
位中除公共前缀以外的部分(即2103、3103)存储在字典树路由表(即Trie路由表)中,如图4
所示,最长前缀匹配路由表由第二TCAM路由表以及字典树路由表组成。其中,字典树路由表
可以存储在随机存储器RAM中。
文对应的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表,查找到结果(即下一跳信息,例如出口),并根据下一跳信息对报
文进行转发。
64]组成key查最长匹配路由表。具体的,由于最长匹配路由表由第二TCAM路由表以及字典
树路由表组成,因此把prefix和ipda[95:64]组成key查最长匹配路由表包括:根据prefix
和ipda[95:64]组成的key查第二TCAM表得到第二前缀,根据第二前缀以及ipda[95:64]中
除该公共前缀以外的部分组成key查字典树路由表得到下一跳信息,并根据下一跳信息对
报文进行转发。
情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有
技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储
介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算
机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来
实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
位,所述第二部分是所述网络部分中的低32位;
第一前缀索引组合得到第二组合信息;
以及将所述第二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由
表中的路由表项。
述第二部分是所述网络部分中的低32位;将所述第一部分以及所述第一虚拟路由转发实例
标识组合得到第一组合信息,确定与所述第一组合信息对应的第一前缀索引,并将所述第
二部分与所述第一前缀索引组合得到第二组合信息;将所述第一组合信息以及所述第一前
缀索引对应存储在第一路由表中以将所述第一组合信息以及所述第一前缀索引作为所述
第一路由表中的路由表项,以及将所述第二组合信息存储在第二路由表中以将所述第二组
合信息作为所述第二路由表中的路由表项。因此,可以解决相关技术中ipv6路由的存储存
在存储资源浪费的问题,节省了ipv6路由所需的存储资源,并且提高了ipv6路由的表项规
格。
包括:第二TCAM路由表以及字典树路由表;其中,所述存储模块56,还用于:将所述第二组合
信息存储在所述HASH路由表中;或,确定所述第二部分中的第三部分和第四部分,其中,所
述第三部分是所述第二部分的公共前缀,所述第二部分由所述第三部分和所述第四部分组
成;将所述第三部分与所述第一前缀索引组合得到第三组合信息,将所述第三组合信息存
储在所述第二TCAM路由表中,并将所述第四部分存储在所述字典树路由表中。
ipv6地址,所述目的网络地址包括第五部分与可变部分,所述第五部分为所述目的网络地
址的高32位,所述可变部分为所述目的网络地址的低32位;第一匹配模块,用于将所述第五
部分与所述第二虚拟路由转发实例标识组成第一关键字,根据所述第一关键字在所述第一
路由表中查找匹配的第一表项,确定与所述第一表项对应的第二前缀索引以及与所述第二
前缀索引对应的第一前缀,确定所述第一前缀为所述目的网络地址的自治域前缀;第二匹
配模块,用于将所述可变部分与所述自治域前缀组成第二关键字,根据所述第二关键字在
所述第二路由表中查找匹配的路由表项。
所述下一跳信息对所述报文进行转发。
引以及与所述第三前缀索引对应的第二前缀,确定所述第二前缀为所述可变部分的前缀,
其中,所述可变部分由所述可变部分的前缀与第六部分组成,所述第六部分为所述可变部
分中除所述可变部分的前缀之外的部分;根据所述可变部分的前缀以及所述第六部分在所
述字典树路由表中查找匹配的第四表项,确定与所述第四表项对应的下一跳信息;根据所
述下一跳信息对所述报文进行转发。
分是所述网络部分中的低32位;
引组合得到第二组合信息;
二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表
项。
盘、磁碟或者光盘等各种可以存储程序代码的介质。
骤。
分是所述网络部分中的低32位;
引组合得到第二组合信息;
二组合信息存储在第二路由表中以将所述第二组合信息作为所述第二路由表中的路由表
项。
的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储
在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示
出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或
步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
同替换、改进等,均应包含在本发明的保护范围之内。