一种子网路由的处理方法及报文转发设备的制作方法

文档序号:7866960阅读:131来源:国知局
专利名称:一种子网路由的处理方法及报文转发设备的制作方法
技术领域
本发明涉及交换机路由器产品领域,具体涉及一种子网路由的处理方法及报文转发设备。
背景技术
失效的子网路由,是指子网路由的下一跳失效的情况,这种子网路由失效的情况一般出现在子网路由存在,但是下一跳的主机路由已经被删除的时刻,具体可能出现在子网路由是动态生成的,而下一跳主机路由的地址解析协议(ARP)表项已经被老化,但子网路由还没有被删除的时刻,或者是子网路由是静态配置的,而下一跳主机路由ARP表项被删除或者老化的时刻。 现有技术中普遍使用的失效子网路由的管理方法,一般是将此子网路由的下一跳出口指向CPU,这样可以使得后续的数据报文被上送CPU,由CPU来触发ARP的再次学习。但是,如果存在多个的子网路由,这些子网路由同时指向同一个下一跳主机路由,而在这个主机路由失效的时候,所有的这些子网路由的出口都要被修改成CPU,这会造成子网路由在硬件中的多次修改操作。而当这个下一跳的主机路由再次恢复的时候,所有的子网路由又要再次恢复成主机路由指向的出口,因此又要再做多次的恢复操作。这样在路由管理上会变得比较复杂,并且在下一跳的无效与有效之间的切换效率比较低。

发明内容
有鉴于此,本发明实施例的目的是提供一种子网路由的处理方法及报文转发设备,简化子网路由的管理,提高子网路由的切换效率。为解决上述技术问题,本发明实施例提供方案如下一种子网路由的处理方法,应用于一报文转发设备,所述方法包括检测到子网路由指向的下一跳主机路由变成无效;在所述下一跳主机路由变成无效时,产生并下发用于删除所述下一跳主机路由的删除指令;拦截所述删除指令,并将所述删除指令转换为用于修改所述下一跳主机路由的第一更新指令;根据所述第一更新指令,将所述下一跳主机路由的下一跳出口更新为所述报文转发设备的CPU。优选地,上述方法中,在拦截到所述删除指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用;在所述下一跳主机路由还被其他子网路由引用时,执行所述将所述删除指令转换为用于修改所述下一跳主机路由的第一更新指令的步骤;在所述下一跳主机路由未被其他子网路由引用时,根据所述删除指令删除所述下一跳主机路由。优选地,上述 方法中,在将所述下一跳主机路由的下一跳出口更新为所述报文转发设备的CPU之后,所述方法还包括对于接收到的匹配所述子网路由的IP报文,根据所述子网路由对应的下一跳主机路由,将所述IP报文转发至所述报文转发设备的CPU,以使得所述CPU触发针对所述下一跳主机路由的ARP学习。优选地,上述方法中,还包括检测到所述下一跳主机路由恢复为有效;在所述下一跳主机路由恢复为有效时,产生并下发用于添加所述下一跳主机路由的添加指令;拦截所述添加指令,并将所述添加指令转换为用于修改所述下一跳主机路由的第~■更新指令;根据所述第二更新指令,将所述下一跳主机路由的下一跳出口更新为当前有效的下一跳出口。优选地,上述方法中,在拦截到所述添加指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用;在所述下一跳主机路由还被其他子网路由引用时,执行所述将所述添加指令转换为用于修改所述下一跳主机路由的第二更新指令的步骤;在所述下一跳主机路由未被其他子网路由引用时,根据所述添加指令添加所述下
一跳主机路由。本发明实施例还提供了一种报文转发设备,包括检测单元,用于检测到子网路由指向的下一跳主机路由的状态;指令产生单元,用于在所述检测单元检测到所述下一跳主机路由变成无效时,产生并下发用于删除所述下一跳主机路由的删除指令;指令拦截单元,用于拦截所述删除指令;指令转换单元,用于将所述指令拦截单元拦截到的所述删除指令,转换为用于修改所述下一跳主机路由的第一更新指令;更新单元,用于根据所述第一更新指令,将所述下一跳主机路由的下一跳出口更新为所述报文转发设备的CPU。优选地,上述设备中,所述指令拦截单元,还用于在拦截到所述删除指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用若是,则触发所述指令转换单元;否则下发所述删除指令;所述报文转发设备还包括一删除单元,用于根据所述指令拦截单元下发的删除指令,删除所述下一跳主机路由。优选地,上述设备中,还包括报文转发单元,用于对于接收到的匹配所述子网路由的IP报文,根据所述子网路由对应的下一跳主机路由,将所述IP报文转发至所述报文转发设备的CPU,以使得所述CPU触发针对所述下一跳主机路由的ARP学习。优选地,上述设备中,所述指令产生单元,还用于在所述检测单元检测到所述下一跳主机路由恢复为有效时,产生并下发用于添加所述下一跳主机路由的添加指令;所述指令拦截单元,还用于拦截所述添加指令;所述指令转换单元,还用于将所述指令拦截单元拦截到的添加指令,转换为用于修改所述下一跳主机路由的第二更新指令;所述更新单元,还用于根据所述第二更新指令,将所述下一跳主机路由的下一跳出口更新为当前有效的下一跳出口。优选地,上述设备中,所述指令拦截单元,还用于在拦截到所述添加指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用若是,则触发所述指令转换单元;否则下发所述添加指令;所述报文转发设备还包括一添加单元,用于根据所述指令拦截单元下发的添加指令,添加所述下一跳主机路由。从以上所述可以看出,本发明实施例提供的子网路由的处理方法及报文转发设备,在子网路由指向的下一跳主机路由失效时,利用一个本不应该存在的主机路由的硬件写入来管理失效的子网路由,大大简化了子网路由的管理及切换操作,加快了失效子网路由在重新有效时的切换速度,并且可以节约系统的硬件资源。


图I为本发明实施例的子网路由的处理方法的流程示意图;图2为本发明实施例中的子网路由处理的一个示例图;图3为本发明实施例提供的报文转发设备的结构示意图。
具体实施例方式本发明提出了一种子网路由的处理方法,通过一种简单高效的管理机制,使得失效的子网路由可以非常方便的被管理,并且在主机路由下一跳出现失效和重新有效的时候,不需要一个一个的切换子网路由,而是一次切换即可完成所有的子网路由的切换动作。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。本发明实施例提供的子网路由的处理方法,应用于一报文转发设备,该设备可以是路由器或支持三层转发的交换机。请参照图1,所述方法包括以下步骤步骤11,检测到子网路由指向的下一跳主机路由变成无效。这里,正常的子网路由是指向一个有效的下一跳主机路由的,这个主机路由指向了一个有效的出端口。当该下一跳主机路由指向的出端口的ARP表项被删除或老化时,判断该下一跳主机路由变成无效;而当重新学习到该下一跳主机路由指向的出端口的ARP表项时,判断该下一跳主机路由恢复成有效。步骤12,在所述下一跳主机路由变成无效时,产生并下发用于删除所述下一跳主机路由的删除指令。这里,删除指令通常是路由协议在所述下一跳主机路由变成无效时,触发产生的,并下发至底层的硬件。步骤13,拦截所述删除指令,并将所述删除指令转换为用于修改所述下一跳主机路由的第一更新指令。这里,可以在底层硬件处拦截协议下发的删除指令,并进行相应转换,以进行本发明实施例的特殊处理,从而在硬件中并不真正删除这个主机路由。步骤14,根据所述第一更新指令,将所述下一跳主机路由的下一跳出口更新为所述报文转发设备的CPU。优选地,在上述步骤14之后,本发明实施例还可以包括以下步骤
步骤15,对于接收到的匹配所述子网路由的IP报文,根据所述子网路由对应的下一跳主机路由,将所述IP报文转发至所述报文转发设备的CPU,以使得所述CPU触发针对所述下一跳主机路由的ARP学习。正常的子网路由是指向一个有效的下一跳主机路由的,这个主机路由指向了一个有效的出端口。而在主机路由被删除的时候,子网路由就会变成失效的子网路由,本发明实施例上述方法在这种时刻,为了子网路由能够便于管理和快速的恢复,此时,不对下一跳的主机路由做真正的删除动作,而是在硬件中保留这个主机路由,仅仅只是把这个主机路由的出口更新成CPU,这样由于子网路由指向主机路由,而这个主机路由的出口就是CPU,因此也就完成了子网路由指向CPU的动作。从实现的效果上来看,此时的子网路由就是指向CPU的,因此,不会影响路由协议的效果,后续的报文依然会被送往CPU,并且会触发新的ARP学习。而硬件里面存在的这个主机路由,虽然没有被删除,但是这个主机路由指向了 CPU,也不会对协议有其他的影响。而且这种做法,在下一跳主机路由失效的时候,不需要对所有与之相关的子网路由进行一个一个的操作,因为仅仅只是操作了主机路由的出口指向而已,并没有修改主机路由和子网路由的对应关系,因此,使用本发明实施例的方法后,可以不对子网路由进行任何的操作即可完成失效的子网路由的管理。作为一种优选的实施方式,可以仅在下一跳主机路由被多个子网路由引用时执行本发明实施例的特殊处理,此时,上述实施例在步骤13中,可以包括以下具体步骤步骤131,在拦截到所述删除指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用若是,则进入步骤132 ;否则进入步骤133。步骤132,在所述下一跳主机路由还被其他子网路由引用时,将所述删除指令转换为用于修改所述下一跳主机路由的第一更新指令,然后进入步骤14。步骤133,在所述下一跳主机路由未被其他子网路由引用时,根据所述删除指令删除所述下一跳主机路由,然后结束本流程。而在主机路由恢复的过程中,可以同样不需要对子网路由进行任何的操作,仅仅需要把主机路由重新指向一个有效的出口,即可完成所有子网路由的重新指向。此时,本实施例所述方法还可以包括以下步骤步骤16,检测到所述下一跳主机路由恢复为有效,。步骤17,在所述下一跳主机路由恢复为有效时,产生并下发用于添加所述下一跳主机路由的添加指令。这里,添加指令通常是路由协议在所述下一跳主机路由恢复为有效时,触发产生的,并下发至底层的硬件。步骤18,拦截所述添加指令,并将所述添加指令转换为用于修改所述下一跳主机路由的第二更新指令。这里,可以在底层硬件处拦截协议下发的添加指令,并进行相应转换,以进行本发明实施例的特殊处理。步骤19,根据所述第二更新指令,将所述下一跳主机路由的下一跳出口更新为当前有效的下一跳出口。作为一种优选实施方式,上述步骤18可以具体包括以下步骤步骤181,拦截到所述添加指令时,进一步判断所述下一跳主机路由是否还被其他
子网路由引用若是,进入步骤182 ;否则进入步骤183。步骤182,在所述下一跳主机路由还被其他子网路由引用时,将所述添加指令转换为用于修改所述下一跳主机路由的第二更新指令,然后进入步骤19。步骤183,在所述下一跳主机路由未被其他子网路由引用时,根据所述添加指令添加所述下一跳主机路由。从以上的描述中可以看出,本发明实施例在系统需要删除失效主机路由的时候,并不真正的删除它,而是将其指向CPU,仅此一个小小的改变,就可以使得失效的所有子网路由被统一的进行控制和处理,并且在主机路由恢复有效的时候,也能非常迅速有效的将所有与之相关的子网路由一起切换回来,与传统的失效子网路由的管理方法相比,本发明实施例上述方法不需要对子网路由本身不进行任何的操作,也不真正删除此主机路由,因此能够简化子网路由的管理及切换操作,加快失效子网路由在重新有效时的切换速度,并且可以节约系统的硬件资源。为了更好地理解上述方法,下面通过一个具体的实际例子来说明本发明实施例上述方案的实现如图2 所示,假设有多个子网路由 20. 20. 20. 0,21. 21. 21. 0,22. 22. 22. O、23. 23. 23. 0等,它们的下一跳主机路由是11. 11. 11. 11,下一跳主机路由的出端口是Portl/Macl,当这个下一跳主机路由失效的时候,路由协议会下达一个删除此主机路由的指令。而此时本示例执行以下步骤的处理a、判断这个主机路由是否被其他子网路由引用,如果被引用,不处理这个删除主机路由的指令,而是转化为一个主机路由更新的指令b、将此主机路由的出口变成CPUC、子网路由10. 10. 10. 0不做任何处理,由于子网路由10. 10. 10. 0仍然指向下一跳主机路由11. 11. 11. 11,因此其出口也被指向了 CPU而当这个主机路由重新恢复有效的时候,假设在恢复有效的时候,其有效出端口是Port2/Mac2,此时,路由协议会下达一个主机路由添加的指令。而此时本示例执行以下步骤的处理d、判断这个主机路由是否被其他子网路由引用,如果被引用,不处理这个添加主机路由的指令,而是转化为一个主机路由更新的指令e、将此主机路由的出口修改为Port2/Mac2f、子网路由10. 10. 10. 0不做任何处理,由于子网路由10. 10. 10. 0仍然指向下一跳主机路由11. 11. 11. 11,因此其出口也被指向了 Port2/Mac2由以上的技术方案可见,与一般的失效子网路由的管理方式相比,本发明实施例提供的方法,即达到了路由协议对于子网路由行为的期望和要求,又能够非常快速和方便的进行失效的子网路由的管理以及重新有效时子网路由的快速切换;并且,在管理流程方面,依旧遵循子网路由指向下一跳主机路由,主机路由指向真实的出端口的这种管理机制,没有新增任何新的管理方法,从而能够与现有协议实现很好地兼容。综上,本发明实施例上述方法,从切换效率和管理方便程度两个方面相比与现有技术都有很大的改善。基于以上方法,本发明实施例还提供了一种报文转发设备,该设备具体可以路由器或支持三层路由的交换机等设备。如图3所示,该设备包括检测单元,用于检测到子网路由指向的下一跳主机路由的状态。指令产生单元,用于在所述检测单元检测到所述下一跳主机路由变成无效时,产生并下发用于删除所述下一跳主机路由的删除指令。指令拦截单元,用于拦截所述删除指令。指令转换单元,用于将所述指令拦截单元拦截到的所述删除指令,转换为用于修改所述下一跳主机路由的第一更新指令。更新单元,用于根据所述第一更新指令,将所述下一跳主机路由的下一跳出口更新为所述报文转发设备的CPU。优选地,上述设备还可以包括报文转发单元,用于对于接收到的匹配所述子网路由的IP报文,根据所述子网路由对应的下一跳主机路由,将所述IP报文转发至所述报文转发设备的CPU,以使得所述CPU触发针对所述下一跳主机路由的ARP学习。其中,所述指令拦截单元,还用于在拦截到所述删除指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用若是,则触发所述指令转换单元;否则下发所述删除指令;此时,所述报文转发设备还包括一删除单元,用于根据所述指令拦截单元下发的删除指令,删除所述下一跳主机路由。上述设备在主机路由恢复时,还可以快速地执行路由切换,此时所述指令产生单元,还可以用于在所述检测单元检测到所述下一跳主机路由恢复为有效时,产生并下发用于添加所述下一跳主机路由的添加指令;所述指令拦截单元,还用于拦截所述添加指令;所述指令转换单元,还可以用于将所述指令拦截单元拦截到的添加指令,转换为用于修改所述下一跳主机路由的第二更新指令;所述更新单元,还可以用于根据所述第二更新指令,将所述下一跳主机路由的下一跳出口更新为当前有效的下一跳出口。作为一种优选实施方式,所述指令拦截单元,还用于在拦截到所述添加指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用若是,则触发所述指令转换单元;否则下发所述添加指令;此时,所述报文转发设备还包括一添加单元,用于根据所述指令拦截单元下发的添加指令,添加所述下一跳主机路由。此说明书中所描述的许多功能部件都被称为单元,以便更加特别地强调其实现方式的独立性。本发明实施例中,单元可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码单元可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识单元的可执行代码无需物理地位于一起,而是可以包括存储在不同物理上的不同的指令,当这些指令逻辑上结合在一起时,其构成单元并且实现该单元的规定目的。实际上,可执行代码单元可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在单元内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。在单元可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的单元,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。单元还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种子网路由的处理方法,应用于一报文转发设备,其特征在于,所述方法包括 检测到子网路由指向的下一跳主机路由变成无效; 在所述下一跳主机路由变成无效时,产生并下发用于删除所述下一跳主机路由的删除指令; 拦截所述删除指令,并将所述删除指令转换为用于修改所述下一跳主机路由的第一更新指令; 根据所述第一更新指令,将所述下一跳主机路由的下一跳出口更新为所述报文转发设备的CPU。
2.如权利要求I所述的方法,其特征在于, 在拦截到所述删除指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用; 在所述下一跳主机路由还被其他子网路由引用时,执行所述将所述删除指令转换为用于修改所述下一跳主机路由的第一更新指令的步骤; 在所述下一跳主机路由未被其他子网路由引用时,根据所述删除指令删除所述下一跳主机路由。
3.如权利要求I所述的方法,其特征在于,在将所述下一跳主机路由的下一跳出口更新为所述报文转发设备的CPU之后,所述方法还包括 对于接收到的匹配所述子网路由的IP报文,根据所述子网路由对应的下一跳主机路由,将所述IP报文转发至所述报文转发设备的CPU,以使得所述CPU触发针对所述下一跳主机路由的ARP学习。
4.如权利要求I至3任一项所述的方法,其特征在于,还包括 检测到所述下一跳主机路由恢复为有效; 在所述下一跳主机路由恢复为有效时,产生并下发用于添加所述下一跳主机路由的添加指令; 拦截所述添加指令,并将所述添加指令转换为用于修改所述下一跳主机路由的第二更新指令; 根据所述第二更新指令,将所述下一跳主机路由的下一跳出口更新为当前有效的下一跳出口。
5.如权利要求4所述的方法,其特征在于, 在拦截到所述添加指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用; 在所述下一跳主机路由还被其他子网路由引用时,执行所述将所述添加指令转换为用于修改所述下一跳主机路由的第二更新指令的步骤; 在所述下一跳主机路由未被其他子网路由引用时,根据所述添加指令添加所述下一跳主机路由。
6.—种报文转发设备,其特征在于,包括 检测单元,用于检测到子网路由指向的下一跳主机路由的状态; 指令产生单元,用于在所述检测单元检测到所述下一跳主机路由变成无效时,产生并下发用于删除所述下一跳主机路由的删除指令;指令拦截单元,用于拦截所述删除指令; 指令转换单元,用于将所述指令拦截单元拦截到的所述删除指令,转换为用于修改所述下一跳主机路由的第一更新指令; 更新单元,用于根据所述第一更新指令,将所述下一跳主机路由的下一跳出口更新为所述报文转发设备的CPU。
7.如权利要求6所述的报文转发设备,其特征在于, 所述指令拦截单元,还用于在拦截到所述删除指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用若是,则触发所述指令转换单元;否则下发所述删除指令; 所述报文转发设备还包括一删除单元,用于根据所述指令拦截单元下发的删除指令,删除所述下一跳主机路由。
8.如权利要求6所述的报文转发设备,其特征在于,还包括 报文转发单元,用于对于接收到的匹配所述子网路由的IP报文,根据所述子网路由对应的下一跳主机路由,将所述IP报文转发至所述报文转发设备的CPU,以使得所述CPU触发针对所述下一跳主机路由的ARP学习。
9.如权利要求6至8任一项所述的报文转发设备,其特征在于, 所述指令产生单元,还用于在所述检测单元检测到所述下一跳主机路由恢复为有效时,产生并下发用于添加所述下一跳主机路由的添加指令; 所述指令拦截单元,还用于拦截所述添加指令; 所述指令转换单元,还用于将所述指令拦截单元拦截到的添加指令,转换为用于修改所述下一跳主机路由的第二更新指令; 所述更新单元,还用于根据所述第二更新指令,将所述下一跳主机路由的下一跳出口更新为当前有效的下一跳出口。
10.如权利要求9所述的报文转发设备,其特征在于, 所述指令拦截单元,还用于在拦截到所述添加指令时,进一步判断所述下一跳主机路由是否还被其他子网路由引用若是,则触发所述指令转换单元;否则下发所述添加指令; 所述报文转发设备还包括一添加单元,用于根据所述指令拦截单元下发的添加指令,添加所述下一跳主机路由。
全文摘要
本发明提供了一种子网路由的处理方法及报文转发设备。其中所述方法包括检测到子网路由指向的下一跳主机路由变成无效;在所述下一跳主机路由变成无效时,产生并下发用于删除所述下一跳主机路由的删除指令;拦截所述删除指令,并将所述删除指令转换为用于修改所述下一跳主机路由的第一更新指令;根据所述第一更新指令,将所述下一跳主机路由的下一跳出口更新为所述报文转发设备的CPU。本发明能够简化子网路由的管理,提高子网路由的切换效率。
文档编号H04L12/703GK102984062SQ201210497238
公开日2013年3月20日 申请日期2012年11月29日 优先权日2012年11月29日
发明者林宁 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1