一种高效分布式路由表的实现方法

文档序号:7853469阅读:199来源:国知局
专利名称:一种高效分布式路由表的实现方法
技术领域
本发明涉及网络交换设备领域,具体来讲是一种高效分布式路由表的实现方法。
背景技术
随着网络技术的发展,网络规模越来越大,对网络交换设备的路由表容量和路由表查找效率的要求也越来越高。当前,对于网络核心路由器和三层交换机等IP网络交换设备,越来越多地采用了分布式软件架构,其基本特点是系统有专用的主控盘,同时存在多块独立的业务接口盘。在系统路由表的组成上,一般实现方法是主控盘根据网络拓扑生成路由信息表,各业务接口盘分别拷贝一份完全相同的路由信息表,该路由信息表对于业务接口盘来说即是转发信息表,其容量大小取决于业务接口盘的硬件转发表容量。当网络数据包到到达某一块业务接口盘时,业务接口盘首先根据目的IP地址查找本盘上的路由信息表,如果目的地址是本设备地址,则将数据包送主控盘处理;否则,根据查到的路由找到与其对应的出接口,在完成必要的业务处理后,将报文通过交换盘发给该出接口所在的业务接口盘,在出接口所在业务接口盘上,也可能会进行必要的业务处理,然后由出接口所在的业务接口盘将报文从该出接口发送出去。各个业务接口盘对数据包的处理方式相同,同时每个业务接口盘接收到的数据报文的目的IP地址都有可能是任意IP地址,因此为了保证所有数据报文在任意业务接口盘上都能被正确处理和转发,每个业务接口盘必须具备本设备学习到的所有路由信息。这样,单个业务接口盘上路由表的大小,就决定了整个设备路由表容量大小,从而一端设备的路由表容量取决于各业务接口盘中路由表容量最小的一个。举例来说,如果一端设备有三个业务接口盘,业务接口盘I的硬件转发表容量为A,业务接口盘2的硬件转发表容量为B,业务接口盘3的硬件转发表容量为C,若A = B =C,即三个业务接口盘路由表容量相同,则这端设备的路由表容量就等于A,而不能大于A ;若A < B < C,即业务接口盘I的硬件转发表容量比其他两个业务接口盘都小,则这端设备的路由表容量就等于A,也不能大于A。这样以来,在一端设备上如果有多个业务接口盘,这端设备在进行业务处理和业务转发过程中并不能充分利用所有的硬件资源,对于硬件资源来说是很大的浪费。同时,由于每个业务接口盘都存储了一个本端设备全局路由表,在路由查找效率上也会低于基于局部路由表查找。

发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种高效分布式路由表的实现方法,在不改变各个业务单盘硬件转发芯片的情况下,将分布式网络系统中多个单盘的路由表置加在一起,提闻整个系统设备的路由表容量,并通过_■级路由查找算法,有效提闻了路由表查找效率。为达到以上目的,本发明采取的技术方案是一种高效分布式路由表的实现方法,包括如下步骤S1.主控盘将路由信息表与静态路由表一起组成整机路由表,再根据哈希算法对整机路由表进行分组,将每个哈希分组对应下发到每个业务接口盘上,作为业务接口盘的一级路由表,针对每个哈希分组建立一个内部静态路由表条目,将所有哈希分组对应的内部静态路由表条目组成一个二级路由表,分别存储到每个业务接口盘上;S2.当一个业务接口盘由业务接口从路由系统外部收到数据报文后,如果查到路由,则将数据报文从相应端口发出;如果未查到,则查询二级路由表,如果在二级路由表中查到路由,则给该数据报文打上一个特殊标志,并转发给目标业务接口盘;如果在二级路由表中未查到,则丢弃该数据报文;S3.当一个业务接口盘由内部接口从路由系统内部收到数据报文后,首先检查该数据报文是否带有特殊标志,若有,则直接查询该业务接口盘的一级路由表;如果在一级路由表中查到对应的路由表项,则将该数据报文中的特殊标志剥离,还原数据报文后从该路由表所指定的端口发出;如果在一级路由表中查询失败,则将该数据报文丢弃;若无特殊标志,而根据其是否携本业务接口盘有效端口号信息,从相应端口发出或丢弃。在上述技术方案的基础上,所述SI中,路由信息表由分布式系统主控盘根据网络拓扑由动态路由协议生成。 在上述技术方案的基础上,所述SI中,哈希算法将路由表中目标地址的前X位的值作为键值,计算出每个路由表的哈希值,将哈希值相同的路由表分为一组,且保证各个分组中路由表的条目数最多相差一条。在上述技术方案的基础上,所述X值的大小根据整个分布式系统配置状况进行人工设置,或者通过自动检测业务接口盘的数目后,再通过整机路由表条目数计算出每个业务接口盘平均路由条目数,再根据每个业务接口盘平均路路由条目数反推出X的值。在上述技术方案的基础上,所述整机路由表中,允许每个哈希分组中一部分路由表条目的掩码长度小于X值,且这部分路由表条目不超过每个哈希分组中的路由表条目,该部分路由表作为公共部分,存储于每个哈希分组中。在上述技术方案的基础上,所述针对每个哈希分组建立多个内部静态路由表条目,其目的地址是对应哈希分组中每个哈希桶子网掩码长度为X的汇聚路由,下一跳是此哈希分组对应业务接口盘的IP地址,下一跳出端口是此内部静态路由表条目被存储的业务接口盘的内部接口 IP地址。在上述技术方案的基础上,对于每一个所述业务接口盘而言,由哈希分组生成的一级路由表为私有路由表,而二级路由表对于整个分布式系统是统一的。在上述技术方案的基础上,所述S2中,在查到路由情况下,当出端口是本业务接口盘的端口,则将数据报文从相应端口发出;当出端口是其他业务接口盘上的端口则在数据报文中按照事先确定的原则添加出端口号信息后,发送给出端口所在业务接口盘。在上述技术方案的基础上,所述S2中,特殊标志是一个系统内部特殊的虚拟局域网标签值,或者是一个保留的多协议标签交换标签值。在上述技术方案的基础上,所述S3中,若无特殊标志但携带了本业务接口盘有效端口号信息,则将出端口号信息剥离还原数据报文后,从相应端口发出;若无特殊标志,且没有携带本业务接口盘有效端口号信息,则将数据报文丢弃。本发明的有益效果在于本发明将分布式系统整机路由表分布到多个业务接口盘,整机路由表是各个业务接口盘路由表中非公共部分路由表的叠加,再加上公共部分路由表之和,解决了业务接口盘之间路由表不能置加的问题,有效提闻了设备整机路由表容量,降低了设备成本。同时,由于每个哈希分组的路由表条目远小于整机路由表条目,因此在路由查找时效率也会有所提高。


图I为本发明实施例利用哈希表对路由进行分组的示意图;图2为本发明实施例系统内部静态路由表的示意图;图3为本发明实施例一个业务接口盘的一级路由表和二级路由表的示意图;图4为本发明实施例一个业务接口盘的接口从路由系统外部收到数据报文后的 处理流程图;图5为本发明实施例一个业务接口盘的接口从路由系统内部收到数据报文后的处理流程图。
具体实施例方式以下结合附图及实施例对本发明作进一步详细说明。本发明所述高效分布式路由表的实现方法,包括如下步骤SI.主控盘将路由信息表与静态路由表一起组成整机路由表,再根据哈希算法对整机路由表进行分组,将每个哈希分组对应下发到每个业务接口盘上,作为业务接口盘的一级路由表,针对每个哈希分组建立一个内部静态路由表条目,将所有哈希分组对应的内部静态路由表条目组成一个二级路由表,分别存储到每个业务接口盘上。其中,SI的具体步骤如下Sll.分布式系统主控盘负责各个业务接口盘的控制及业务管理,首先所述主控盘启动动态路由协议,动态路由协议根据网络拓扑发送信令包生成R i b (Ro u t i n gInformation Base,路由信息表)表项,待网络稳定后,主控盘将Rib表与静态路由表一起组成整机路由表。S12.对所述整机路由表采用哈希算法进行分组,其中哈希算法使用整机路由表的目标地址的前X位的值作为键值,计算出每个路由表的哈希值,将哈希值相同的路由表分为一组,且保证各个分组中路由表的条目数最多相差一条。这个X值的大小可根据整个分布式系统配置状况进行手动人工设置,也可以通过自动检测业务接口盘的数目后,再通过整机路由表条目数计算出每个业务接口盘平均路由条目数,再根据每个业务接口盘平均路路由条目数反推出X的值进行设置。哈希算法分组中,确定X值的大小的基本原则是根据X值采用哈希算法进行分组后,每个哈希分组中的路由表条目数基本相等,若有剩余的条目数则按照系列号依次添加到对应的分组中,因此各个分组中路由表的条目数最多相差一条。所述整机路由表中,允许每个哈希分组中一部分路由表条目的掩码长度小于X值,且这部分路由表条目不超过每个哈希分组中的路由表条目,该部分路由表作为公共部分,存储于每个哈希分组中。所述主控盘将每个哈希分组对应下发到每个业务接口盘上,这样,除了所述掩码长度小于X值的公共部分路由表条目以外,整机路由表为各个业务接口盘路由表的置加。如图I所示,为本发明实施例利用哈希表对路由进行分组的示意图。主控盘将整机路由表(Rib表+静态路由表)按照X值大小分成哈希分组I、哈希分组2、哈希分组哈希分组m,主控盘将每个哈希分组对应下发到检测到的具体每个业务接口盘上,作为该业务接口盘的一级路由表,其中对于第m个分组,根据地址前缀长度为X的IP地址,按照哈希算法生成一个行哈希值,生成的这个行哈希值的前X位代表了这个行哈希值在哈希表中的哈希桶的编号;若不同地址前缀生成的哈希值相同,则将该地址前缀添加到哈希冲突链表中,查找时则按照实际的前缀长度值来进行最长匹配,这个哈希冲突链表,即为哈希分组中的公共部分。S13.各个业务接口盘针对每个哈希分组建立若干个内部静态路由表条目,目的地址是对应哈希分组中每个哈希桶子网掩码长度为X的汇聚路由,下一跳是此哈希分组对应业务接口盘的IP地址,下一跳出端口是此内部静态路由表条目被存储的业务接口盘的内部接口 IP地址。将所有哈希分组对应的系统内部静态路由表条目,最终组成一个二级路由表,分别存储到所述分布式系统的各个业务接口盘上,即这个二级路由表在每个业务接口 盘上保存一个拷贝。如图2所示,为本发明实施例系统内部静态路由表的示意图,即针对于某个哈希分组中的特定哈希桶,其对应的内部静态路由条目。例如哈希分组m地址前缀长度为X的IP地址哈希桶,若X为16,哈希桶键值为192. 168. 0. 0 ;则对应此哈希分组m中的这个哈希桶生成的静态路由条目为192. 168. 0. 0/16。对于每一个业务接口盘而言,由哈希分组生成的一级路由表为私有路由表,而二级路由表对于整个分布式系统为统一的,业务接口盘的一级路由表和二级路由表的关系如图3所示。单盘m—级路由表…单盘n—级路由表,二级路由表包括由单盘m—级路由表生成的二级路由表…由单盘n—级路由表生成的二级路由表。S2.当一个业务接口盘由业务接口从路由系统外部收到数据报文后,如果查到路由,则将数据报文从相应端口发出;如果未查到,则查询二级路由表,如果在二级路由表中查到路由,则给该数据报文打上一个特殊标志,并转发给目标业务接口盘;如果在二级路由表中未查到,则丢弃该数据报文。如图4所示,其具体步骤如下S20.业务接口盘由业务接口从路由系统外部收到数据报文。S21.获取数据报文的目标地址,并与业务接口盘一级路由表条目进行操作,按照最长匹配原则查找路由。S22.判断是否在一级路由表中查到路由,如果查到路由,则进入S27 ;如果未查至Ij,则进入S23。S23.以数据报文的目标地址查找二级路由表。S24.判断二级路由表查找是否成功,即其中是否查到路由,若是,进入S25 ;若否,进如S26。S25.给该数据报文打上一个特殊标志,并转发给目标业务接口盘;这个标志可以是一个系统内部特殊的VLAN(Virtual Local Area Network,虚拟局域网)标签值,也可以是一个保留的私有MPLS (Multi-Protocol Label Switching,多协议标签交换)标签值。S26.则丢弃该数据报文。S27.根据匹配的路由条目的下一跳,判断出端口是否为本业务接口盘上的端口,若是,进入S28 ;若否,进入S29。S28.将数据报文从相应端口发出。S29.在数据报文中按照事先确定的原则添加出端口号信息后,发送给出端口所在业务接口盘。S3.当一个业务接口盘由内部接口从路由系统内部收到数据报文后,首先检查该数据报文是否带有特殊标志,若有,则直接查询该业务接口盘的一级路由表;如果在一级路由表中查到对应的路由表项,则将该数据报文中的特殊标志剥离,还原数据报文后从该路由表所指定的端口发出;如果在一级路由表中查询失败,则将该数据报文丢弃;若无特殊标志,而根据其是否携带出端口号信息,从相应端口发出或丢弃。如图5所示,其具体步骤如下
S31.业务接口盘由内部接口从路由系统内部收到数据报文。S32.检测该数据报文是否添加了所述特殊标志,若是,进入S33 ;若否,进入S36。S33.判断一级路由表是否查找成功,即是否查到对应的路由表项,若是,进入S34 ;若否,进入S38。S34.将该数据报文中的特殊标志剥离,还原数据报文,进入S35。S35.根据匹配的路由条目的下一跳,从该路由表所指定的端口发出该数据报文。S36.检测该数据报文是否携带了本业务接口盘有效端口号信息,若是,进入S37 ;若否,进入S38。S37.则将出端口号信息剥离还原数据报文后,从相应端口发出。S38.将该数据报文丢弃。本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
权利要求
1.一种高效分布式路由表的实现方法,其特征在于,包括如下步骤 51.主控盘将路由信息表与静态路由表一起组成整机路由表,再根据哈希算法对整机路由表进行分组,将每个哈希分组对应下发到每个业务接ロ盘上,作为业务接ロ盘的ー级路由表,针对每个哈希分组建立ー个内部静态路由表条目,将所有哈希分组对应的内部静态路由表条目组成ー个ニ级路由表,分别存储到每个业务接ロ盘上; 52.当一个业务接ロ盘由业务接ロ从路由系统外部收到数据报文后,如果查到路由,则将数据报文从相应端ロ发出;如果未查到,则查询ニ级路由表,如果在ニ级路由表中查到路由,则给该数据报文打上ー个特殊标志,并转发给目标业务接口盘;如果在ニ级路由表中未查到,则丢弃该数据报文; 53.当一个业务接ロ盘由内部接ロ从路由系统内部收到数据报文后,首先检查该数据报文是否带有特殊标志,若有,则直接查询该业务接ロ盘的ー级路由表;如果在ー级路由表 中查到对应的路由表项,则将该数据报文中的特殊标志剥离,还原数据报文后从该路由表所指定的端ロ发出;如果在ー级路由表中查询失败,则将该数据报文丢弃;若无特殊标志,而根据其是否携本业务接ロ盘有效端口号信息,从相应端ロ发出或丢弃。
2.如权利要求I所述的高效分布式路由表的实现方法,其特征在于所述SI中,路由信息表由分布式系统主控盘根据网络拓扑由动态路由协议生成。
3.如权利要求I所述的高效分布式路由表的实现方法,其特征在于所述SI中,哈希算法将路由表中目标地址的前X位的值作为键值,计算出每个路由表的哈希值,将哈希值相同的路由表分为ー组,且保证各个分组中路由表的条目数最多相差一条。
4.如权利要求3所述的高效分布式路由表的实现方法,其特征在于所述X值的大小根据整个分布式系统配置状况进行人エ设置,或者通过自动检测业务接ロ盘的数目后,再通过整机路由表条目数计算出每个业务接ロ盘平均路由条目数,再根据每个业务接ロ盘平均路路由条目数反推出X的值。
5.如权利要求3所述的高效分布式路由表的实现方法,其特征在于所述整机路由表中,允许每个哈希分组中一部分路由表条目的掩码长度小于X值,且这部分路由表条目不超过每个哈希分组中的路由表条目,该部分路由表作为公共部分,存储于每个哈希分组中。
6.如权利要求I或3所述的高效分布式路由表的实现方法,其特征在于所述针对每个哈希分组建立多个内部静态路由表条目,其目的地址是对应哈希分组中每个哈希桶子网掩码长度为X的汇聚路由,下一跳是此哈希分组对应业务接ロ盘的IP地址,下一跳出端ロ是此内部静态路由表条目被存储的业务接ロ盘的内部接ロ IP地址。
7.如权利要求6所述的高效分布式路由表的实现方法,其特征在于对于每一个所述业务接ロ盘而言,由哈希分组生成的ー级路由表为私有路由表,而ニ级路由表对于整个分布式系统是统一的。
8.如权利要求I所述的高效分布式路由表的实现方法,其特征在于所述S2中,在查到路由情况下,当出端ロ是本业务接ロ盘的端ロ,则将数据报文从相应端ロ发出;当出端ロ是其他业务接ロ盘上的端ロ则在数据报文中按照事先确定的原则添加出端口号信息后,发送给出端ロ所在业务接ロ盘。
9.如权利要求I所述的高效分布式路由表的实现方法,其特征在于所述S2中,特殊标志是一个系统内部特殊的虚拟局域网标签值,或者是ー个保留的多协议标签交换标签值。
10.如权利要求I所述的高效分布式路由表的实现方法,其特征在于所述S3中,若无特殊标志但携帯了本业务接ロ盘有效端口号信息,则将出端口号信息剥离还原数据报文后,从相应端ロ发出;若无特殊标志,且没有携带本业务接ロ盘有效端口号信息,则将数据报文丢弃。
全文摘要
一种高效分布式路由表的实现方法,涉及网络交换设备领域,包括步骤S1.路由信息表与静态路由表组成整机路由表,根据哈希算法将每个哈希分组建立一级路由表,组成一个二级路由表;S2.当从路由系统外部收到数据报文后,如查到路由,则将数据报文从相应端口发出;如果未查到,如在二级路由表中查到路由,则打上一个特殊标志并转发给目标业务接口盘;如未查到,则丢弃;S3.当从路由系统内部收到数据报文后,检查是否带有特殊标志,若有,则直接查询该业务接口盘的一级路由表;如查到,则将特殊标志剥离,从指定的端口发出;如查询失败,则丢弃。本发明将多个业务接口盘的路由表叠加,提高路由表容量,同时效提高路由表查找效率。
文档编号H04L12/56GK102739526SQ20121019280
公开日2012年10月17日 申请日期2012年6月13日 优先权日2012年6月13日
发明者张峰, 马红斌 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1