发明内容
本发明提供一种路由的通知方法和设备,以避免流量中断。
为了达到上述目的,本发明实施例提供一种路由的通知方法,应用于包括路由通告设备和路由接收设备的网络中,所述路由通告设备与所述路由接收设备之间存在至少两条链路,且所述链路上存在有所述路由通告设备与所述路由接收设备之间的中间网络设备,该方法包括以下步骤:
在所述路由通告设备发布路由时,所述中间网络设备接收所述路由通告设备发布的路由,并通过用于降低路由优先级的路由策略降低所述路由的优先级,以及将优先级降低后的路由通知给所述路由接收设备;
所述中间网络设备在确定出自身接收到所述路由的时间到达预设延迟等待时间时,将所述路由通知给所述路由接收设备。
在所述中间网络设备接收所述路由通告设备发布的路由之前,所述方法进一步包括:所述中间网络设备接收参数配置命令,且所述参数配置命令中携带所述路由策略以及所述预设延迟等待时间。
所述路由策略具体用于降低所述路由的优先级为所述网络中路由的最低优先级。
所述预设延迟等待时间具体为:不小于所述中间网络设备将所述路由下发到自身硬件的时间。
所述中间网络设备具体为:所述链路上存在的所有网络设备;或者,所述链路上存在的与所述路由接收设备直接连接的网络设备。
本发明实施例提供一种路由的通知设备,应用于包括路由通告设备和路由接收设备的网络中,所述路由通告设备与所述路由接收设备之间存在至少两条链路,且所述链路上存在有所述路由通告设备与所述路由接收设备之间的中间网络设备,所述通知设备为所述中间网络设备,该中间网络设备包括:
接收模块,用于在所述路由通告设备发布路由时,接收所述路由通告设备发布的路由;
处理模块,用于通过用于降低路由优先级的路由策略降低所述路由的优先级;
发送模块,用于将优先级降低后的路由通知给所述路由接收设备;以及,在确定出所述中间网络设备接收到所述路由的时间到达预设延迟等待时间时,将所述路由通知给所述路由接收设备。
所述接收模块,还用于接收参数配置命令,且所述参数配置命令中携带所述路由策略以及所述预设延迟等待时间。
所述路由策略具体用于降低所述路由的优先级为所述网络中路由的最低优先级。
所述预设延迟等待时间具体为:不小于所述中间网络设备将所述路由下发到自身硬件的时间。
所述中间网络设备具体为:所述链路上存在的所有网络设备;或者,所述链路上存在的与所述路由接收设备直接连接的网络设备。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,可以避免流量中断,继而避免流量中断所引起的业务中断。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
针对现有技术中的流量中断问题,本发明实施例中可以采用路由延迟发送机制,针对图3所示的应用场景,路由延迟发送机制的处理过程如图6所示;其中,在RTA和RTB之间的BGP邻居发生故障,且RTE将流量切换到RTA->RTC->RTD->RTE的链路后,如果RTA和RTB之间的BGP邻居关系恢复,则RTA重新将路由通告到RTB,此时RTB并不是立即将RTA上路由通告给RTE,而是进行路由延迟发送,即RTB等到将RTA上路由下发到自身硬件(用于指导自身硬件进行流量转发)之后,才将RTA上路由通告给RTE;这样,RTE重新优选通过RTB来的路由,并将流量切换到RTA->RTB->RTE的链路上之后,在流量切换过程中,当流量被发送到RTB时,该RTB能够基于自身的硬件进行流量转发,从而能够保证RTE过来的流量不丢失。
但是,发明人在实现本发明的过程中注意到上述路由延迟发送机制仍然会存在以下问题:如图7所示,在没有备份链路的情况下,如果采用路由延迟发送机制,假设每台网络设备都采用延迟发送机制延迟5秒发送RTA上路由,则RTE实际延迟了15秒才收到RTA上路由,且中间经过的网络设备数量越多,这个延迟时间越大,从而导致流量中断时间越长。
基于上述发现,本发明实施例提供一种路由的通知方法,以解决RTB先向RTE通告路由,后下发硬件所导致的流量中断问题,以及解决网络设备采用延迟发送机制所导致的延迟时间过大问题。
本发明实施例中,该方法应用于包括路由通告设备(用于通告本设备的路由,其为路由发起端)和路由接收设备(用于接收路由通告设备所发布的路由,其为路由目的端)的网络中,以图3为本发明实施例的应用场景示意图,路由通告设备为RTA,用于向其他网络设备发布自身路由;路由接收设备为RTE,用于接收路由通告设备发布的路由,并利用该路由实现流量发送。
进一步的,路由通告设备与路由接收设备之间存在至少两条链路(这至少两条链路之间为主备链路或者等价链路),且这至少两条链路上分别存在有路由通告设备与路由接收设备之间的中间网络设备,且每条链路上需要至少有一个中间网络设备;基于此,本发明实施例中,中间网络设备具体可以为链路上存在的所有网络设备;或者,中间网络设备具体可以为链路上存在的与路由接收设备直接连接的网络设备;在图3所示的应用场景下,中间网络设备为RTB、RTC和RTD;或者,中间网络设备为RTB和RTD。
本发明实施例中,需要在各中间网络设备(如RTB和RTD)上配置一条命令(参数配置命令),基于此,中间网络设备可以接收到参数配置命令;且该参数配置命令中携带用于降低路由优先级的路由策略以及预设延迟等待时间;路由策略为路由通告设备发布路由时用于降低该路由的优先级的路由策略;预设延迟等待时间为再次发送路由通告设备所发布路由的延迟等待时间。
基于上述情况,如图8所示,该路由的通知方法包括以下步骤:
步骤801,在路由通告设备(RTA)发布路由时,中间网络设备(如RTB和/或RTD)接收路由通告设备发布的路由。
在图3所示的应用场景下,RTA上的路由会通过RTA->RTC->RTD->RTE以及RTA->RTB->RTE这两条路径发布给RTE,因此针对RTA所发布的路由,RTB和RTD均可以接收到该RTA上的路由;在RTA和RTB之间的BGP邻居发生故障,且RTA和RTB之间的BGP邻居关系恢复后,RTA重新将路由通告到RTB,RTB可再次接收到RTA上的路由,后续以该情况为例进行说明。
步骤802,中间网络设备通过路由策略(用于降低路由优先级)降低路由的优先级,并将优先级降低后的路由通知给路由接收设备。
本发明实施例中,RTB在接收到RTA上的路由(以路由1为例进行后续说明)之后,需要降低该路由1的优先级;例如,当路由策略为通过改小local-preference值和/或加大med值来降低路由的优先级时,则RTB需要按照配置的路由策略修改路由1的某些属性(即改小local-preference值和/或加大med值等),以降低该路由1的优先级。
本发明实施例的一种优选实施方式中,该路由策略具体用于降低路由的优先级为网络中路由的最低优先级;基于该路由策略,RTB需要按照配置的路由策略将路由1的优先级降低为网络中的最低优先级。
基于上述处理,RTB在将优先级降低后的路由(即路由1)通知给路由接收设备RTE之后,如果网络中存在有链路RTA->RTC->RTD->RTE(即存在链路RTA->RTB->RTE的备份链路),则由于RTB发送至RTE的路由1的优先级为网络中的最低优先级,因此RTE不会重新优选通过RTB来的路由,且不会将流量切换到RTA->RTB->RTE的链路上;因此,RTB即使先向RTE通告路由,后将路由下发给自身硬件,也不会发生流量中断问题。
RTB在将优先级降低后的路由(即路由1)通知给路由接收设备RTE之后,如果网络中不存在链路RTA->RTB->RTE的备份链路和等价链路,则虽然RTB发送至RTE的路由1的优先级为网络中的最低优先级,RTE也会重新优选通过RTB来的路由,并将流量切换到RTA->RTB->RTE的链路上;因此不会出现网络设备采用延迟发送机制所导致的延迟时间过大问题。
步骤803,中间网络设备(如RTB)在确定出自身接收到路由(即路由通告设备RTA所发布的路由,如路由1)的时间到达预设延迟等待时间时,将路由(即路由1)通知给路由接收设备(RTE)。
本发明实施例的一种优选实施方式中,该预设延迟等待时间具体为:不小于中间网络设备将路由下发到自身硬件的时间;基于此,在配置的预设延迟等待时间内,中间网络设备可以完成路由下发自身硬件的操作,且在预设延迟等待时间点到达时,该中间网络设备(RTB)需要按照正常属性重新发布一遍路由(即路由通告设备RTA所发布的路由)给路由接收设备(RTE)。
基于上述处理,RTB在将正常属性的路由(即路由1)通知给路由接收设备RTE之后,如果网络中存在有链路RTA->RTC->RTD->RTE(即存在链路RTA->RTB->RTE的备份链路),则由于RTB发送至RTE的路由的优先级为正常属性,且通过RTB来的路由比通过RTD来的路由具有更高的优先级,因此RTE重新优选通过RTB来的路由,并将流量切换到RTA->RTB->RTE的链路上;此时由于RTB已将路由1下发给自身硬件,因此不会发生流量中断问题。
RTB在将正常属性的路由(即路由1)通知给路由接收设备RTE之后,如果网络中不存在链路RTA->RTB->RTE的备份链路和等价链路,则RTE仍然会通过链路RTA->RTB->RTE发送流量,不会发生流量中断问题。
综上所述,通过采用本发明实施例提供的技术方案,在新的网络设备加入网络或者网络设备在故障之后恢复时,可以避免流量中断,继而避免流量中断所引起的业务中断。
基于与上述方法同样的发明构思,本发明还提出了一种路由的通知设备,应用于包括路由通告设备和路由接收设备的网络中,所述路由通告设备与所述路由接收设备之间存在至少两条链路,且所述链路上存在有所述路由通告设备与所述路由接收设备之间的中间网络设备,所述通知设备为所述中间网络设备,如图9所示,该中间网络设备包括:
接收模块11,用于在所述路由通告设备发布路由时,接收所述路由通告设备发布的路由;
处理模块12,用于通过用于降低路由优先级的路由策略降低所述路由的优先级;
发送模块13,用于将优先级降低后的路由通知给所述路由接收设备;以及,在确定出所述中间网络设备接收到所述路由的时间到达预设延迟等待时间时,将所述路由通知给所述路由接收设备。
所述接收模块11,还用于接收参数配置命令,且所述参数配置命令中携带所述路由策略以及所述预设延迟等待时间。
本发明实施例中,所述路由策略具体用于降低所述路由的优先级为所述网络中路由的最低优先级。
本发明实施例中,所述预设延迟等待时间具体为:不小于所述中间网络设备将所述路由下发到自身硬件的时间。
本发明实施例中,所述中间网络设备具体为:所述链路上存在的所有网络设备;或者,所述链路上存在的与所述路由接收设备直接连接的网络设备。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。