一种新型的路由表建立、以及IP路由查找方法和装置制造方法及图纸

技术编号:17783979 阅读:23 留言:0更新日期:2018-04-22 15:16
本发明专利技术实施例公开了一种新型的路由表建立、以及IP路由查找方法和装置,其中,所述路由表的建立方法包括:获取路由信息,所述路由信息包括虚拟路由转发域编号VRF_ID、互联网协议IP地址和所述IP地址对应的输出端口;根据所述VRF_ID和所述IP地址组合成一个路由条目区间;利用预设的哈希算法对所述路由条目区间的起始端点中的VRF_ID进行哈希运算,获得所述VRF_ID对应的哈希值;利用所有所述哈希值相等的起始端点生成一个树表;其中,所述树表的叶子节点包含所述起始端点对应的输出端口,且所述IP地址对应的输出端口与所述起始端点对应的输出端口相同;根据生成的所有树表构建主路由表。

【技术实现步骤摘要】
一种新型的路由表建立、以及IP路由查找方法和装置
本专利技术涉及分组交换
,尤其涉及一种新型的路由表建立、以及IP路由查找方法和装置。
技术介绍
随着因特网(Internet)的快速发展,路由表的规模也随之增大。为了能够降低路由表规模的增长速度以及提高地址空间的利用率,国际互联网工程任务组(IETF,InternetEngineeringTaskForce)为Internet提出了一种称之为无类域间路由(CIDR,ClasslessInter-DomainRouting)的地址结构,CIDR抛弃了传统基于类的地址分配方式,规定可以使用任意长度的网络地址部分,因此产生了“网络前缀”的概念。CIDR使用任意长度的网络前缀来代替传统分类地址中的网络号和子网号,而不是像分类地址中只能使用1字节、2字节和3字节的网络号;因此,在CIDR地址结构体系下,路由表的规模得到了一定控制;但是,网络前缀的查找让设计变得非常复杂,网络前缀的查找不仅需要与前缀比特位进行匹配查找,还需要考虑网络前缀的长度。在现有技术中,现行的互联网协议(IP,InternetProtocol)路由交换设备通常采用三态内容寻址存储器(TCAM,TernaryContentAddressableMemory)实现IP地址最长前缀的查找。TCAM采用并行查找技术,使得查找速度和表项的条目数量无关。同时,为了实现较高的查找速度并得到最长前缀匹配(LPM,LongestPrefixMatching)的地址,在TCAM中要按照IP地址前缀的长度由长到短的顺序排列各类表项,最终可以实现路由表在一百多万条条目的情况下,每秒上亿次的查找速度。上述TCAM技术的优势在于:并行查找使得一个时钟周期可以完成查找过程,且可以级联多个TCAM来增加查找表容量,其实现比较简单。但是,TCAM技术仍然存在一些不足:第一、TCAM在同一时钟周期内需要将待查找的关键字和TCAM路由表中的每一个条目进行比较,所以功耗比较大;第二、由于TCAM实现的结构是待查找关键字和配置的路由表的每个条目同时进行比较,因此每个条目都对应一个比较器,从而导致TCAM器件成本比较高,价格昂贵;第三、由于采用TCAM技术实现所需的比较器总数与路由表中的路由条目总数相等,因此,在实际应用中,在一定程度上限制了采用TCAM实现的路由表的规模。
技术实现思路
为解决上述技术问题,本专利技术实施例期望提供一种新型的路由表建立、以及IP路由查找方法和装置,用以减少路由条目的比较次数,从而减少电路中比较器的个数,降低实现的成本和功耗。本专利技术的技术方案是这样实现的:第一方面,本专利技术实施例提供了一种新型的路由表建立方法,所述方法包括:获取路由信息;其中,所述路由信息包括虚拟路由转发域编号VRF_ID、互联网协议IP地址和所述IP地址对应的输出端口;根据所述VRF_ID和所述IP地址组合成一个路由条目区间;利用预设的哈希算法对所述路由条目区间的起始端点中的VRF_ID进行哈希运算,获得所述VRF_ID对应的哈希值;利用所有所述哈希值相等的起始端点生成一个树表;其中,所述树表的叶子节点包含所述起始端点对应的输出端口,且所述IP地址对应的输出端口与所述起始端点对应的输出端口相同;根据生成的所有树表构建主路由表。在上述方案中,所述利用所有所述哈希值相等的起始端点生成一个树表;其中,所述树表的树节点不仅用于确定匹配的端点,还用于确定搜索路径。在上述方案中,当所述树表为2-3树表时,所述利用所有所述哈希值相等的起始端点生成一个树表,具体包括:将所有所述哈希值相等的起始端点按照由小到大的顺序排序,并将排序后的所有起始端点存放在数组a[n]中;从所述数组a[n]中提取a[2×(i-1)]的数据作为所述树表的第一层从左至右的第i个节点的左端点;其中,1≤i≤(n+1)/2,n≥1;从所述数组a[n]中提取a[2×(i-1)+1]的数据作为所述树表的第一层从左至右的第i个节点的右端点;从所述数组a[n]中提取a[2×3(p-2)+2×3(p-1)×(k-1)]的数据作为所述树表的第p层从左至右的第k个节点的左端点;其中,p≥2,1≤k≤(log3t)-1,t为第p-1层的节点总数;从所述数组a[n]中提取a[4×3(p-2)+2×3(p-1)×(k-1)]的数据作为所述树表的第p层从左至右的第k个节点的右端点。在上述方案中,所述根据生成的所有树表构建主路由表,具体包括:根据所述哈希值索引的存储地址写入路由器对应的主路由表存储区,完成所述主路由表的构建。第二方面,本专利技术实施例提供了一种IP路由查找方法,所述方法包括:根据接收的IP数据包的输入端口和虚拟局域网编号VLAN_ID映射获取所述IP数据包对应的VRF_ID;读取所述IP数据包中的目的IP地址,并将所述目的IP地址与所述VRF_ID组合成一条待查找路由条目;利用所述哈希算法对所述待查找路由条目中的VRF_ID进行哈希运算获得哈希值;根据所述哈希值查找所述主路由表,确定所述IP数据包的输出端口;其中,所述主路由表为权利要求1至4任一项所述的主路由表。在上述方案中,所述根据所述哈希值查找所述主路由表,确定所述IP数据包的输出端口,具体包括:将所述哈希值作为所述主路由表表项存储地址的索引,从所述主路由表中索引获得所述哈希值对应的树表节点;其中,所述树表节点即为所述主路由表的表项;根据所述树表节点的内容,查找获得与所述待查找路由条目相匹配的端点,获取所述IP数据包的输出端口。在上述方案中,所述根据所述树表节点的内容,查找获得与所述待查找路由条目相匹配的端点,获取所述IP数据包的输出端口,具体包括:当所述节点内容中的节点类型为根节点或者中间节点时,根据所述待查找路由条目与所述节点端点的关系取出所述节点中的对应指针,并读取所述指针所指向的树表节点中的节点内容;当所述节点内容中的节点类型为叶子节点时,根据所述待查找路由条目与所述叶子节点端点的关系,获取所述IP数据包的输出端口。在上述方案中,当所述树表是2-3树表时,所述当所述节点内容中的节点类型为根节点或者中间节点时,根据所述待查找路由条目与所述节点端点的关系取出所述节点中的对应指针,并读取所述指针所指向的树表节点中的节点内容,具体包括:当所述待查找路由条目小于所述节点的左端点时,取出所述节点中的左指针,读取所述左指针所指向的树表节点中的节点内容;当所述待查找路由条目大于或等于所述节点的左端点,且小于所述节点的右端点时,取出所述节点中的中指针,读取所述中指针所指向的树表节点中的节点内容;当所述待查找路由条目大于或等于所述节点的右端点时,取出所述节点中的右指针,读取所述右指针所指向的树表节点中的节点内容。在上述方案中,当所述树表是2-3树表时,所述当所述节点内容中的节点类型为叶子节点时,根据所述待查找路由条目与所述叶子节点端点的关系,获取所述IP数据包的输出端口,具体包括:当所述待查找路由条目与所述叶子节点的左端点相等时,将所述叶子节点的左端点对应的输出端口作为所述IP数据包的输出端口;当所述待查找路由条目与所述叶子节点的右端点相等时,将所述叶子节点的右端点对应的输出端口作为所述IP数据包的输出端口;当所述待查找路由条目大于所述叶子节点的本文档来自技高网
...
一种新型的路由表建立、以及IP路由查找方法和装置

【技术保护点】
一种新型的路由表建立方法,其特征在于,所述方法包括:获取路由信息;其中,所述路由信息包括虚拟路由转发域编号VRF_ID、互联网协议IP地址和所述IP地址对应的输出端口;根据所述VRF_ID和所述IP地址组合成一个路由条目区间;利用预设的哈希算法对所述路由条目区间的起始端点中的VRF_ID进行哈希运算,获得所述VRF_ID对应的哈希值;利用所有所述哈希值相等的起始端点生成一个树表;其中,所述树表的叶子节点包含所述起始端点对应的输出端口,且所述IP地址对应的输出端口与所述起始端点对应的输出端口相同;根据生成的所有树表构建主路由表。

【技术特征摘要】
1.一种新型的路由表建立方法,其特征在于,所述方法包括:获取路由信息;其中,所述路由信息包括虚拟路由转发域编号VRF_ID、互联网协议IP地址和所述IP地址对应的输出端口;根据所述VRF_ID和所述IP地址组合成一个路由条目区间;利用预设的哈希算法对所述路由条目区间的起始端点中的VRF_ID进行哈希运算,获得所述VRF_ID对应的哈希值;利用所有所述哈希值相等的起始端点生成一个树表;其中,所述树表的叶子节点包含所述起始端点对应的输出端口,且所述IP地址对应的输出端口与所述起始端点对应的输出端口相同;根据生成的所有树表构建主路由表。2.根据权利要求1所述的方法,其特征在于,所述利用所有所述哈希值相等的起始端点生成一个树表;其中,所述树表的树节点不仅用于确定匹配的端点,还用于确定搜索路径。3.根据权利要求1所述的方法,其特征在于,当所述树表为2-3树表时,所述利用所有所述哈希值相等的起始端点生成一个树表,具体包括:将所有所述哈希值相等的起始端点按照由小到大的顺序排序,并将排序后的所有起始端点存放在数组a[n]中;从所述数组a[n]中提取a[2×(i-1)]的数据作为所述树表的第一层从左至右的第i个节点的左端点;其中,1≤i≤(n+1)/2,n≥1;从所述数组a[n]中提取a[2×(i-1)+1]的数据作为所述树表的第一层从左至右的第i个节点的右端点;从所述数组a[n]中提取a[2×3(p-2)+2×3(p-1)×(k-1)]的数据作为所述树表的第p层从左至右的第k个节点的左端点;其中,p≥2,1≤k≤(log3t)-1,t为第p-1层的节点总数;从所述数组a[n]中提取a[4×3(p-2)+2×3(p-1)×(k-1)]的数据作为所述树表的第p层从左至右的第k个节点的右端点。4.根据权利要求1所述的方法,其特征在于,所述根据生成的所有树表构建主路由表,具体包括:根据所述哈希值索引的存储地址写入路由器对应的主路由表存储区,完成所述主路由表的构建。5.一种IP路由查找方法,其特征在于,所述方法包括:根据接收的IP数据包的输入端口和虚拟局域网编号VLAN_ID映射获取所述IP数据包对应的VRF_ID;读取所述IP数据包中的目的IP地址,并将所述目的IP地址与所述VRF_ID组合成一条待查找路由条目;利用所述哈希算法对所述待查找路由条目中的VRF_ID进行哈希运算获得哈希值;根据所述哈希值查找所述主路由表,确定所述IP数据包的输出端口;其中,所述主路由表为权利要求1至4任一项所述的主路由表。6.根据权利要求5所述的方法,其特征在于,所述根据所述哈希值查找所述主路由表,确定所述IP数据包的输出端口,具体包括:将所述哈希值作为所述主路由表表项存储地址的索引,从所述主路由表中索引获得所述哈希值对应的树表节点;其中,所述树表节点即为所述主路由表的表项;根据所述树表节点的内容,查找获得与所述待查找路由条目相匹配的端点,获取所述IP数据包的输出端口。7.根据权利要求6所述的方法,其特征在于,所述根据所述树表节点的内容,查找获得与所述待查找路由条目相匹配的端点,获取所述IP数据包的输出端口,具体包括:当所述节点内容中的节点类型为根节点或者中间节点时,根据所述待查找路由条目与所述节点端点的关系取出所述节点中的对应指针,并读取所述指针所指向的树表节点中的节点内容;当所述节点内容中的节点类型为叶子节点时,根据所述待查找路由条目与所述叶子节点端点的关系,获取所述IP数据包的输出端口。8.根据权利要求7所述的方法,其特征在于,当所述树表是2-3树表时,所述当所述节点内容中的节点类型为根节点或者中间节点时,根据所述待查找路由条目与所述节点端点的关系取出所述节点中的对应指针,并读取所述指针所指向的树表节点中的节点内容,具体包括:当所述待查找路由条目小于所述节点的左端点时,取出所述节点中的左指针,读取所述左指针所指向的树表节点中的节点内容;当所述待查找路由条目大于或等于所述节点的左端点,且小于所述节点的右端点时,取出所述节点中的中指针,读取所述中指针所指向的树表节点中的节点内容;当所述待查找路由条目大于或等于所述节点的右端点时,取出所述节点中的右指针,读取所述右指针所指向的树表节点中的节点内容。9.根据权利要求7所述的方法,其特征在于,当所述树表是2-3树表时,所述当所述节点内容中的节点类型为叶子节点时,根据所述待查找路由条目与所述叶子节点端点的关系,获取所述IP数据包的输出端口,具体包括:当所述待查找路由条目与所述叶子节点的左端点相等时,将所述叶子节点的左端点对应的输出端口作为所述IP数据包的输出端口;当所述待查找路由条目与所述叶子节点的右端点相等时,将所述叶子节点的右端点对应的输出端口作为所述IP数据包的输出端口;当所述待查找路由条目大于所述叶子节点的左端点且小于所述叶子节点的右端点时,将所述叶子节点的左端点和右端点组成的区间对应的输出端口作为所述IP数据包的输出端口;当所述待查找路由条目大于所述叶子节点的右端点时,将大于所述叶子节点右端点的对应输出端口作为所述IP数据包的输出端口。10.根据权利要求7至9任一项中所述的方法,其特征在于,当本层节点处理完当前IP数据包的路由查找后,所述方法还包括:所述本层节点立即将所述当前IP数据包交给下一层节点处理,并对下一个IP数据包进行IP路由查找。11.根据权利要求1所述的方法,其特征在于,所述方法还包括:在完成所述主路由表建立的同时,对所述主路由表进行备份。12.根据权利要求1所述的方法,其特征在于,当需要对所述主路由表进行更新时,所述方法还包括:根据新的配置规则调整所述树表的数据结构;根据调整后的树表更新所述备份路由表;从所述主路由表切换到所述备份路由表上进行IP路由的查找;...

【专利技术属性】
技术研发人员:陈钦树
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1