无类域间路由表建立、以及报文转发的方法和装置制造方法

文档序号:7979521阅读:230来源:国知局
无类域间路由表建立、以及报文转发的方法和装置制造方法
【专利摘要】本发明公开了一种无类域间路由表建立、以及报文转发的方法和装置,其中,该方法包括:获取路由信息,其中,所述路由转发信息中包括IP地址和所述IP地址对应的输出端口;根据获取到的路由信息、预先设定的一个或多个掩码建立路由表。本发明解决了现有技术中路由表的条目过多,更新过于复杂的技术问题,达到了根据需求合理调整路由表中条目的数量,提高路由转发效率的技术效果。
【专利说明】无类域间路由表建立、以及报文转发的方法和装置
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种无类域间路由表建立、以及报文转发的方法和装置。
【背景技术】
[0002]在Internet的发展初期,IP地址采用的是基于类的地址结构,即,整个IP地址空间一共可以分为五类:为单播地址设计的A类、B类以及C类,为组播地址设计的D类以及为今后使用而保留的E类地址。各个类之间通过地址的前几个比特位来进行区分。基于类的地址结构由于其简单性而得到了广泛的应用。然而,随着网络的不断发展,使用这种地址结构产生了两个问题:
[0003]I)地址分配的不灵活导致了地址空间的大量消耗及路由表规模的不断增大;
[0004]2)基于类的地址结构将整个地址空间简单地分成了 5个类别,这就导致了地址的分配非常不灵活。
[0005]例如,当需要为一个拥有多于256台(比如320台)主机的组织分配网络地址时,值仅能将一个B类地址分配给它,此时就有可能造成地址空间的极大浪费。
[0006]为了能够降低路由表规模的增长速度以及提高地址空间的利用率,IETF为Internet提出了另一种称之为无类域间路由(Classless Inter-Domain Routing,简称为CIDR)的地址结构。CIDR抛弃了传统的基于类的地址分配方式,规定可以使用任意长度的网络地址,因此产生了路由地址前缀的概念。在CIDR地址结构体系下,路由表的规模得到了一定控制,但是地址前缀查找让设计变得非常复杂。在CIDR地址结构下,地址前缀表中的前缀表现的长度是任意的,类的概念将不再存在。然而,通过地址前缀进行的查找不仅需要与前缀的比特位进行匹配查找,还需要考虑地址前缀的长度。
[0007]现行的IP 路由交换设备米用 TCAM (Ternary Content Addressable Memory)实现IP地址最长前缀查找。采用TCAM实现IP地址最长前缀查找的优点在于实现简单,但是TCAM也有许多不足的地方。首先TCAM在同一时钟周期内将待查找的关键字和TCAM的每一个条目进行比较,所以功耗比较大。第二是TCAM器件成本比较高,价格昂贵。第三是由于TCAM器件实现的原因,采用TCAM实现的路由表不能太大。
[0008]另外一种实现方法是采用多比特树算法来实现IP地址最长前缀匹配。该算法的优点是对IP路由表的大小没有什么限制,可以构建大规模的IP路由转发表,但是多比特树算法在实现路由表更新时非常困难,一般需要重新生成IP路由表。由于一条路由更新导致了整个庞大的路由转发表都需要重新构建,这对存有上百万条IP路由信息的路由器来说,实现起来非常复杂。
[0009]针对上述的问题,目前尚未提出有效的解决方案。

【发明内容】

[0010]本发明提供了一种无类域间路由表建立、以及报文转发的方法和装置,以至少解决现有技术中路由表的条目过多,路由条目更新过于复杂的技术问题。
[0011]根据本发明的一个方面,提供了一种无类域间路由表建立方法,包括:获取路由信息,其中,路由转发信息中包括IP地址和IP地址对应的输出端口 ;根据获取到的路由信息、预先设定的一个或多个掩码建立路由表。
[0012]优选地,路由表中的路由信息的存储地址的索引是通过对,IP地址和/或IP地址与掩码与运算的结果,进行哈希运算得到的。
[0013]优选地,对IP地址和/或IP地址与掩码与运算的结果进行哈希运算得到存储地址的索引包括:对IP地址和/或IP地址与掩码与运算的结果进行多次互斥的哈希运算?’从得到的多个哈希运算的结果中选择一个结果作为存储路由信息的存储地址的索引。
[0014]优选地,从得到的多个哈希运算的结果中选择一个结果作为存储路由信息的存储地址的索引:将所选择的哈希运算的结果作为路由表的存储地址的索引,根据存储地址的索引查找一张路由表中对应存储地址的索引的存储空间是否被占用;如果未被占用,则在存储空间中存储路由信息;如果已被占用,则查找下一张路由表,直至查找到未被占用的存储空间。
[0015]优选地,在未找到存储路由信息的存储空间的情况下,方法还包括:更换与IP地址进行与运算的掩码,对IP地址与更换后的掩码与运算的结果进行哈希运算得到存储地址的索引。
[0016]优选地,在建立路由表之前,上述方法还包括:在IP地址位于预先设定的多个掩码中的两个相邻的掩码之间的情况下,则将该IP地址扩展成为与两个相邻的掩码中O的位数少的掩码有效位数相同的IP地址。
[0017]根据本发明的另一 方面,提供了一种报文转发的方法,包括:获取报文的目的IP地址;
[0018]根据目的IP地址和 /或目的IP地址与预先设定的一个或多个掩码与运算的结果查找路由表,确定目的IP地址对应的输出端口 ;将报文从确定的输出端口转发出去。
[0019]优选地,根据目的IP地址和/或目的IP地址与预先设定的一个或多个掩码与运算的结果查找路由表,确定目的IP地址对应的输出端口包括:根据目的IP地址和/或目的IP地址与掩码与运算的结果,进行哈希运算得到目的IP地址在路由表中的路由信息的存储地址的索引;根据存储地址的索引查找路由表,根据查找到的结果确定目的IP地址对应的输出端口。
[0020]优选地,根据目的IP地址和/或目的IP地址与掩码与运算的结果,进行哈希运算得到目的IP地址在路由表中的路由信息的存储地址的索引包括:对目的IP地址和/或目的IP地址与掩码与运算的结果进行多次互斥的哈希运算;从得到的多个哈希运算的结果中选择一个结果作为目的IP地址在路由表中的路由信息的存储地址的索引。
[0021]优选地,根据存储地址的索引查找路由表,根据查找到的结果确定目的IP地址对应的输出端口包括:根据选择的存储地址的索引查找一张路由表中对应存储地址的索引的条目是否与目的IP地址匹配,如果匹配,则将查找到的条目所对应的输出端口作为目的IP地址对应的输出端口 ;如果不匹配,则查找下一张路由表,直至查找到与目的IP地址的匹配的在存储空间中存储路由信息。
[0022]优选地,在未找到与目的IP地址匹配的条目的情况下,上述方法还包括:更换与目的IP地址进行与运算的掩码,对目的IP地址与更换后的掩码与运算的结果进行哈希运算得到存储地址的索引。
[0023]优选地,在未找到与目的IP地址匹配的路由信息的情况下,上述方法还包括:通过默认端口将报文转发出去。
[0024]根据本发明的另一方面,提供了一种无类域间路由表建立装置,包括:获取单元,用于获取路由信息,其中,路由转发信息中包括IP地址和IP地址对应的输出端口 ;建立单元,用于根据获取到的路由信息、预先设定的一个或多个掩码建立路由表。
[0025]根据本发明的另一方面,提供了一种报文转发的装置包括:获取单元,用于获取报文的目的IP地址;确定单元,用于根据目的IP地址和/或目的IP地址与预先设定的一个或多个掩码与运算的结果查找路由表,确定目的IP地址对应的输出端口 ;转发单元,用于将报文从确定的输出端口转发出去。
[0026]在本发明中,通过预先设定的一个或多个掩码建立路由表,从而可以根据需要来调整掩码的位数,以达到减少路由条目的技术效果。通过上述方式解决了现有技术中,路由表的条目过多,更新过于复杂的技术问题,达到了根据需求合理调整路由表中条目的数量,提闻路由转发效率的技术效果。
【专利附图】

【附图说明】
[0027]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0028]图1是根据本发明实施例的无类域间路由表建立方法的一种优选流程图;
[0029]图2是根据本发明实施例的得到存储地址的索引的一种优选流程图;
[0030]图3是根据本发明实施例的报文转发方法的一种优选流程图;
[0031]图4是根据本发明实施例的定目的IP地址对应的输出端口的一种优选流程图;
[0032]图5是根据本发明实施例的无类域间路由表建立装置的一种优选结构框图;
[0033]图6是根据本发明实施例的报文转发装置的一种优选结构框图;
[0034]图7是根据本发明实施例的报文转发方法的另一种优选流程图;
[0035]图8是根据本发明实施例的从IP路由转发表的生成到报文的转发的一种优选流程图。
【具体实施方式】
[0036]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0037]实施例1
[0038]本发明提供了一种优选的无类域间路由表建立方法,如图1所示,包括以下步骤:
[0039]步骤S102:获取路由信息,其中,路由转发信息中包括IP地址和IP地址对应的输出端口 ;
[0040]步骤S104:根据获取到的路由信息、预先设定的一个或多个掩码建立路由表。
[0041]在上述优选实施方式中,通过预先设定的一个或多个掩码建立路由表,从而可以根据需要来调整掩码的位数,以达到减少路由条目的技术效果。通过上述方式解决了现有技术中,路由表的条目过多,更新过于复杂的技术问题,达到了根据需求合理调整路由表中条目的数量,提高路由转发效率的技术效果。
[0042]为了实现地址和存储地址之间的映射,可以采用哈希算法的方式对IP地址处理,在一个优选实施方式中,路由表中的路由信息的存储地址的索引是通过对,IP地址和/或IP地址与掩码与运算的结果,进行哈希运算得到的。
[0043]考虑到在实施时哈希运算会发生冲突,可以采用利用多个互斥的哈希算法对地址进行互斥的哈希运算以对应不同的结果,从而减少出现冲突的可能性,在一个优选实施方式中,对IP地址和/或IP地址与掩码与运算的结果进行哈希运算得到存储地址的索引,如图2所示,包括以下步骤:
[0044]步骤S202:对IP地址和/或IP地址与掩码与运算的结果进行多次互斥的哈希运算;
[0045]步骤S204:从得到的多个哈希运算的结果中选择一个结果作为存储路由信息的存储地址的索引。
[0046]例如,得到存储地址的索引以后,根据地址索引进行查找的时候,可以从第一张路由表进行查找,如果第一张路由表中对应的存储空间是空的,就可以将该IP地址已经其对应的输出端口存储在其中,如果不是空的,则继续查找下一张路由表,直至将本次哈希运算得到的遍历完。在一个优选实施方式中,从得到的多个哈希运算的结果中选择一个结果作为存储路由信息的存储地址的索引:将所选择的哈希运算的结果作为路由表的存储地址的索引,根据存储地址的索引查找一张路由表中对应存储地址的索引的存储空间是否被占用;如果未被占用,则在存储空间中存储路由信息;如果已被占用,则查找下一张路由表,直至查找到未被占用的存储空间。
[0047]预先设定了多个不同的掩码,在执行完一个掩码与操作后,如果仍旧未找到对应的存储空间,则将该IP地址与下一个掩码相与以实现新的查找,在一个优选实施方式中,在未找到存储路由信息的存储空间的情况下,上述方法还包括:更换与IP地址进行与运算的掩码,对IP地址与更换后的掩码与运算的结果进行哈希运算得到存储地址的索引。
[0048]考虑到通过不同的掩码建立路由表的时候,处于两个掩码之间的IP地址会因为与操作而被屏蔽,导致无法进行正常的路由表的建立,在一个优选实施方式中,在建立路由表之前,该方法还包括:在IP地址位于预先设定的多个掩码中的两个相邻的掩码之间的情况下,则将该IP地址扩展成为与两个相邻的掩码中O的位数少的掩码有效位数相同的IP地址。即,对位于两个掩码之间的IP地址进行扩展将其扩展为可以进行正常路由表建立的IP地址。
[0049]本实施例还基于通过上述方法建立的路由表提供了一种报文转发的方法,如图3所示,包括以下步骤:
[0050]步骤S302:获取报文的目的IP地址;
[0051]步骤S304:根据目的IP地址和/或目的IP地址与预先设定的一个或多个掩码与运算的结果查找路由表,确定目的IP地址对应的输出端口 ;
[0052]步骤S306:将报文从确定的输出端口转发出去。
[0053]通过上述方式,采用和建立路由表时同样的掩码确定转发报文的端口,从而可以提高转发的效率,也可以根据查找条件的不同确定不同的掩码以满足不同的路由查找要求,达到了提高路由表查找的速度的技术效果。
[0054]为了进一步提高路由查找的速度,可以采用与建表时相同的哈希算法进行存储地址的索引的生成,在一个优选实施方式中,根据预先设定的一个或多个掩码查找路由表,确定目的IP地址对应的输出端口的方法,如图4所示,包括以下步骤:
[0055]步骤S402:根据目的IP地址和/或目的IP地址与掩码与运算的结果,进行哈希运算得到目的IP地址在路由表中的路由信息的存储地址的索引;
[0056]步骤S404:根据存储地址的索引查找路由表,根据查找到的结果确定目的IP地址对应的输出端口。
[0057]在一个优选实施方式中,根据目的IP地址和/或目的IP地址与掩码与运算的结果,进行哈希运算得到目的IP地址在路由表中的路由信息的存储地址的索引包括:对目的IP地址和/或目的IP地址与掩码与运算的结果进行多次互斥的哈希运算;从得到的多个哈希运算的结果中选择一个结果作为目的IP地址在路由表中的路由信息的存储地址的索弓I。通过对目的IP地址进行多次互斥的哈希运算,减少了哈希的结果在查找时产生冲突的可能性,提闻了检索的效率。
[0058]一个哈希函数可以对应多张路由表,可以通过一次哈希运算的结果对多张路由表进行查找,直至查找到所需的路由信息,在一个优选实施方式中,根据存储地址的索引查找路由表,根据查找到的结果确定目的IP地址对应的输出端口包括:
[0059]根据选择的存储地址的索引查找一张路由表中对应存储地址的索引的条目是否与目的IP地址匹配,如果匹配,则将查找到的条目所对应的输出端口作为目的IP地址对应的输出端口;
[0060]如果不匹配,则查找下一张路由表,直至查找到与目的IP地址的匹配的在存储空间中存储路由信息。
[0061]在一个优选实施方式中,在未找到与目的IP地址匹配的条目的情况下,该方法还包括:更换与目的IP地址进行与运算的掩码,对目的IP地址与更换后的掩码与运算的结果进行哈希运算得到存储地址的索引。
[0062]如果在遍历完所有的掩码还未找到与该目的IP地址匹配的条目,可以将该报文通过默认的端口进行转发,在一个优选实施方式中,在未找到与目的IP地址匹配的路由信息的情况下,方法还包括:通过默认端口将报文转发出去。
[0063]在本实施例中还提供了一种无类域间路由表建立装置和报文转发的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0064]图5是无类域间路由表建立装置的一种优选结构框图,如图5所示,包括:第一获取单元502和建立单元504,下面对该结构进行说明。
[0065]第一获取单元502,用于获取路由信息,其中,路由转发信息中包括IP地址和IP地址对应的输出端口;
[0066]建立单元504,用于根据获取到的路由信息、预先设定的一个或多个掩码建立路由表。
[0067]图6是报文转发装置的一种优选结构框图,如图6所示,包括:第二获取单元602、确定单元604,以及转发单元606下面对该结构进行说明。
[0068]第二获取单元602,用于获取报文的目的IP地址;
[0069]确定单元604,用于根据目的IP地址和/或目的IP地址与预先设定的一个或多个掩码与运算的结果查找路由表,确定目的IP地址对应的输出端口 ;
[0070]转发单元606,用于将报文从确定的输出端口转发出去。
[0071]实施例2
[0072]本实施例提供一种新型的IP路由表生成方法和IP路由查找方法,根据从报文提取的目的IP地址查找路由转发表获取报文的下一跳转发端口,然后,将报文从该目的端口转发出去。具体的,对报文的目的IP地址进行双hash或者多hash运算,通过hash运算得到的hash索引查找路由转发表,如果在路由转发表中找到匹配的条目,则根据路由转发表配置的下一跳输出端口则将该数据包转发出去,如果没有找到对应的条目,则将目的IP地址的低M比特置成0,然后再进行双hash或者多hash运算,通过得到的hash索引查找路由转发表,如果找到对应条目则将该数据包通过该对应条目所对应的端口转发出去,如果没有找到对应的条目,则将目的IP地址的低N (N>M)比特置成0,然后再进行双hash或多hash运算,通过得到的hash索引查找下一跳路由表,以此类推。
[0073]通过上述方式可以克服采用TCAM实现访问控制列表的不足,例如:功耗大,成本高等问题,也克服了多比特树路由表所带来的更新困难等问题,易于进行路由表的扩展,易于实现,特别是易于在FPGA上实现。
[0074]以双哈希运算为例进行进一步说明,如图7所示,包括以下步骤:
[0075]步骤S702:提取报文中的目的IP地址;
[0076]步骤S704:将目的IP地址做双hash运算,其中,两个hash函数要求互斥,得到了两个hash索弓丨,命名为:hash_idx0和hash_idxl。用hash_idx0和hash_idxl作为路由转发表的地址访问四张路由转发表。
[0077]步骤S706:将表中配置的IP地址和数据包(即上述的报文)的目的IP地址进行匹配,如果匹配上了四张路由转发表中的一个条目,则根据路由转发表的配置将报文从对应的输出端口转发出去。
[0078]步骤S708:如果没有找到对应的条目,则将报文的目的IP地址和掩码M相与得到ip_mask_m,,其中,掩码和目的IP地址具有同样的比特位数,设为L,但是掩码的高L-M比特为1,低M比特位O,再用ip_mask_m做双hash运算,得到了两个hash索引hash_idxO_m和hash_idxl_m。
[0079]步骤S710:用hash_idxO_m和hash_idxl_m作为路由转发表的地址访问四张路由转发表。将表中配置的IP地址和ip_mask_m进行匹配,如果匹配上了四张路由转发表中的一个条目,则根据路由转发表的配置将报文从对应的输出端口转发出去。
[0080]步骤S712:如果没有找到对应的条目,则将报文的目的IP地址和掩码N (N>M,例如:型N=2M)相与得到ip_mask_n。然后用ip_mask_n做双hash运算,得到了两个hash索弓 I hash_idxO_n 和 hash_idxl_n。
[0081]步骤S714:用hash_idxO_n和hash_idxl_n作为路由转发表的地址访问四张路由转发表。将表中配置的IP地址和ip_mask_n进行匹配,如果匹配上了四张路由转发表中的一个条目,则根据路由转发表的配置将报文从对应的输出端口转发出去。[0082]步骤S716:如果没有找到对应的条目,则采用掩码K继续上面类似的操作查找路由转发表,当进行了 P (P的数值和掩码长度有关,一般是2到16)次查找后依然没有找到对应的条目,则将该数据包从默认的端口转发出去。
[0083]通过上述方式实现路由转发的电路结构简单且可扩展性好,每次掩码的步长可以根据路由转发的性能任意设定,步长越长路由转发的效率越高。根据对查找的性能要求可以将双hash查找扩展成多hash查找。该装置采用普通的RAM实现,解决了 TCAM成本高,功耗大的缺陷,同时该装置不采用树形结构实现,避免了路由更新困难的问题,值得注意的是:该装置不仅可以用在IP路由查找中,而且可以用在任何需要最长前缀查找场合下。
[0084]下面结合一个具体的实施例来对本发明进行进一步描述,为了表述方便,假设IP目的地址的长度为L,L为32或128。并且有多个掩码,掩码M为高L-M比特为1,低M比特位O ;掩码N的高L-N比特为1,低N比特位O ;掩码K的高L-K比特为1,低K比特为0,并且(M〈N〈K,典型N=2M,K=3M), 一共有P个掩码,从IP路由转发表的生成到报文的转发,如图8所示,包括以下步骤:
[0085]步骤S802:IP路由转发表生成。
[0086]S1:路由器根据IP路由协议收集网络上的路由转发信息,然后将这些路由信息进行合并压缩。
[0087]S2:对于IP地址达不到对应掩码长度的需要进行扩展。
[0088]假设M=3,N=5。M为O的位数最小的掩码,例如:IP地址为10……11**,输出端口为5的条目,可以将其扩展为四个条目,分别为:
[0089]IP 地址:10......1100,输出端口为 5,
[0090]IP 地址:10......1101,输出端口为 5,
[0091]IP 地址:10......1110,输出端口为 5,
[0092]IP 地址:10......1111,输出端口为 5。
[0093]另一个例子,路由条目的IP地址为10......1****,输出端口为7。路由条目的IP
地址的掩码为4,掩码的长度处于M与N之间,需要将IP地址扩展成掩码为M的条目,如下所示:
[0094]IP 地址:10......10000,输出端口为 7,
[0095]IP 地址:10......11000,输出端口为 7。
[0096]将扩展后的IP地址记为IP_ADDR。
[0097]S3:将IP_ADDR分别送到两个互斥的hash函数进行运算得到了 hash_idx0和hash_idxlο
[0098]S 4:用hash_idx0作为路由转发表I的存储地址的索引,检查对应的地址空间是否被占用,如果对应的地址空间没有被占用,则将IP_ADDR和输出端口填写到该地址空间中并结束本路由条目的配置;如果对应的地址空间被占用则执行步骤S5的操作。
[0099]S5:用hash_idx0作为路由转发表2的存储地址的索引,检查对应的地址空间是否被占用,如果对应的地址空间没有被占用,则将IP_ADDR和输出端口填写到该地址空间中并结束本路由条目的配置;如果对应的地址空间被占用,则执行步骤S6的操作。
[0100]S6:用hash_idxl作为路由转发表3的存储地址的索引,检查对应的地址空间是否被占用,如果对应的地址空间没有被占用,则将IP_ADDR和输出端口填写到该地址空间中并结束本路由条目的配置;如果对应的地址空间被占用,则执行步骤S7的操作。
[0101]S7:用hash_idxl作为路由转发表4的存储地址的索引,检查对应的地址空间是否被占用,如果对应的地址空间没有被占用,则将IP_ADDR和输出端口填写到该地址空间中并结束本路由条目的配置;如果该地址空间被占用,则向CPU发出中断。
[0102]步骤S804:IP路由转发表的更新。
[0103]IP路由转发表的更新和生成的方法相类似,在此不再赘述。
[0104]步骤S806:IP路由转发表的查找。
[0105]S1:从报文中提取目的IP地址,作为待查找的IP地址。
[0106]S2:将待查找IP地址送到两个互斥的hash函数进行运算,得到hash_idx0和hash_idxlο
[0107]S3:用hash_idx0作为路由转发表I的查找地址读取对应的条目,然后将待查找IP地址和路由配置的IP地址进行比较,如果相匹配,则结束本次查找并将报文从该条目对应的输出端口转发出去;如果不匹配,则执行步骤S4。
[0108]S4:用hashjdxO作为路由转发表2的查找地址读取对应的条目,然后将待查找IP地址和路由配置的IP地址进行比较,如果相匹配,则结束本次查找并将报文从该条目对应的输出端口转发出去;如果不匹配,则执行步骤S5。
[0109]S5:用hash_idxl作为路由转发表3的查找地址读取对应的条目,然后将待查找IP地址和路由配置的IP地址进行比较,如果相匹配,则结束本次查找并将报文从该条目对应的输出端口转发出去;如果不匹配,则执行步骤S6。
[0110]S6:用hash_idxl作为路由转发表4的查找地址读取对应的条目,然后将待查找IP地址和路由配置的IP地址进行比较,如果相匹配,则结束本次查找并将报文从该条目对应的输出端口转发出去;如果不匹配,则执行步骤S7。
[0111]S7:将IP地址和掩码M做与操作作为待查找的IP地址,执行步骤S2到步骤S6同样的操作。如果找到对应的条目,则将报文从相应条目配置的输出端口转发出去;如果没有找到匹配的条目,则将掩码换为N,重复上面的操作。如此重复操作P次,将P个掩码都遍历,如果仍旧没有找到对应的条目则将数据包从默认的端口转发出去。
[0112]本发明提供了一种优选的实施例来进一步对本发明进行解释,但是值得注意的是,该优选实施例只是为了更好的描述本发明,并不构成对本发明不当的限定。
[0113]在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
[0114]在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
[0115]从以上的描述中,可以看出,本发明实现了如下技术效果:通过预先设定的一个或多个掩码建立路由表,从而可以根据需要来调整掩码的位数,以达到减少路由条目的技术效果。通过上述方式解决了现有技术中,路由表的条目过多,更新过于复杂的技术问题,达到了根据需求合理调整路由表中条目的数量,提高路由转发效率的技术效果。
[0116]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0117]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种无类域间路由表建立方法,其特征在于,包括: 获取路由信息,其中,所述路由转发信息中包括IP地址和所述IP地址对应的输出端Π ; 根据获取到的路由信息、预先设定的一个或多个掩码建立路由表。
2.根据权利要求1所述的方法,其特征在于,所述路由表中的路由信息的存储地址的索引是通过对,所述IP地址和/或所述IP地址与所述掩码与运算的结果,进行哈希运算得到的。
3.根据权利要求2所述的方法,其特征在于,对所述IP地址和/或所述IP地址与所述掩码与运算的结果进行哈希运算得到所述存储地址的索引包括: 对所述IP地址和/或所述IP地址与所述掩码与运算的结果进行多次互斥的哈希运算; 从得到的多个哈希运算的结果中选择一个结果作为存储所述路由信息的存储地址的索引。
4.根据权利要求3所述的方法,其特征在于,从得到的多个哈希运算的结果中选择一个结果作为存储所述路由信息的存储地址的索引包括: 将所选择的哈希运算的结果作为路由表的存储地址的索引,根据所述存储地址的索引查找一张路由表中对应所述存储地址的索引的存储空间是否被占用;如果未被占用,则在所述存储空间 中存储所述路由信息; 如果已被占用,则查找下一张路由表,直至查找到未被占用的存储空间。
5.根据权利要求2至4中任一项所述的方法,其特征在于,在未找到存储所述路由信息的存储空间的情况下,所述方法还包括:更换与所述IP地址进行与运算的掩码,对所述IP地址与更换后的掩码与运算的结果进行哈希运算得到存储地址的索引。
6.根据权利要求1至4中任一项所述的方法,其特征在于,在建立所述路由表之前,所述方法还包括: 在所述IP地址位于预先设定的所述多个掩码中的两个相邻的掩码之间的情况下,则将该IP地址扩展成为与两个相邻的掩码中O的位数少的掩码有效位数相同的IP地址。
7.—种根据权利要求1-6中任一项进行报文转发的方法,其特征在于,包括: 获取报文的目的IP地址; 根据所述目的IP地址和/或所述目的IP地址与预先设定的一个或多个掩码与运算的结果查找路由表,确定所述目的IP地址对应的输出端口 ; 将所述报文从确定的输出端口转发出去。
8.根据权利要求7所述的方法,其特征在于,根据所述目的IP地址和/或所述目的IP地址与预先设定的一个或多个掩码与运算的结果查找路由表,确定所述目的IP地址对应的输出端口包括: 根据所述目的IP地址和/或所述目的IP地址与所述掩码与运算的结果,进行哈希运算得到所述目的IP地址在所述路由表中的路由信息的存储地址的索引; 根据所述存储地址的索引查找所述路由表,根据查找到的结果确定所述目的IP地址对应的输出端口。
9.根据权利要求7所述的方法,其特征在于,根据所述目的IP地址和/或所述目的IP地址与所述掩码与运算的结果,进行哈希运算得到所述目的IP地址在所述路由表中的路由信息的存储地址的索引包括: 对所述目的IP地址和/或所述目的IP地址与所述掩码与运算的结果进行多次互斥的哈希运算; 从得到的多个哈希运算的结果中选择一个结果作为所述目的IP地址在所述路由表中的路由信息的存储地址的索引。
10.根据权利要求9所述的方法,其特征在于,根据所述存储地址的索引查找所述路由表,根据查找到的结果确定所述目的IP地址对应的输出端口包括: 根据选择的所述存储地址的索引查找一张路由表中对应所述存储地址的索引的条目是否与所述目的IP地址匹配,如果匹配,则将查找到的条目所对应的输出端口作为所述目的IP地址对应的输出端口 ; 如果不匹配,则查找下一张路由表,直至查找到与所述目的IP地址的匹配的在所述存储空间中存储所述路由信息。
11.根据权利要求8至10中任一项所述的方法,其特征在于,在未找到与所述目的IP地址匹配的条目的情况下,所述方法还包括:更换与所述目的IP地址进行与运算的掩码,对所述目的IP地址与更换后的掩码与运算的结果进行哈希运算得到存储地址的索引。
12.根据权利要求8至10中任一项所述的方法,其特征在于,在未找到与所述目的IP地址匹配的路由信息的情况下,所述方法还包括:通过默认端口将所述报文转发出去。
13.一种无类域间路由表建立装置,其特征在于,包括: 获取单元,用于获取路由信息,其中,所述路由转发信息中包括IP地址和所述IP地址对应的输出端口; 建立单元,用于根据获取到的路由信息、预先设定的一个或多个掩码建立路由表。
14.一种报文转发的装置,其特征在于,包括: 获取单元,用于获取报文的目的IP地址; 确定单元,用于根据所述目的IP地址和/或所述目的IP地址与预先设定的一个或多个掩码与运算的结果查找路由表,确定所述目的IP地址对应的输出端口 ; 转发单元,用于将所述报文从确定的输出端口转发出去。
【文档编号】H04L12/743GK103457855SQ201210180209
【公开日】2013年12月18日 申请日期:2012年6月4日 优先权日:2012年6月4日
【发明者】陈钦树 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1