一种路由表复用的方法

文档序号:7550969阅读:185来源:国知局
专利名称:一种路由表复用的方法
技术领域
本发明涉及数据通信领域,更确切地说是涉及一种路由表复用的方法。
背景技术
在接入服务器中,路由转发板相当于一台路由器,主要完成路由转发的功能。在路由转发板中,路由表保存着路由选择等许多非常重要的信息,是路由和转发的基础。
在使用IXP1200等处理器时,为了便于用简单的算法来实现路由的快速查找,路由表往往要占用很大的内存资源。如果接入服务器的功能单一,采用这种方法简单、容易实现,而且便于开发。但是随着接入技术的发展,接入服务器的功能也在不断增加,如果这些增加的功能也需要实现路由的快速查找,则对应这些增加功能的路由表同样需要占用很大的内存资源。这样对于有限的内存资源来说,则难以满足不断增长的功能的要求,而且,如果接入服务器要支持多种功能,就需要多种路由表。在如此多的路由表中查找某个表的速度会很慢,相应的查表效率就会很低。比如,如果系统支持网络地址转换(NAT,Net Address Transition)功能,需要对访问控制列表(ACL,Access Control List)进行匹配,如果ACL的数量较大,则采用普通的算法对ACL进行匹配的效率会非常低。
针对上述问题,现有的解决方案是使不同的功能需求占用不同的内存空间,而由于内存资源有限,所以采用多块不同的路由板来实现不同的功能。
采用这种方案时,查找某一种表只需要在相应的内存空间查找,这样查表的效率不会降低,而且该方案的技术实现简单且易于开发,但是随着系统功能的不断扩展,针对不同的功能需要配备不同的路由转发板,这样就需要很大的投入,从而加大了产品的成本,而且使得路由转发板的构造也更复杂,从而加大了维护路由转发板的难度。

发明内容
有鉴于此,本发明的主要目的是提供一种实现路由表复用的方法,以使接入服务器在增加新功能的同时减少对内存资源的使用,使转发路由板能同时支持多种功能,且能提高系统的路由查找效率。
为达到上述目的,本发明的技术方案具体是这样实现的一种路由表复用的方法,包括在路由表中增加用于标识路由项功能的主标记位、用于标识从父路由项中扩展功能的扩展标记位和用于标识父路由项子网掩码长度的子网掩码字段位;将最小的路由项对应的路由表项作为路由表的当前路由表项。
根据上述本发明方法,进一步包括在所述路由表中增加路由项,包括以下步骤a1.在所述路由表中保存所要增加的路由项的内容;a2.在所述路由表中查找是否存在与所要增加的路由项的IP地址和子网掩码均相同的路由项,如果存在,则在该路由项对应的路由表项中标识所要增加的路由项功能的主标记,并转至步骤a4,否则进入下一步;a3.在所述路由表中增加一个对应于所要增加的路由项的路由表项,并在其中标识该路由项功能的主标记;a4.查找所要增加的路由项是否存在父路由项,如果不存在父路由项,则转至步骤a6,否则进入下一步;a5.将所查到的父路由项中的内容扩展到所要增加的路由项中,包括在所要增加的路由项对应的路由表项中标识该父路由项的主标记、扩展标记和子网掩码字段;a6.查找所要增加的路由项所有的子路由项,如果有,则将所要增加的路由项的内容扩展给所有的子路由项,包括在所有子路由项对应的路由表项中标识该所要增加的路由项的主标记、扩展标记和子网掩码字段。
进一步还可包括步骤a7.在路由表中查找最小的路由项,并将该最小的路由项对应的路由表项作为复用后的路由表的当前路由表项。
根据上述本发明方法,进一步包括在所述路由表中删除路由项,包括以下步骤b1.在所述路由表中查找所要删除的路由项是否存在父路由项,如果存在父路由项,则从父路由项中取得内容,否则,设置其父路由项中内容为空;b2.在所述路由表中查找所要删除的路由项所有的子路由项,如果没有子路由项,则直接进入步骤b3,如果有,则将所有子路由项中从所要删除的路由项中扩展而得的内容更新为父路由项中的内容,并去掉所有子路由项对应的路由表项中所要删除的路由项功能的主标记、扩展标记和子网掩码字段的标识,进入步骤b3;b3.判断是否存在与所要删除的路由项的IP地址和子网掩码均相同的路由项,如果没有,则转至步骤b5,否则,进入下一步;b4.清除路由表中与所要删除的路由项相关的内容,并去掉该所要删除的路由项对应的路由表项中该所要删除的路由项功能主标记的标识,结束;b5.清除路由表中与所要删除的路由项相关的内容,并删除该路由项对应的路由表项,结束。
进一步还可包括步骤b6.在路由表中查找路由表中最小的路由项,并将该最小的路由项对应的路由表项作为删除路由项后的路由表的当前路由表项。
所述的路由项功能可以为TOS功能,还可以为源地址路由功能、NAT功能或PRE功能。
上述最小的路由项是根据最长匹配算法查找得出。
本发明方案设计一个用于复用的路由表,如果需要增加接入服务器功能,则需要将该功能对应路由项的内容保存在所设计的用于复用的路由表中;如果需要删除接入服务器功能,则删除路由表中保存的与所要删除的接入服务器功能对应路由项的内容及路由表项。采用本发明方法通过复用路由表即可使路由板能同时支持多种功能,且能实现路由的快速查找,不需要通过增加路由板来实现增加接入服务器功能的目的,因此大大降低了系统的成本;对复用后的路由表中不同的功能可以用同一种查表方法查找,提高了系统的工作效率与稳定性,且便于系统的维护。


图1为本发明所设计的复用路由表的格式;图2为在复用路由表中增加路由项的操作流程图;图3为在复用路由表中删除路由项的操作流程图;图4为本发明的实施例中的一种复用路由表的格式;图5为本发明的实施例中可以实现复用的源地址路由表中的源地址路由表项;图6为本发明的实施例中在源地址路由表中复用TOS功能后的TOS路由表项;图7为本发明的实施例中在源地址路由表中复用TOS和NAT功能后的NAT路由表项;图8为本发明的实施例中在源地址路由表中复用TOS和NAT功能后的TOS路由表项;图9为本发明的实施例中在复用后的源地址路由表中删除源地址路由项后的NAT路由表项;图10为本发明的实施例中在复用后的源地址路由表中删除源地址路由项后的TOS路由表项。
具体实施例方式
下面结合附图及具体实施例对本发明方法作进一步详细的说明。
本发明提供一种用于复用的路由表,其具体结构参见图1,该表中为功能复用而设置的表项有主标记位、扩展标记位和子网掩码(Mask)字段位,其中的主标记位用于标识路由项的功能及用处,扩展标记位用于标识路由项从其父路由项扩展了该功能,Mask字段位用于标识各路由项的父路由项的子网掩码长度,主标记位、扩展标记位和Mask字段位一一对应。
基于本法明的复用路由表,可以把多种功能的内容复用到路由表中,使得一块路由板可以支持多种功能,并将内存资源的占用降到最低,可以大大降低系统的开发成本,并可以采用同一种查表方法实现对不同功能的查找,可以提高系统的工作效率与稳定性,便于系统的维护。
在需要增加功能的接入服务器中预先设置一个图1所示用于复用的路由表,该复用路由表中设置可能会复用的路由项的主标记、扩展标记和Mask字段。如果需要在接入服务器中增加该路由表中的路由项所对应的功能,则在复用路由表中增加该路由项,包括保存该路由项的内容和对应的路由表项;如果需要删除接入服务器的功能,则删除路由表中该功能对应的路由项及其对应的路由表项。
下面首先对增加接入服务器功能作详细说明。
参见图2,增加路由项的具体操作流程为A.在复用路由表中保存所要增加的路由项的内容;B.查找复用路由表中是否存在与所要增加的路由项IP地址和子网掩码均相同,即同级的路由项,如果存在,则在该路由项对应的路由表项中标识所要增加的路由项的主标记,并进入步骤D,否则,进入下一步;C.在复用路由表中设置一个对应于所要增加的路由项的路由表项,在该路由表项中标识该路由项的主标记;D.查找所要增加的路由项是否存在父路由项,如果不存在父路由项,则跳至步骤F,否则进入下一步;E.将所查到的父路由项中相关的内容扩展到所要增加的路由项中,并在所要增加的路由项对应的路由表项中标识该父路由项的主标记、扩展标记和Mask字段;F.查找所要增加的路由项所有的子路由项,如果有子路由项,则将该路由项中的内容扩展给所有的子路由项,并在所有的子路由项对应的路由表项中标识该路由项的主标记、扩展标记和Mask字段。
下面举例对采用上述方法增加接入服务器功能作详细说明。
根据增加服务器功能的需要,要在一个源地址路由表中增加一个IP地址为ip1、子网掩码为Mask1的路由项用作NAT功能,这个源地址路由表与图1所示的路由表格式相同,设置了源地址路由功能和NAT功能的标识S、SL、Mask of Srt、N、NL和Mask of NAT,以表示该路由表可以复用这两种功能,该源地址路由表中已经有了一个用作源地址路由的路由项,其IP地址为ip1、子网掩码为Mask1,且该源地址路由项对应的路由表项中标识了S,则增加NAT路由项的具体方法是将NAT路由项相关的内容保存在该源地址路由表中,并在源地址路由项对应的路由表项中增加主标记N,这样这个路由表项就同时是源地址路由项和NAT路由项的路由表项,此时,源地址路由功能和NAT功能只对应一个路由表项。同样,如果还需要增加类似别的功能,只需要按照上述方法在复用路由表中存储与所增加的功能相关的内容,然后在路由表项中增加相应的主标记以使该路由表项同时记录多种功能,从而实现一个复用路由表同时支持多种功能。
上述对路由表复用的方法中,所复用的路由项与源地址路由项是IP地址相同、子网掩码长度也相同的同级路由项,如果所增加的路由项与源地址路由项之间存在父子路由关系,则路由表的复用就要相对复杂一些。下面结合附图对这种情况的路由表的复用方法作详细说明。
在图1的复用路由表中设置服务类型(TOS,Type of Service)功能、源地址路由功能、网络隧道协议(PRE)功能和NAT功能的标识,以表示该路由表可以复用这几种功能,设置后的复用路由表参见图4。图中所示的复用路由表中包含了用于标识路由项的主标记位T、S、P和N,用于表示路由项的相关功能是从父路由项扩展而得的扩展标记位TL、SL、NL和PL,和用于标识路由项的父路由项子网掩码长度的字段Mask of TOS、Mask ofSrt、Mask of NAT和Mask of PRE。其中,主标记位中的T表示该路由表项记录TOS功能,S表示该路由表项记录源地址路由功能,N表示该路由表项记录NAT功能,P表示该路由表项记录PRE功能;扩展标志位TL、SL、NL和PL与Mask字段Mask of TOS、Mask of Srt、Mask of NAT和Mask ofPRE分别与主标记位的T、S、P和N对应。
在路由表复用的过程中,采用最长匹配算法来查找出路由表中最小的子路由项,并将该最小的子路由项作为复用后的路由表中的当前表项。
具体应用图4所提供的复用路由表。复用路由表中需要包括一个IP地址为10.11.0.0、子网掩码为255.255.0.0的源地址路由项10.11.0.0/16,则根据图4所示的复用路由表,该源地址路由项对应的路由表项参见图5,该路由表项中的S作了标识。现在要在该复用路由表中增加一个IP地址为10.11.1.1、子网掩码为255.255.255.255的TOS路由项10.11.1.1/32,则首先在复用路由表中保存该路由项的内容,并查找出该复用路由表中没有与TOS路由项10.11.1.1/32的IP地址和子网掩码均相同的路由项,则进一步查找出其父路由项为源地址路由项10.11.0.0/16,并将该路由项中的内容扩展到TOS路由项10.11.1.1/32中,根据最长匹配算法查找出TOS路由项10.11.1.1/32即为该路由表中最小的子路由项,将其对应的表项作为复用后的路由表的当前表项,设置与其对应的路由表项,该路由表项与图5所示的路由表项格式相同,标识该路由表项中的主标记T,并同时标识主标记S和扩展标记SL以表示该路由表项还可以用作源地址路由,并且从源地址路由项中扩展了相关内容,设置Mask of Srt的值为16以表示该路由项的父路由项为源地址路由项10.11.0.0/16,且该源地址路由项的子网掩码的长度为16。复用后针对TOS路由项10.11.1.1/32的路由表项如图6所示,而针对源地址路由项10.11.0.0/16的路由表项不变,与图5相同。
要在上述复用后的路由表中进一步复用一个IP地址为10.11.1.0,子网掩码为255.255.255.0的NAT路由项10.11.1.0/24,则同样先在路由表中保存该路由项的相关内容,并查找出该复用路由表中没有与该路由项的IP地址和子网掩码均相同的路由项,然后查找是否存在该NAT路由项10.11.1.0/24的父路由项,查找得到该路由项的父路由项为源地址路由项10.11.0.0/16,将该源地址路由项10.11.0.0/16中的相关内容扩展到NAT路由项10.11.1.0/24,查找该NAT路由项10.11.1.1/32的子路由项只有TOS路由项10.11.1.1/32,并根据最长匹配算法来查找出最小的子路由项,得到TOS路由项10.11.1.1/32为该路由表中最小的路由项,所以仍然将其对应的路由表项作为该路由表的当前路由表项,最后将NAT路由项10.11.1.0/24中的相关内容扩展到TOS路由项10.11.1.1/32中。由此,TOS路由项10.11.1.1/32中的内容更新为从NAT路由项10.11.1.0/24中扩展得到的相关内容。参见图7,在NAT路由项10.11.1.0/24对应的路由表项中标识主标记N,并标识主标记S和扩展标记SL以表示其可以用作源地址路由,并且从源地址路由项10.11.0.0/16中扩展了相关内容,设置Mask of Srt字段以表示其父路由项的子网掩码长度为16。对应TOS路由项10.11.1.1/32的路由表项参见图8,在图6所示的路由表原有的基础上标识了N和NL以表示其还可以用作NAT路由,且从NAT路由项10.11.1.0/24中扩展了相关内容,设置Mask of NAT字段以表示其父路由项的子网掩码长度为24。源地址路由项10.11.0.0/16对应的路由表项仍然如图5所示。
以上所述为由于需要增加接入服务器功能而在路由表中复用路由项的具体实现方法,下面对根据删除接入服务器功能的需要而删除路由表中路由项作详细说明。参见图3,删除路由项的具体操作流程为A.查找所要删除的路由项是否存在父路由项,如果存在父路由项,则从父路由项中取得相关内容,否则,设置其父路由项中的相关内容为空;
B.查找所要删除的路由项所有的子路由项,如果没有子路由项,则直接进入步骤D,如果查找出子路由项,则进入下一步;C.将所有子路由项中从所要删除的路由项中扩展而得的相关内容更新为父路由项中的相关内容,去掉所有子路由项对应的路由表项中所要删除的路由项的主标记、扩展标记和Mask字段的标记;D.判断是否存在与所要删除的路由项的IP地址和子网掩码均相同的路由项,如果没有,则跳至步骤F,否则,进入下一步;E.清除复用路由表中与所要删除的路由项相关的内容,并去掉该所要删除的路由项对应的路由表项中该所要删除的路由项主标记的标识;F.清除复用路由表中与所要删除的路由项相关的内容,并删除该路由项对应的路由表项。
对于以上复用了TOS路由项10.11.1.1/32和NAT路由项10.11.1.0/24的路由表来说,如果要删除该路由表中的源地址路由项10.11.0.0/16,首先查找出该路由项没有父路由项,则设置其父路由项的相关内容为空,然后找出其所有的子路由项,该子路由项包括TOS路由项10.11.1.1/32和NAT路由项10.11.1.0/24,将这两个子路由项中与源地址路由项10.11.0.0/16相关的内容更新为其父路由项的相关内容,即去掉其子路由项中由所要删除的路由项扩展而来的相关内容。由于复用后的路由表中不存在与其IP地址和子网掩码均相同的路由项,所以彻底删除路由表中的源地址路由项10.11.0.0/16及其对应的路由表项,并去掉与TOS路由项10.11.1.1/32和NAT路由项10.11.1.0/24对应的路由表项中的S、SL和Mask of Srt字段,删除源地址路由10.11.0.0/16后与NAT路由项10.11.1.0/24和TOS路由项10.11.1.1/32对应的路由表项分别如图9、图10所示。
如果要删除该路由表中的NAT路由项10.11.1.0/24,则首先找出该路由项的父路由项为源地址路由项10.11.0.0/16,并从其中取得相关内容,再找出该NAT路由项10.11.1.0/24的子路由项TOS路由项10.11.1.1/32,将其中与NAT路由项10.11.1.0/24相关的内容更新为从源地址路由项10.11.0.0/16中取得的内容,并去掉TOS路由项10.11.1.1/32对应路由表项中的N、NL和Mask of NAT字段,该路由表项在去掉相应的标记之后与图6所示相同。由于不存在与该NAT路由项10.11.1.0/24的IP地址和子网掩码均相同的路由项,因此彻底删除该路由项,并删除与之对应的路由表项。
在删除路由项后,需要采用最长匹配算法从现有的路由项中获取最小的子路由项,并将该子路由项作为当前的路由项。
以上说明,虽然以在复用路由表中设置TOS功能、源地址路由功能、PRE功能和NAT功能标识为例,表示该路由表可以复用这几种功能,从而使在一块路由板上可以同时支持这几种功能,大大地降低了系统成本。然而,以上所述仅为本发明的较佳实施例,并不用以限制本发明的范围,任何依据上述说明所作的修改、等同替换、改进或重新组合等,均应视为包含在本发明的权利要求范围之内。
权利要求
1.一种路由表复用的方法,其特征在于该方法至少包括在路由表中增加用于标识路由项功能的主标记位、用于标识从父路由项中扩展功能的扩展标记位和用于标识父路由项子网掩码长度的子网掩码字段位;将最小的路由项对应的路由表项作为路由表的当前路由表项。
2.根据权利要求1所述的方法,其特征在于该方法进一步包括,在所述路由表中增加路由项,包括以下步骤a1.在所述路由表中保存所要增加的路由项的内容;a2.在所述路由表中查找是否存在与所要增加的路由项的IP地址和子网掩码均相同的路由项,如果存在,则在该路由项对应的路由表项中标识所要增加的路由项功能的主标记,并转至步骤a4,否则进入下一步;a3.在所述路由表中增加一个对应于所要增加的路由项的路由表项,并在其中标识该路由项功能的主标记;a4.查找所要增加的路由项是否存在父路由项,如果不存在父路由项,则转至步骤a6,否则进入下一步;a5.将所查到的父路由项中的内容扩展到所要增加的路由项中,包括在所要增加的路由项对应的路由表项中标识该父路由项的主标记、扩展标记和子网掩码字段;a6.查找所要增加的路由项所有的子路由项,如果有,则将所要增加的路由项的内容扩展给所有的子路由项,包括在所有子路由项对应的路由表项中标识该所要增加的路由项的主标记、扩展标记和子网掩码字段。
3.根据权利要求2所述的方法,其特征在于进一步包括a7.在路由表中查找最小的路由项,并将该最小的路由项对应的路由表项作为复用后的路由表的当前路由表项。
4.根据权利要求1所述的方法,其特征在于该方法进一步包括,在所述路由表中删除路由项,包括以下步骤b1.在所述路由表中查找所要删除的路由项是否存在父路由项,如果存在父路由项,则从父路由项中取得内容,否则,设置其父路由项中内容为空;b2.在所述路由表中查找所要删除的路由项所有的子路由项,如果没有子路由项,则直接进入步骤b3,如果有,则将所有子路由项中从所要删除的路由项中扩展而得的内容更新为父路由项中的内容,并去掉所有子路由项对应的路由表项中所要删除的路由项功能的主标记、扩展标记和子网掩码字段的标识,进入步骤b3;b3.判断是否存在与所要删除的路由项的IP地址和子网掩码均相同的路由项,如果没有,则转至步骤b5,否则,进入下一步;b4.清除路由表中与所要删除的路由项相关的内容,并去掉该所要删除的路由项对应的路由表项中该所要删除的路由项功能主标记的标识,结束;b5.清除路由表中与所要删除的路由项相关的内容,并删除该路由项对应的路由表项,结束。
5.根据权利要求4所述的方法,其特征在于进一步包括b6.在路由表中查找路由表中最小的路由项,并将该最小的路由项对应的路由表项作为删除路由项后的路由表的当前路由表项。
6.根据权利要求1所述的方法,其特征在于所述的路由项功能为TOS功能。
7.根据权利要求1所述的方法,其特征在于所述的路由项功能为源地址路由功能。
8.根据权利要求1所述的方法,其特征在于所述的路由项功能为NAT功能。
9.根据权利要求1所述的方法,其特征在于所述的路由项功能为PRE功能。
10.根据权利要求1所述的方法,其特征在于所述最小的路由项是根据最长匹配算法查找得出。
全文摘要
本发明公开了一种路由表复用的方法,包括在路由表中增加用于标识路由项功能及用处的主标记位、用于标识从父路由项中扩展相关功能的扩展标记位和用于标识父路由项子网掩码长度的子网掩码字段位,将最小的路由项对应的路由表项作为路由表的当前路由表项。本发明通过增加或删除复用路由表中的路由项,使一块路由转发板可以支持多种功能,降低了内存资源的占用及系统的开发成本。对复用路由表中不同功能可以用同一种查表方法查找,提高了系统的工作效率与稳定性,便于系统的维护。
文档编号H04L12/28GK1620022SQ20031011371
公开日2005年5月25日 申请日期2003年11月17日 优先权日2003年11月17日
发明者叶未川, 黎静, 李彦本 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1