首页 / 专利库 / 软件 / 虚拟机迁移 / 路由信息的处理方法和装置

路由信息的处理方法和装置

阅读:554发布:2020-05-08

专利汇可以提供路由信息的处理方法和装置专利检索,专利查询,专利分析的服务。并且本 申请 提供一种路由信息的处理方法和装置,该方法应用于路由获取设备,所述路由获取设备连接至第一边界网关协议BGP模 块 ,所述第一BGP模块用于提供路由信息;该方法包括:接收来自所述第一BGP模块的路由信息;若确定所述第一BGP模块发生故障,进入GR状态;结束所述GR状态之前,删除来自所述第一BGP模块的路由信息。本申请提供的路由信息的处理方法和装置在发生 虚拟机 迁移或者删除时,将不会继续通过第一BGP模块发送的路由信息指导流量转发,从而可以提高流量转发的成功率。,下面是路由信息的处理方法和装置专利的具体信息内容。

1.一种路由信息的处理方法,其特征在于,所述方法应用于路由获取设备,所述路由获取设备连接至第一边界网关协议BGP模,所述第一BGP模块用于提供路由信息;所述方法包括:
接收来自所述第一BGP模块的路由信息;
若确定所述第一BGP模块发生故障,进入GR状态;
结束所述GR状态之前,删除来自所述第一BGP模块的路由信息。
2.根据权利要求1所述的方法,其特征在于,所述路由获取设备连接至多个BGP模块,所述多个BGP模块包括所述第一BGP模块和第二BGP模块,所述第一BGP模块为所述多个BGP模块中优先级最高的模块;所述删除来自所述第一BGP模块的路由信息之前,所述方法还包括:
接收来自所述第二BGP模块的路由信息;
所述进入GR状态之后,所述删除来自所述第一BGP模块的路由信息之前,所述方法还包括:
确定从所述第二BGP模块接收到的路由信息发生变化。
3.根据权利要求2所述的方法,其特征在于,所述确定从所述第二BGP模块接收到的路由信息发生变化,包括:
判断本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息是否相同;
若本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息不相同,则确定从所述第二BGP模块接收到的路由信息发生变化。
4.根据权利要求2或3所述的方法,其特征在于,所述路由获取设备为反射器,所述反射器连接至至少一个TOR交换机;所述方法还包括:
根据来自所述第二BGP模块的路由信息,更新路由转发表项;
将更新后的路由转发表项发送给所述至少一个TOR交换机,所述更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
5.根据权利要求2或3所述的方法,其特征在于,所述路由获取设备为至少一个TOR交换机;所述方法还包括:
根据来自所述第二BGP模块的路由信息,更新路由转发表项,更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
6.根据权利要求4或5所述的方法,其特征在于,所述根据来自所述第二BGP模块的路由信息,更新路由转发表项,包括:
根据来自所述第二BGP模块的路由信息确定优选路由;
根据所述优选路由更新所述路由转发表项。
7.一种路由信息的处理装置,其特征在于,所述路由信息的处理装置连接至第一边界网关协议BGP模块,所述第一BGP模块用于提供路由信息,所述装置包括:
接收单元,用于接收来自所述第一BGP模块的路由信息;
处理单元,用于在确定所述第一BGP模块发生故障时,进入GR状态;
所述处理单元,还用于在结束所述GR状态之前,删除来自所述第一BGP模块的路由信息。
8.根据权利要求7所述的装置,其特征在于,所述路由信息的处理装置连接至多个BGP模块,所述多个BGP模块包括所述第一BGP模块和第二BGP模块,所述第一BGP模块为所述多个BGP模块中优先级最高的模块;
所述接收单元,还用于:接收来自所述第二BGP模块的路由信息;
所述处理单元,还用于:确定从所述第二BGP模块接收到的路由信息发生变化。
9.根据权利要求8所述的装置,其特征在于,所述处理单元,具体用于:
判断本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息是否相同;
若本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息不相同,则确定从所述第二BGP模块接收到的路由信息发生变化。
10.根据权利要求8或9所述的装置,其特征在于,所述路由信息的处理装置为反射器,所述反射器连接至至少一个TOR交换机;所述装置还包括:发送单元;其中,所述处理单元,还用于:
根据来自所述第二BGP模块的路由信息,更新路由转发表项;
所述发送单元,用于将更新后的路由转发表项发送给所述至少一个TOR交换机,所述更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
11.根据权利要求8或9所述的装置,其特征在于,所述路由信息的处理装置为至少一个TOR交换机;
所述处理单元,还用于:根据来自所述第二BGP模块的路由信息,更新路由转发表项,更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
12.根据权利要求10或11所述的装置,其特征在于,所述处理单元,具体用于:
根据来自所述第二BGP模块的路由信息确定优选路由;
根据所述优选路由更新所述路由转发表项。
13.一种路由获取设备,其特征在于,包括:
处理器;
存储器;以及
计算机程序
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-6任一项所述的方法的指令。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得路由获取设备执行权利要求1-6任一项所述的方法。

说明书全文

路由信息的处理方法和装置

技术领域

[0001] 本申请实施例涉及通信技术领域,尤其涉及一种路由信息的处理方法和装置。

背景技术

[0002] 随着虚拟化技术、软件定义网络(Software Defined Network,SDN)技术的逐步成熟,数据中心的网络已经从传统网络向化网络逐步演进。云化网络除了可以提升数据中心计算、存储资源的利用率,其与SDN技术的结合更实现了网络的自动化发放和运维。在云化网络部署方案中,为了提高边界网关协议(Border Gateway Protocol,BGP)Speaker模(也称为BGP模块)的可靠性,BGP模块一般采用多活方式安装部署,即通过启动多个独立的BGP模块,分别与反射器机架顶部(Top Of Rack,TOR)交换机建立BGP邻居关系,反射器或TOR交换机接收到从不同BGP邻居发送的多份路由,经过比较,选择优选路由下发转发表项指导流量转发。为了提高BGP协议连接稳定性,可以为BGP协议使能优雅重启(Graceful Restart,GR)能,当BGP协议的会话中断时,通过GR能力可以保持云化网络中流量转发的稳定性。
[0003] 图1为相关技术中通过BGP多活方式进行流量转发的示意图,如图1所示,BGP模块A、BGP模块B和BGP模块C分别与反射器/TOR交换机通过BGP会话1、BGP会话2和BGP会话3建立BGP邻居关系并协商成功GR能力。网络控制器虚拟机网络信息分发模块分别向BGP模块A、BGP模块B和BGP模块C发送虚拟机的网络信息,其中,反射器/TOR交换机分别从BGP模块A、BGP模块B和BGP模块C接收到三条相同的路由,反射器/TOR交换机经过选路,BGP模块A发送的路由为最优路由,BGP模块B发送的路由为次优路由。当BGP模块A发生故障,反射器/TOR交换机将会进入GR状态,并启动GR计时器。在GR计时器超时且BGP模块A的故障未恢复时,反射器/TOR交换机将会断开和BGP模块A的连接,并根据BGP模块B发送的路由信息继续指导流量的转发。
[0004] 然而,在云化网络部署场景中,上述的流量转发方式,在BGP模块A出现故障,导致反射器/TOR交换机进入GR状态,而BGP模块B发送的路由还未被优选时,反射器/TOR交换机将无法感知虚拟机的迁移或删除,导致流量转发失败。发明内容
[0005] 本申请实施例提供一种路由信息的处理方法和装置,在发生虚拟机迁移或者删除时,将不会继续通过第一BGP模块发送的路由信息指导流量转发,从而可以提高流量转发的成功率。
[0006] 第一方面,本申请实施例提供一种路由信息的处理方法,该方法应用于路由获取设备,所述路由获取设备连接至第一边界网关协议BGP模块,所述第一BGP模块用于提供路由信息;所述方法包括:
[0007] 接收来自所述第一BGP模块的路由信息;
[0008] 若确定所述第一BGP模块发生故障,进入GR状态;
[0009] 结束所述GR状态之前,删除来自所述第一BGP模块的路由信息。
[0010] 在本方案中,由于在第一BGP模块发生故障时,在路由获取设备的GR状态结束之前,将从第一BGP模块中接收到的路由信息删除,这样,在发生虚拟机迁移或者删除时,将不会继续通过第一BGP模块发送的路由信息指导流量转发,从而可以提高流量转发的成功率。
[0011] 在一种可能的实现方式中,所述路由获取设备连接至多个BGP模块,所述多个BGP模块包括所述第一BGP模块和第二BGP模块,所述第一BGP模块为所述多个BGP模块中优先级最高的模块;所述删除来自所述第一BGP模块的路由信息之前,所述方法还包括:
[0012] 接收来自所述第二BGP模块的路由信息;
[0013] 所述进入GR状态之后,所述删除来自所述第一BGP模块的路由信息之前,所述方法还包括:
[0014] 确定从所述第二BGP模块接收到的路由信息发生变化。
[0015] 在本案中,路由获取设备在判断第二BGP模块的路由信息是否发生了变化时,可以判断在第一BGP模块发生故障之后,是否接收到第二BGP模块发送的路由信息,若接收到第二BGP模块发送的路由信息,则确定第二BGP模块对应的路由信息发生了变化。其中,通过判断是否接收到第二BGP模块发送的路由信息,来判断第二BGP模块对应的路由信息是否发生了变化,使得路由信息的的判断方式更加简单。
[0016] 在一种可能的实现方式中,确定从所述第二BGP模块接收到的路由信息发生变化,包括:
[0017] 判断本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息是否相同;
[0018] 若本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息不相同,则确定从所述第二BGP模块接收到的路由信息发生变化。
[0019] 在本案中,通过比较本次从第二BGP模块接收到的路由信息与上一次从第二BGP模块接收到的路由信息是否相同,来判断第二BGP模块对应的路由信息是否发生了变化,使得路由信息的的判断结果更加准确。
[0020] 在一种可能的实现方式中,所述路由获取设备为反射器,所述反射器连接至至少一个TOR交换机;所述方法还包括:
[0021] 根据所述来自第二BGP模块的路由信息,更新路由转发表项;
[0022] 将更新后的路由转发表项发送给所述至少一个TOR交换机,所述更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
[0023] 其中,路由转发表项中包括与TOR交换机连接的各物理服务器中运行的虚拟机的IP地址、MAC地址、VNI和VTEP信息。
[0024] 在一种可能的实现方式中,所述路由获取设备为至少一个TOR交换机;所述方法还包括:
[0025] 根据来自所述第二BGP模块的路由信息,更新路由转发表项,更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
[0026] 在本方案中,根据第二BGP模块发送的路由信息,更新路由转发表项,可以提高路由转发表项更新的准确性。
[0027] 在一种可能的实现方式中,所述根据来自所述第二BGP模块的路由信息,更新路由转发表项,包括:
[0028] 根据来自所述第二BGP模块的路由信息确定优选路由;
[0029] 根据所述优选路由更新所述路由转发表项。
[0030] 在本方案中,根据第二BGP模块发送的路由信息,更新路由转发表项,可以提高路由转发表项更新的准确性。
[0031] 在一种可能的实现方式中,所述第一BGP模块和所述第二BGP模块属于同一GR组内。
[0032] 在一种可能的实现方式中,所述方法还包括:
[0033] 在确定出第一BGP模块发生故障时,对从所述第一BGP模块接收到的第一路由信息添加标记;
[0034] 所述删除从所述第一BGP模块接收到的第一路由信息,包括:
[0035] 删除添加了标记的所述第一路由信息。
[0036] 在本方案中,路由获取设备在确定出第一BGP模块发生故障时,对从第一BGP模块接收到的第一路由信息添加标记,因此,在删除第一路由信息时,只需要删除添加了标记的第一路由信息即可,从而可以简化删除第一路由信息的流程。
[0037] 第二方面,本申请实施例提供一种路由信息的处理装置,所述路由信息的处理装置连接至第一边界网关协议BGP模块,所述第一BGP模块用于提供路由信息,所述装置包括:
[0038] 接收单元,用于接收来自所述第一BGP模块的路由信息;
[0039] 处理单元,用于在确定所述第一BGP模块发生故障时,进入GR状态;
[0040] 所述处理单元,还用于在结束所述GR状态之前,删除来自所述第一BGP模块的路由信息。
[0041] 在一种可能的实现方式中,所述路由信息的处理装置连接至多个BGP模块,所述多个BGP模块包括所述第一BGP模块和第二BGP模块,所述第一BGP模块为所述多个BGP模块中优先级最高的模块;
[0042] 所述接收单元,还用于:接收来自所述第二BGP模块的路由信息;
[0043] 所述处理单元,还用于:确定从所述第二BGP模块接收到的路由信息发生变化。
[0044] 在一种可能的实现方式中,所述处理单元,具体用于:
[0045] 判断本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息是否相同;
[0046] 若本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息不相同,则确定从所述第二BGP模块接收到的路由信息发生变化。
[0047] 在一种可能的实现方式中,所述路由信息的处理装置为反射器,所述反射器连接至至少一个TOR交换机;所述装置还包括:发送单元;其中,
[0048] 所述处理单元,还用于:
[0049] 根据来自所述第二BGP模块的路由信息,更新路由转发表项;
[0050] 所述发送单元,用于将更新后的路由转发表项发送给所述至少一个TOR交换机,所述更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
[0051] 在一种可能的实现方式中,所述路由信息的处理装置为至少一个TOR交换机;
[0052] 所述处理单元,还用于:根据来自所述第二BGP模块的路由信息,更新路由转发表项,更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
[0053] 在一种可能的实现方式中,所述处理单元,具体用于:
[0054] 根据来自所述第二BGP模块的路由信息确定优选路由;
[0055] 根据所述优选路由更新所述路由转发表项。
[0056] 在一种可能的实现方式中,所述第一BGP模块和所述第二BGP模块属于同一GR组内。
[0057] 在一种可能的实现方式中,所述处理单元,具体用于:
[0058] 在确定出第一BGP模块发生故障时,对从所述第一BGP模块接收到的第一路由信息添加标记;
[0059] 删除添加了标记的所述第一路由信息。
[0060] 本申请第二方面提供的装置,可以是路由获取设备,也即反射器或者交换机,也可以是路由获取设备内的芯片,所述路由获取设备或所述芯片具有实现上述各方面或其任意可能的设计中的路由信息的处理方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
[0061] 所述路由获取设备包括:处理单元和收发单元,所述处理单元可以是处理器,所述收发单元可以是收发器,所述收发器包括射频电路,可选地,所述路由获取设备还包括存储单元,所述存储单元例如可以是存储器。当所述路由获取设备包括存储单元时,所述存储单元用于存储计算机执行指令,所述处理单元与所述存储单元连接,所述处理单元执行所述存储单元存储的计算机执行指令,以使所述路由获取设备执行上述各方面或其任意可能的设计中的路由信息的处理方法。
[0062] 所述芯片包括:处理单元和收发单元,所述处理单元可以是处理器,所述收发单元可以是所述芯片上的输入/输出接口、管脚或电路等。所述处理单元可执行存储单元存储的计算机执行指令,以使所述芯片执行上述各方面或其任意可能的设计中的路由信息的处理方法。可选地,所述存储单元可以是所述芯片内的存储单元(例如,寄存器、缓存等),所述存储单元还可以是所述路由获取设备内的位于所述芯片外部的存储单元(例如,只读存储器(read-only memory,ROM))或可存储静态信息和指令的其他类型的静态存储设备(例如,随机存取存储器(random access memory,RAM))等。
[0063] 上述提到的处理器可以是一个中央处理器(central processing unit,CPU)、微处理器专用集成电路(application specific integrated circuit,ASIC),也可以是一个或多个用于控制上述各方面或其任意可能的设计的路由信息的处理方法的程序执行的集成电路。
[0064] 本申请实施例的第三方面提供了一种计算机可读存储介质,用于存储计算机指令,当其在计算机上运行时,使得计算机执行本申请实施例的第一方面提供的路由信息的处理方法。
[0065] 本申请实施例的第四方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例的第一方面提供的路由信息的处理方法。
[0066] 本申请实施例的第五方面提供了一种路由信息的处理装置,包括:存储器、处理器以及计算机程序;其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。
[0067] 本申请实施例提供的路由信息的处理方法和装置,通过接收来自第一BGP模块的路由信息,若确定第一BGP模块发生故障,则进入GR状态,在结束GR状态之前,删除来自第一BGP模块的路由信息。由于在第一BGP模块发生故障时,在路由获取设备结束GR状态之前,将来自第一BGP模块的路由信息删除,这样,在第二BGP模块对应的第二路由信息发生变化时,将不会继续通过来自第一BGP模块的路由信息指导流量转发,从而可以提高流量转发的成功率。附图说明
[0068] 图1为相关技术中通过BGP多活方式进行流量转发的示意图;
[0069] 图2a为本申请实施例提供的一种云化网络的结构示意图;
[0070] 图2b为本申请实施例提供的另一种云化网络的结构示意图;
[0071] 图3为本申请实施例提供的一种路由信息的处理方法的流程示意图;
[0072] 图4为虚拟机路由信息发布的流程示意图;
[0073] 图5为单个BGP模块发生故障且正常恢复后的流程示意图;
[0074] 图6为单个BGP模块发生故障且故障未恢复的流程示意图;
[0075] 图7为所有BGP模块发生故障的流程示意图;
[0076] 图8a为本申请实施例提供的一种路由信息的处理装置的结构示意图;
[0077] 图8b为本申请实施例提供的另一种路由信息的处理装置的结构示意图;
[0078] 图9是本申请实施例提供的一种路由获取设备的结构示意图。

具体实施方式

[0079] 以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
[0080] 1)本申请中的单元是指功能单元或逻辑单元。其可以为软件形式,通过处理器执行程序代码来实现其功能;也可以为硬件形式。
[0081] 2)“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“以上”或“以下”等所描述的范围包括边界点。
[0082] 3)优雅重启(Graceful Restart,GR),属于高可靠性(high availability,HA)技术的一种。BGP GR的基本原理是:(1)至少一个BGP模块在和反射器/TOR交换机建立BGP邻居关系时,会互相向对方通告本端支持的GR能力,并且进行GR能力协商。(2)当反射器/TOR交换机检查到某一个BGP模块发生故障时,反射器/TOR交换机将会进入GR状态,并启动GR计时器,反射器/TOR交换机在GR计时器的计时时间内不删除和发生故障的BGP模块相关的路由信息和转发表项,而是将从发生故障的BGP模块中接收到的路由信息打上特殊标记,并等待重建和发生故障的BGP模块之间的BGP连接。如果在GR计时器的计时时间内,发生故障的BGP模块的故障恢复,即反射器/TOR交换机能够与发生故障的BGP模块重新建立BGP连接,则反射器/TOR交换机会去掉从发生故障的BGP模块中接收到的路由信息中的特殊标记,且取消GR计时器。如果在GR计时器的计时时间内,发生故障的BGP模块的故障未恢复,即反射器/TOR交换机无法与发生故障的BGP模块重新建立BGP连接,则反射器/TOR交换机会根据其他BGP模块发送的路由信息来指导流量的转发。
[0083] 4)进入GR状态,包括反射器/TOR交换机启动GR计时器,以及将从发生故障的BGP模块中接收到的路由信息打上特殊标记。
[0084] 为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
[0085] 本申请下述各实施例提供的路由信息的处理方法,可适用于云化网络中。云化网络中一般使用可扩展虚拟局域网(Virtual eXtensible Lan,VxLan)隧道封装租户数据。根据VxLan隧道封装位置的不同,虚拟机的接入方式可以分为主机叠加(Overlay)和网络叠加(Overlay)两种。主机Overlay在物理服务器上运行的虚拟交换机(Virtual Switch,vSwitch)上封装VxLan隧道,数据包从物理服务器上发出时即为封装好的VxLan报文。网络Overlay在物理服务器的接入TOR交换机上封装VxLan隧道,数据包从物理服务器上发出时是虚拟局域网(virtual local area network,Vlan)报文或untag报文。
[0086] 图2a为本申请实施例提供的一种云化网络的结构示意图,图2b为本申请实施例提供的另一种云化网络的结构示意图。如图2a和图2b所示,物理服务器1(也称为主机1(Host1))中运行的虚拟机(virtual machine,VM)1和VM2,以及物理服务器2(也称为主机2(Host2))中运行的VM3和VM4的接入方式为网络Overlay方式,物理服务器3(也称为主机3(Host3))中运行的VM5和VM6的接入方式为主机Overlay方式。其中,在物理服务器3上运行的vSwitch上封装VxLan隧道,数据包从物理服务器3上发出时即为封装好的VxLan报文。在物理服务器1和物理服务器2的路由获取设备上封装VxLan隧道,数据包从物理服务器1和物理服务器2上发出时是Vlan报文或untag报文,其中,路由获取设备包括TOR交换机。另外,物理服务器3中的虚拟网络边缘(network virtualization edge,NVE)是VxLan隧道的起点和终点,其中,负责封装、解封装VxLan隧道的逻辑单元是VxLan隧道端点(VxLan Tunnel End Point,VTEP)。
[0087] 其中,路由获取设备接收BGP模块下发的路由信息,以指导各个物理服务器中运行的虚拟机进行流量转发,可选地,BGP模块可以部署在网络控制器中,该网络控制器可以包括云平台或软件定义网络(Software Define Network,SDN)控制器,当然,该BGP模块也可以独立部署,或者部署在其他设备中,对于BGP模块的具体部署方式,本申请实施例在此不做限制。
[0088] 如图2b所示,路由获取设备可以包括TOR交换机,或者也可以包括TOR交换机和作为反射器的核心交换机,其中,TOR交换机可以包括具有NVE作用的TOR交换机。另外,采用TOR交换机的云化网络实现内部二三层转发时,一种实现方式是使用BGP-以太网虚拟专用网络(ethernet virtual private network,EVPN)协议。TOR交换机之间通过BGP-EVPN协议传递两类信息:(1)彼此的VTEP信息,用来自动建立TOR交换机之间的VxLan隧道,其中,VTEP信息为TOR交换机之间的VxLan隧道的端点;(2)传递与每个TOR交换机连接的物理服务器中运行的各虚拟机的网络协议(Internet Protocol,IP)地址、各虚拟机的媒体访问控制(Media Access Control,MAC)地址、各虚拟机的虚拟可扩展局域网网络标识符(VxLan Network Identifier,VNI)以及各虚拟机所在哪个VTEP信息,从而用来标明每个TOR交换机都连接了哪些物理服务器中的虚拟机,以实现云化网络自动打通内部二三层转发。例如,可以传递物理服务器1中虚拟机1(VM1)和虚拟机2(VM2)、物理服务器2中虚拟机3(VM3)和虚拟机4(VM4)以及物理服务器3中虚拟机5(VM5)和虚拟机6(VM6)的IP地址、MAC地址、VNI以及所在的VTEP信息。
[0089] 由于BGP-EVPN协议比较复杂,vSwitch实现该功能会占用物理服务器比较多的资源,所以通常情况下vSwitch是没有BGP-EVPN协议的能力的。采用vSwitch的云化网络实现内部二三层转发时,通常需要BGP模块向vSwitch通知vSwitch的VTEP信息和物理服务器中运行的各虚拟机的虚拟机(Virtual Machine,VM)信息,用来vSwitch间建立隧道,以实现云化网络打通内部二三层转发。可选地,vSwitch可以包括具有NVE作用的vSwitch。
[0090] 对于既有主机overlay又有网络overlay的情况,BGP模块需要向vSwitch通知TOR交换机的VTEP信息和与TOR交换机连接的物理服务器中运行的虚拟机的VM信息;同时BGP模块需要把vSwitch侧的VTEP信息和物理服务器中运行的各虚拟机的VM信息包装成路由信息通知给TOR交换机,可选地,该路由信息可以为BGP-EVPN路由信息。如果TOR交换机数量比较多,BGP模块会将路由信息通告给反射器(RR),再由反射器(RR)通告给各TOR交换机,其中,反射器(RR)可以是核心交换机,也可以是某个TOR交换机。
[0091] 示例性的,BGP模块可以由软件实现,作用是将VTEP信息和VM信息转换为路由信息发布给路由获取设备,例如发布给反射器或直接发布给TOR交换机。其中,BGP模块可以部署在网络控制器中,也可以独立部署,或者部署在其他设备中,对于BGP模块的具体部署方式,本申请实施例在此不做限制,示例性的,该网络控制器可以包括云平台或SDN控制器。另外,可以理解的是,多个独立的BGP模块相互备份。
[0092] 示例性的,上述的路由信息可以包括与TOR交换机连接的物理服务器中运行的各虚拟机的IP地址、MAC地址、VNI和各虚拟机所在的VTEP IP等信息。
[0093] 另外,上述的网络控制器中包括有虚拟机网络信息分发模块,该虚拟机网络信息分发模块用于向BGP模块发送与TOR交换机连接的物理服务器中运行的各虚拟机的IP地址、MAC地址和VNI。
[0094] 另外,在TOR交换机数量不多的情况下,图2a中的路由获取设备为TOR交换机,也即没有反射器(RR),此时,BGP模块直接与TOR交换机建立BGP-EVPN邻居,BGP模块直接向TOR交换机发送路由信息,以指导流量的转发。
[0095] 在TOR交换机数量较多的情况下,图2a中的路由获取设备为云化网络中的反射器,该反射器可以是核心交换机,也可以是某个TOR交换机,BGP模块将路由信息发送给反射器,反射器再把路由信息发送给做VxLan NVE的TOR交换机。
[0096] 下面首先针对本申请实施例适用场景进行简要说明。
[0097] 在图2a和图2b所示系统架构的基础上,本申请实施例中以有反射器的场景为例进行说明,无反射器时的场景与有反射器时的场景类似,此处不再赘述。当BGP模块发生故障,反射器不会删除从网络控制器学习到的路由信息,否则TOR交换机上的路由信息也会被删除进而影响数据转发。因此反射器需要开启BGP优雅重启(Graceful Restart,GR)特性。具体的,当反射器发现BGP模块发生故障后,就会进入GR状态,把从BGP模块学习到的路由信息打上一个特殊标记(stale标记),同时启动一个GR计时器(GRTimer),此时这些带特殊标记的路由信息依然有效,而且可以正常用于指导流量转发。如果GR计时器的计时时间内BGP模块的故障恢复,反射器会去掉路由信息的stale标记,并取消GR计时器,此过程中数据面不受影响;但是在GR计时器的计时时间内如果BGP模块的故障未恢复,则反射器会删除发生故障的BGP模块发送的所有路由信息,此时,数据通信中断。因此除了反射器配置GR功能以外,还需要有多个BGP模块来保证可靠性。
[0098] 相关技术中,可以通过启动多个独立的BGP模块来解决BGP模块可靠性的问题,其中,多个独立的BGP模块对外体现不同的IP地址,分别与反射器建立BGP邻居关系。反射器接收到从不同BGP模块发送的多份路由信息,经过比较选择优选路由下发转发表项指导流量转发。
[0099] 如图1所示,BGP模块A、BGP模块B和BGP模块C分别与反射器/TOR交换机通过BGP会话1、BGP会话2和BGP会话3建立BGP邻居关系并协商成功GR能力。网络控制器的虚拟机网络信息分发模块分别向BGP模块A、BGP模块B和BGP模块C发送虚拟机的网络信息,其中,反射器/TOR交换机分别从BGP模块A、BGP模块B和BGP模块C接收到三条相同的路由,反射器/TOR交换机经过选路,BGP模块A发送的路由为最优路由,BGP模块B发送的路由为次优路由。当BGP模块A发生故障,反射器/TOR交换机将会进入GR状态,并启动GR计时器。在GR计时器超时且BGP模块A的故障未恢复时,反射器/TOR交换机将会断开和BGP模块A的连接,并根据BGP模块B发送的路由信息继续指导流量的转发。但是,在上述方式中,当BGP模块A发生故障时,反射器/TOR交换机无法立即感知,无论是否配置了GR,都需要等待一段时间才能发现BGP模块A发生了故障,从而与BGP模块A断连。此期间,如果虚拟机从一个物理服务器迁移到另外一个物理服务器,则网络控制器会通知BGP模块修改该虚拟机的路由信息的下一跳属性。BGP模块B和BGP模块C分别修改了下一跳属性并发送给反射器/TOR交换机。反射器/TOR交换机也修改了本地BGP模块B和BGP模块C发送的路由信息的下一跳属性,但此时,由于GR计时器的计时时间还未超时,因此,BGP模块A的路由信息依然优选且用于指导流量转发,从而会导致流量转发失败。
[0100] 同样的,如果发生了虚拟机删除,网络控制器通知BGP模块撤销该虚拟机的路由信息,BGP模块B和BGP模块C分别发送撤销路由给反射器/TOR交换机,反射器/TOR交换机也删除了本地BGP模块B和BGP模块C发送的路由信息,但BGP模块A发送的路由信息依然存在且为优选,依然可以用于指导流量转发,从而会导致流量转发失败。
[0101] 本申请实施例中考虑到上述问题,提出了一种路由信息的处理方法,该方法应用于路由获取设备,该路由获取设备连接至第一BGP模块,上述第一BGP模块用于提供路由信息,路由获取设备通过接收来自第一BGP模块的路由信息,若确定第一BGP模块发生故障,则进入GR状态,在结束GR状态之前,删除来自第一BGP模块的路由信息。由于在第一BGP模块发生故障时,在路由获取设备的GR状态结束之前,将从第一BGP模块中接收到的路由信息删除,这样,在发生虚拟机迁移或者删除时,将不会继续通过第一BGP模块发送的路由信息指导流量转发,从而可以提高流量转发的成功率。
[0102] 下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
[0103] 图3为本申请实施例提供的一种路由信息的处理方法的流程示意图。在上述图2a和图2b所示系统架构的基础上,该方法应用于路由获取设备,路由获取设备连接至第一BGP模块,该第一BGP模块用于提供路由信息。如图3所示,在本实施例中,该路由信息的处理方法可以包括如下步骤:
[0104] 步骤301:接收来自第一BGP模块的路由信息。
[0105] 在本步骤中,路由获取设备将接收第一BGP模块发送的路由信息,该路由信息可以包括与路由获取设备连接的物理服务器中运行的各虚拟机的IP地址、MAC地址、VNI和各虚拟机所在的VTEP IP等信息。
[0106] 其中,路由获取设备例如可以为作为反射器的核心交换机,也可以为TOR交换机。
[0107] 步骤302:若确定第一BGP模块发生故障,进入GR状态。
[0108] 在本步骤中,路由获取设备将会确定第一BGP模块是否发生故障。
[0109] 在一种可能的实现方式中,路由获取设备在确定第一BGP模块是否发生故障时,可以通过判断连续n次是否接收到第一BGP模块发送的报文,若连续n次均未接收到第一BGP模块发送的报文,则确定第一BGP模块发生故障。
[0110] 当然,路由获取设备还可以通过如下一种或者多种方式确定第一BGP模块是否发生故障:判断保持连接(KeepAlive)报文是否超时或传输控制协议(Transmission Control Protocol,TCP)连接是否错误等等,其中,keepalive是一种可以检测死连接的机制。例如:若判断出KeepAlive报文超时,则可以确定第一BGP模块发生了故障,或者,若判断出TCP连接错误,则确定第一BGP模块发生了故障。
[0111] 路由获取设备在确定出第一BGP模块发生了故障时,将会进入GR状态,此时,路由获取设备会启动GR计时器,并将从第一BGP模块中接收到的路由信息打上特殊标记。
[0112] 步骤303:结束GR状态之前,删除来自第一BGP模块的路由信息。
[0113] 在本步骤中,路由获取设备在确定出第一BGP模块发生故障时,为了提高第一BGP模块的可靠性,路由获取设备将进入GR状态。为了防止由于虚拟机发生迁移或者删除,导致第一BGP模块发送的路由信息不准确,造成流量转发失败的现象。在本申请实施例中,在路由获取设备结束GR状态之前,路由获取设备将会删除从第一BGP模块接收到的路由信息,这样,由于路由获取设备将来自第一BGP模块的路由信息删除后,将不会再继续根据来自第一BGP模块的路由信息指导流量的转发,示例性的,路由获取设备将根据从其他BGP模块接收到的路由信息继续指导流量的转发,从而可以提高流量转发的成功率。
[0114] 值得注意的是,第一BGP模块发送的路由信息的优先级高于其他BGP模块发送的路由信息。因此,路由获取设备通常会优先采用第一BGP模块发送的路由信息指导流量的转发。
[0115] 其中,示例性的,路由获取设备连接至多个BGP模块,该多个BGP模块包括第一BGP模块和第二BGP模块,第一BGP模块为多个BGP模块中优先级最高的模块,也就是说,路由获取设备会优先采用第一BGP模块发送的路由信息指导流量的转发。路由获取设备在删除来自第一BGP模块的路由信息之前,还会接收来自第二BGP模块的路由信息;路由获取设备进入GR状态之后,删除来自第一BGP模块的路由信息之前,需要确定从第二BGP模块接收到的路由信息发生变化。
[0116] 具体的,第二BGP模块的路由信息发生变化的原因,可能是由于某个虚拟机或者某些虚拟机发生了迁移或者删除了某个虚拟机或者某些虚拟机,当然,也有可能是其他原因引起了第二BGP模块的路由信息发生了变化。另外,在第二BGP模块的路由信息发生变化时,第二BGP模块会重新向路由获取设备发送路由信息,路由获取设备将对之前保存的来自第二BGP模块的路由信息进行刷新。若第二BGP模块的路由信息未发生变化时,第二BGP模块通常不会重复向路由获取设备发送路由信息。因此,在一种可能的实现方式中,路由获取设备在判断第二BGP模块的路由信息是否发生变化时,可以判断在进入GR状态之后,是否接收到来自第二BGP模块的路由信息,若接收到来自第二BGP模块的路由信息,则确定第二BGP模块的路由信息发生了变化。其中,通过判断是否接收到来自第二BGP模块的路由信息,来判断第二BGP模块的路由信息是否发生变化,使得确定第二BGP模块的路由信息是否发生变化的判断方式更加简单。
[0117] 在另一种可能的实现方式中,路由获取设备也可能会主动获取第二BGP模块路由信息,此时,在确定从第二BGP模块接收到的路由信息发生变化时,路由获取设备也可以在接收到来自第二BGP模块的路由信息之后,将本次从第二BGP模块接收到的路由信息与上一次从第二BGP模块接收到的路由信息进行比较,若本次从第二BGP模块接收到的路由信息与上一次从第二BGP模块接收到的路由信息不同,则确定从第二BGP模块接收到的路由信息发生了变化。
[0118] 进一步的,在确定出从第二BGP模块接收到的路由信息发生了变化时,若第一BGP模块发生故障,那么从第一BGP模块学习到的路由信息仍然是发生变化之前的路由信息,此时,在路由获取设备进入GR状态后,如果继续采用第一BGP模块发送的路由信息指导流量转发,则将会导致流量转发失败。为了解决这一问题,本申请实施例中,在从第二BGP模块接收的路由信息发生了变化时,会将从第一BGP模块接收或者学习到的路由信息删除,这样,路由获取设备将不会继续采用来自第一BGP模块的路由信息指导流量转发,而是根据来自其他BGP模块发送的变化之后的路由信息指导流量转发,从而提高了流量转发的成功率。
[0119] 在具体的实现过程中,路由获取设备在进入GR状态后,对来自第一BGP模块的路由信息添加标记,例如为来自第一BGP模块的路由信息打上stale标记,因此,在删除来自第一BGP模块的路由信息时,只需要删除添加了标记的路由信息即可,从而可以简化删除来自第一BGP模块的路由信息的流程。
[0120] 示例性的,若上述路由获取设备为反射器,该反射器连接至少一个TOR交换机,路由获取设备在删除了来自第一BGP模块的路由信息之后,还可以根据来自第二BGP模块的路由信息,更新路由转发表项,并将更新后的路由转发表项发送给至少一个TOR交换机,该更新后的路由转发表项用于指示至少一个TOR交换机进行流量转发。
[0121] 具体的,若在路由获取设备结束GR状态之前,也即GR计时器的计时结束之前,第一BGP模块的故障未恢复,且判断出来自第二BGP模块的路由信息发生了变化时,路由获取设备将会删除来自第一BGP模块的路由信息中的stale标记。而且由于来自第二BGP模块的路由信息是更新后的路由信息,路由获取设备可以根据该更新后的路由信息,更新路由转发表项,并将更新后的路由转发表项发送给与反射器连接的至少一个TOR交换机,TOR交换机将会根据更新后的路由转发表项指导流量转发。其中,路由转发表项中包括与TOR交换机连接的各物理服务器中运行的虚拟机的IP地址、MAC地址、VNI和VTEP信息。
[0122] 示例性的,若路由获取设备为至少一个TOR交换机,路由获取设备将根据来自第二BGP模块的路由信息,更新路由转发表项,其中,更新后的路由转发表项用于指示至少一个TOR交换机进行流量转发。
[0123] 具体地,路由获取设备在删除了来自第一BGP模块的路由信息之后,将根据来自第二BGP模块的路由信息,更新自身的路由转发表项,这样,TOR交换机将会根据更新后的路由转发表项指导流量转发。其中,路由转发表项中包括与TOR交换机连接的各物理服务器中运行的虚拟机的IP地址、MAC地址、VNI和VTEP信息。
[0124] 在一种可能的实现方式中,若第二BGP模块有至少两个,也即来自第二BGP模块的路由信息也为至少两个时,路由获取设备将根据来自至少两个第二BGP模块的路由信息确定优选路由,从而根据确定出的优选路由更新路由转发表项。其中,优选路由可以理解为优先级最高的路由信息,路由获取设备通常会根据优选路由指导流量的转发。
[0125] 示例性的,路由获取设备可以根据预先设置的选路规则,从来自至少两个第二BGP模块的路由信息中确定优选路由,当然,也可以通过其他方式确定优选路由,对于优选路由的具体确定方式,本申请实施例中不作限制。
[0126] 本领域技术人员可以理解,若在GR计时器的计时结束之前,第一BGP模块的故障恢复,路由获取设备将会删除来自第一BGP模块的路由信息中的stale标记和GR计时器,并且第一BGP模块会从网络控制器中获取最新的路由信息,将获取的最新的路由信息发送给路由获取设备,以使路由获取设备根据来自第一BGP模块的最新的路由信息以及来自第二BGP模块的路由信息,确定优选路由,从而更新路由转发表项。
[0127] 需要进行说明的是,在上述各实施例中,第一BGP模块和第二BGP模块属于同一GR组内。
[0128] 具体的,在本申请实施例中,路由获取设备将具有相互备份关系的BGP邻居划分到一个GR组内,例如将第一BGP模块和第二BGP模块划分到同一GR组内。当路由获取设备感知到GR组内的第一BGP模块发生故障,则路由获取设备将进入GR状态,为来自第一BGP模块的路由信息打上stale标记,并启动GR计时器,等待第一BGP模块的故障恢复。
[0129] 当同组内来自第二BGP模块的路由信息发生了变化时,路由获取设备将会删除同组内相同前缀的、具有stale标记的来自第一BGP模块的路由信息,以避免来自第一BGP模块的路由信息由于优先级高导致的路由转发表项的更新或者删除失败。其中,相同前缀是指路由信息中的与TOR交换机连接的各物理服务器中运行的虚拟机的IP地址、MAC地址相同。
[0130] 另外,同一个GR组内的所有BGP模块的GR状态相互独立,即如果同组内所有BGP模块都发生故障,路由获取设备依然会在最后一个BGP模块发生故障后保留GR计时器,以保证BGP模块的可靠性。
[0131] 本申请实施例提供的路由信息的处理方法,通过接收来自第一BGP模块的路由信息,若确定第一BGP模块发生故障,则进入GR状态,在结束GR状态之前,删除来自第一BGP模块的路由信息。由于在第一BGP模块发生故障时,在路由获取设备结束GR状态之前,将来自第一BGP模块的路由信息删除,这样,在发生虚拟机迁移或者删除时,将不会继续通过来自第一BGP模块的路由信息指导流量转发,从而可以提高流量转发的成功率。
[0132] 下面,以路由获取设备为反射器,第一BGP模块为BGP模块A,第二BGP模块为BGP模块B为例具体说明本申请实施例中的方案,其中,BGP模块A和BGP模块B为两个独立的BGP模块。另外,对于路由获取设备为TOR交换机的方案,与路由获取设备为反射器的方案类似,此处不再赘述。
[0133] 其中,用户需要预先建立BGP模块A和反射器,以及BGP模块B和反射器之间的BGP邻居关系,并设定反射器的GR能力。另外,由于BGP模块A和BGP模块B为互相备份的关系,用户需要在反射器上创建GR组,并将BGP模块A和BGP模块B加入该GR组。
[0134] 图4为虚拟机路由信息发布的流程示意图,如图4所示,BGP模块A和BGP模块B发布虚拟机路由信息的过程如下:
[0135] 步骤401:当创建虚拟机或虚拟机发生更新时,网络控制器的虚机网络信息分发模块会把虚拟机的网络信息同步给BGP模块A和BGP模块B。
[0136] 其中,虚拟机为与TOR连接的至少一个物理服务器中运行的虚拟机。例如,若虚拟机的网络信息为VM IP:x.x.x.x,VM MAC:xx::xx,VTEP信息:y.y.y.y,L2VNI:VNI1,L3VNI:VNI2,虚机网络信息分发模块会将上述虚拟机的网络信息分别同步给BGP模块A和BGP模块B。
[0137] 步骤402:BGP模块A和BGP模块B分别根据虚拟机的网络信息封装路由信息,并将封装后的路由信息发布给反射器。
[0138] 其中,BGP模块A根据虚拟机的网络信息封装后得到的路由信息为x.x.x.x nexthopy.y.y.y from A,BGP模块B根据虚拟机的网络信息封装后得到的路由信息为x.x.x.xnexthop y.y.y.y from B,BGP模块A和BGP模块B分别通过BGP-EVPN路由update报文向反射器发布上述的路由信息。
[0139] 步骤403:反射器本地进行路由选路,得到优选路由。
[0140] 例如,经过选路之后,可以将x.x.x.x nexthop y.y.y.y from A作为最优路由,将x.x.x.xnexthop y.y.y.y from B作为次优路由。
[0141] 步骤404:反射器向TOR交换机发布优选路由。
[0142] 其中,反射器可以将x.x.x.x nexthop y.y.y.y from A路由信息发送给TOR交换机。
[0143] 步骤405:TOR交换机根据优选路由封装Vxlan报文指导流量转发。
[0144] 在本实施例中,通过步骤401-步骤405,虚机网络信息分发模块可以通过BGP模块A和BGP模块B,将路由信息发布给反射器,反射器再将路由信息发送给TOR交换机。
[0145] 需要进行说明的是,在路由获取设备为TOR交换机,也即没有反射器时,上述方案中,步骤404将不会再执行,具体的,在步骤402中,BGP模块A和BGP模块B会将封装后的路由信息发布给TOR交换机,在步骤403中,由TOR交换机本地进行路由选路,以得到优先路由,从而根据优先路由封装Vxlan报文指导流量转发。具体的实现过程可以参见上述各步骤,在此不再赘述。
[0146] 下面,将基于上述图4的路由信息,对单个BGP模块发生故障,以及所有BGP模块均发生故障后,TOR交换机如何指导流量转发的情况进行介绍。
[0147] 图5为单个BGP模块发生故障且正常恢复后的流程示意图,本实施例中以发生了虚拟机迁移为例进行说明,如图5所示,具体过程如下:
[0148] 步骤501:反射器确定BGP模块A发生了故障,则为从BGP模块A接收到的路由信息添加stale标记,并启动GR计时器。
[0149] 其中,若反射器连续三次未接收到BGP模块A发送的KA报文,则可以确定BGP模块A发生了故障,则反射器将进入GR状态,并且为从BGP模块A接收到的路由信息添加stale标记,并启动GR计时器。
[0150] 例如:可以为x.x.x.x nexthop y.y.y.y from A添加stale标记。
[0151] 步骤502:若虚拟机发生迁移,虚机网络信息分发模块向BGP模块B发送虚拟机网络信息。
[0152] 例如:若虚拟机发生迁移,虚机网络信息分发模块会向BGP模块B发送虚拟机网络信息:VM IP:x.x.x.x,VM MAC:xx::xx,VTEP IP:z.z.z.z,L2VNI:VNI1,L3VNI:VNI2。BGP模块B根据虚拟机的网络信息封装后得到的路由信息为x.x.x.x nexthop z.z.z.zfrom B。
[0153] 其中,步骤501和步骤502之间没有先后顺序,可以先执行步骤501,再执行步骤502,也可以先执行步骤502,再执行步骤501,还可以是步骤501和步骤502同时执行。
[0154] 步骤503:BGP模块B向反射器发送封装后的路由信息。
[0155] 其中,BGP模块B通过BGP-EVPN路由update报文向反射器发送封装后的路由信息x.x.x.x nexthop z.z.z.z from B。
[0156] 步骤504:反射器删除同GR组内同前缀的stale路由,并重新进行选路,得到优选路由。
[0157] 其中,反射器在GR状态结束之前,将同GR组内同前缀的stale路由信息删除,也即将BGP模块A发送的路由信息x.x.x.x nexthop y.y.y.y from A删除。
[0158] 然后,反射器根据BGP模块B发送的路由信息,重新进行选路,以得到优选路由,例如选择x.x.x.x nexthop z.z.z.z from B作为优选路由。
[0159] 步骤505:反射器向TOR交换机发布优选路由。
[0160] 其中,反射器可以将x.x.x.x nexthop z.z.z.z from B路由信息发送给TOR交换机。
[0161] 步骤506:TOR交换机根据优选路由封装VxLan报文指导流量转发。
[0162] 步骤507:在GR计时器的计时结束之前,BGP模块A的故障恢复,则BGP模块A与反射器重新建立BGP邻居关系。
[0163] 步骤508:反射器删除stale标记,并删除GR计时器。
[0164] 步骤509:BGP模块A从虚机网络信息分发模块中获取全量的路由信息。
[0165] 其中,步骤507和步骤509之间没有先后顺序,可以先执行步骤507,再执行步骤509,也可以先执行步骤509,再执行步骤507,还可以是步骤507和步骤509同时执行。
[0166] 步骤510:BGP模块A向反射器发送获取的全量的路由信息。
[0167] 其中,BGP模块A通过BGP-EVPN路由update报文向反射器发送最新的全量路由信息,例如发送x.x.x.x nexthop z.z.z.z from A。
[0168] 步骤511:反射器重新进行选路,得到优选路由。
[0169] 其中,反射器根据BGP模块A发送的全量的路由信息,以及BGP模块B发送的路由信息,重新进行选路,从而得到优选路由。
[0170] 例如:反射器根据x.x.x.x nexthop z.z.z.z from A和x.x.x.x nexthop z.z.z.z from B,确定x.x.x.x nexthop z.z.z.z from A为最优路由,x.x.x.x nexthop z.z.z.z from B为次优路由。
[0171] 步骤512:反射器向TOR交换机发布优选路由。
[0172] 其中,反射器可以将x.x.x.x nexthop z.z.z.z from A路由信息发送给TOR交换机,TOR交换机根据接收的路由信息刷新本地路由表。
[0173] 步骤513:TOR交换机根据优选路由封装VxLan报文指导流量转发。
[0174] 在上述实施例中,由于在BGP模块A发生故障时,在反射器的GR状态结束之前,将从BGP模块A中接收到的路由信息删除,这样,在发生虚拟机迁移或者删除时,将不会继续通过BGP模块A发送的路由信息指导流量转发,而是根据其他BGP模块发送的路由信息进行流量转发,从而可以提高流量转发的成功率。
[0175] 需要进行说明的是,在路由获取设备为TOR交换机,也即没有反射器时,上述方案中,步骤505和步骤512将不会再执行,且其他步骤中,由反射器执行的动作将由TOR交换机执行,对于具体的实现过程,可以参见上述各步骤,在此不再赘述。
[0176] 图6为单个BGP模块发生故障且故障未恢复的流程示意图,本实施例中以发生了虚拟机删除为例进行说明,如图6所示,具体过程如下:
[0177] 步骤601:反射器确定BGP模块A发生了故障,则为从BGP模块A接收到的路由信息添加stale标记,并启动GR计时器。
[0178] 其中,若反射器连续三次未接收到BGP模块A发送的KA报文,则可以确定BGP模块A发生了故障,则反射器将进入GR状态,并且为从BGP模块A接收到的路由信息添加stale标记,并启动GR计时器。
[0179] 例如:可以为x.x.x.x nexthop y.y.y.y from A添加stale标记。
[0180] 步骤602:若虚拟机发生删除,虚机网络信息分发模块向BGP模块B发送虚拟机网络信息。
[0181] 例如:若虚拟机发生删除,虚机网络信息分发模块会向BGP模块B发送虚拟机网络信息:VM IP:x.x.x.x,VM MAC:xx::xx。
[0182] 其中,步骤601和步骤602之间没有先后顺序,可以先执行步骤601,再执行步骤602,也可以先执行步骤602,再执行步骤601,还可以是步骤601和步骤602同时执行。
[0183] 步骤603:BGP模块B向反射器发送撤销路由信息的消息。
[0184] 其中,若发生了虚拟机删除,则BGP模块B会向反射器发送撤销路由信息的消息。例如,撤销x.x.x.x nexthop z.z.z.z from B路由信息。
[0185] 步骤604:反射器删除同GR组内同前缀的stale路由信息。
[0186] 其中,反射器在GR状态结束之前,将同GR组内同前缀的stale路由信息删除,也即将BGP模块A发送的路由信息x.x.x.x nexthop y.y.y.y from A删除。
[0187] 步骤605:反射器向TOR交换机发送撤销路由信息的消息。
[0188] 例如,撤销x.x.x.x nexthop z.z.z.z from B路由信息,此时,TOR交换机将刷新本地路由表,而且可以获知,虚拟机x.x.x.x不可达。
[0189] 步骤606:GR计时器超时,且BGP模块A故障未恢复,则反射器删除本地所有BGP模块A发送的添加了stale标记的路由信息,并删除GR计时器。
[0190] 在上述实施例中,由于在BGP模块A发生故障时,在反射器的GR状态结束之前,将从BGP模块A中接收到的路由信息删除,这样,在发生虚拟机迁移或者删除时,将不会继续通过BGP模块A发送的路由信息指导流量转发,而是根据其他BGP模块发送的路由信息进行流量转发,从而可以提高流量转发的成功率。
[0191] 需要进行说明的是,在路由获取设备为TOR交换机,也即没有反射器时,上述方案中,步骤605将不会再执行,且其他步骤中,由反射器执行的动作将由TOR交换机执行,对于具体的实现过程,可以参见上述各步骤,在此不再赘述。
[0192] 图7为所有BGP模块发生故障的流程示意图,如图7所示,具体过程如下:
[0193] 步骤701:反射器确定BGP模块A发生了故障,则为从BGP模块A接收到的路由信息添加stale标记,并启动GR计时器1。
[0194] 其中,若反射器连续三次未接收到BGP模块A发送的KA报文,则可以确定BGP模块A发生了故障,则反射器将进入GR状态,并且为从BGP模块A接收到的路由信息添加stale标记,并启动GR计时器1。
[0195] 例如:可以为x.x.x.x nexthop y.y.y.y from A添加stale标记。
[0196] 步骤702:反射器确定BGP模块B发生了故障,则为从BGP模块B接收到的路由信息添加stale标记,并启动GR计时器2。
[0197] 其中,若反射器连续三次未接收到BGP模块B发送的KA报文,则可以确定BGP模块B发生了故障,则反射器将进入GR状态,并且为从BGP模块B接收到的路由信息添加stale标记,并启动GR计时器2。
[0198] 例如:可以为x.x.x.x nexthop y.y.y.y from B添加stale标记。
[0199] 步骤703:GR计时器1超时,且BGP模块A故障未恢复,则反射器删除本地所有BGP模块A发送的添加了stale标记的路由信息,并删除GR计时器1。
[0200] 步骤704:反射器根据BGP模块B发送的路由信息重新进行选路,得到优选路由。
[0201] 例如:可以确定添加了stale标记的x.x.x.x nexthop y.y.y.y from B为优选路由。
[0202] 步骤705:反射器向TOR交换机发布优选路由。
[0203] 其中,反射器可以将x.x.x.x nexthop y.y.y.y from B路由信息发送给TOR交换机,TOR交换机根据接收的路由信息刷新本地路由表。
[0204] 步骤706:GR计时器2超时,且BGP模块B故障未恢复,则反射器删除本地所有BGP模块B发送的添加了stale标记的路由信息,并删除GR计时器2。
[0205] 步骤707:反射器向TOR交换机发送撤销路由信息的消息。
[0206] 例如,撤销x.x.x.x nexthop y.y.y.y路由信息,此时,TOR交换机将刷新本地路由表,而且可以获知,虚拟机x.x.x.x不可达。
[0207] 在上述实施例中,由于在BGP模块A和BGP模块B均发生故障时,反射器依然会在最后一个BGP模块进入故障后保留GR计时器的时间,从而可以提高BGP模块的可靠性。
[0208] 需要进行说明的是,在路由获取设备为TOR交换机,也即没有反射器时,上述方案中,步骤705和步骤707将不会再执行,且其他步骤中,由反射器执行的动作将由TOR交换机执行,对于具体的实现过程,可以参见上述各步骤,在此不再赘述。
[0209] 图8a为本申请实施例提供的一种路由信息的处理装置的结构示意图,其中,路由信息的处理装置80可以是前述实施例中的反射器,也可以是前述实施例中的TOR交换机。参见图8a,该装置连接至第一边界网关协议BGP模块,所述第一BGP模块用于提供路由信息,所述装置包括:接收单元11和处理单元12,其中:
[0210] 接收单元11,用于接收来自所述第一BGP模块的路由信息;
[0211] 处理单元12,用于在确定所述第一BGP模块发生故障时,进入GR状态;
[0212] 所述处理单元12,还用于在结束所述GR状态之前,删除来自所述第一BGP模块的路由信息。
[0213] 本申请实施例提供的路由信息的处理装置,接收单元11通过接收来自第一BGP模块的路由信息,处理单元12在确定第一BGP模块发生故障时,进入GR状态,处理单元12在结束所述GR状态之前,删除来自第一BGP模块的路由信息。由于在第一BGP模块发生故障时,在路由获取设备的GR状态结束之前,将从第一BGP模块中接收到的路由信息删除,这样,在发生虚拟机迁移或者删除时,将不会继续通过第一BGP模块发送的路由信息指导流量转发,从而可以提高流量转发的成功率。
[0214] 示例性的,所述路由信息的处理装置80连接至多个BGP模块,多个BGP模块包括所述第一BGP模块和第二BGP模块,第一BGP模块为多个BGP模块中优先级最高的模块;
[0215] 所述接收单元11,还用于:接收来自所述第二BGP模块的路由信息;
[0216] 所述处理单元12,还用于:确定从所述第二BGP模块接收到的路由信息发生变化。
[0217] 示例性的,所述处理单元12,具体用于:
[0218] 判断本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息是否相同;
[0219] 若本次从所述第二BGP模块接收到的路由信息与上一次从所述第二BGP模块接收到的路由信息不相同,则确定从所述第二BGP模块接收到的路由信息发生变化。
[0220] 示例性的,图8b为本申请实施例提供的另一种路由信息的处理装置的结构示意图,如图8b所示,所述路由信息的处理装置80为反射器,所述反射器连接至至少一个TOR交换机;所述装置80还包括:发送单元13;其中,
[0221] 所述处理单元12,还用于:
[0222] 根据来自所述第二BGP模块的路由信息,更新路由转发表项;
[0223] 所述发送单元13,用于将更新后的路由转发表项发送给所述至少一个TOR交换机,所述更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
[0224] 示例性的,所述路由信息的处理装置80为至少一个TOR交换机;
[0225] 所述处理单元12,还用于:根据来自所述第二BGP模块的路由信息,更新路由转发表项,更新后的路由转发表项用于指示所述至少一个TOR交换机进行流量转发。
[0226] 示例性的,所述处理单元12,具体用于:
[0227] 根据来自所述第二BGP模块的路由信息确定优选路由;
[0228] 根据所述优选路由更新所述路由转发表项。
[0229] 本申请实施例提供的路由信息的处理装置,可以执行上述对应的方法实施例,例如可以是图3-图7所示的实施例,其实现原理和技术效果类似,在此不再赘述。
[0230] 需要说明的是,应理解以上装置的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元通过软件通过处理元件调用的形式实现,部分单元通过硬件的形式实现。例如,接收单元可以为单独设立的处理元件,也可以集成在该装置的某一个芯片中实现,此外,也可以以程序的形式存储于装置的存储器中,由该装置的某一个处理元件调用并执行该接收单元的功能。其它单元的实现与之类似。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。此外,以上接收单元是一种控制接收的单元,可以通过该装置的接收装置,例如天线和射频装置接收信息。
[0231] 以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程阵列(field programmable gate array,FPGA)等。再如,当以上某个单元通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
[0232] 参见图9,图9是本申请实施例提供的一种路由获取设备的结构示意图。如图9所示,该路由获取设备900包括:处理器910、通信接口920以及存储器930,所述处理器910、通信接口920以及存储器930通过内部总线940相互连接。应理解,该路由获取设备可以是反射器或TOR交换机。
[0233] 所述处理器910可以由一个或者多个通用处理器构成,例如中央处理器(central processing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
[0234] 总线940可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线940可以分为地址总线数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但不表示仅有一根总线或一种类型的总线。
[0235] 存储器930可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器930也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器930还可以包括上述种类的组合。存储器930可用于存储程序代码和数据,以便于处理器910调用存储器930中存储的程序代码和数据以实现上述接收单元11、处理单元12和发送模块13的功能。程序代码可以是用来实现图8所示的路由信息的处理装置的功能模块,或者用于实现图3-图7所示的方法实施例中以路由信息的处理装置为执行主体的方法步骤。
[0236] 此外,上述实施例中的路由信息的处理装置80也可以由多个路由获取设备900实现。多个路由获取设备900包括多个处理器910和多个存储器930。多个处理器910协同实现如图8中所示的接收单元11、处理单元12和发送模块13。
[0237] 或者,以上各个单元的部分或全部也可以通过集成电路的形式内嵌于该路由获取设备的某一个芯片上来实现。且它们可以单独实现,也可以集成在一起。即以上这些单元可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。
[0238] 本申请还提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现前述任一实施例提供的路由信息的处理方法。
[0239] 本申请还提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。路由获取设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得路由获取设备实施前述各种实施方式提供的路由信息的处理方法。
[0240] 本申请实施例还提供了一种路由获取设备,包括至少一个存储元件和至少一个处理元件、所述至少一个存储元件用于存储程序,该程序被执行时,使得所述路由获取设备执行上述任一实施例中的路由获取设备的操作。
[0241] 实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(magnetic tape)、软盘(floppy disk)、光盘(optical disc)及其任意组合。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈