基于云间高速的链路切换方法、装置及计算机设备与流程

文档序号:32607342发布日期:2022-12-20 18:08阅读:42来源:国知局
基于云间高速的链路切换方法、装置及计算机设备与流程

1.本发明涉及互联网技术领域,具体涉及一种基于云间高速的链路切换方法、装置及计算机设备。


背景技术:

2.云间高速是多个资源池之间全互联的方式,比如a资源池要同时和b、c、d等其他所有的资源池,均建立底层的链路和业务层的虚拟扩展局域网(virtual extensible local area network,vxlan)隧道。
3.为了保障可用性,资源池之间互联的底层的链路一般都是大于等于两条,而业务层的vxlan隧道需要在底层的链路的基础上,进行一比一的创建。其中,链路可以包括:一条专线链路和多条虚拟专用网络(virtual private network,vpn)链路,对应的,vxlan隧道可以包括:一条专线隧道和多条vpn隧道。一般来说,专线链路提供给高级用户,vpn隧道提供给普通用户。
4.当资源池之间互联的一条链路故障的时候,为了保障用户的流量不中断,需要把该故障链路上的用户的流量切换到其他正常的链路上,相应的业务层的vxlan隧道也随之发生切换。相关技术中,切换的步骤需要定位故障链路的所有用户,然后将每个用户的每条流表的出口手动修改为正常链路,操作比较复杂。


技术实现要素:

5.本技术提供了一种基于云间高速的链路切换方法、装置及计算机设备,该技术方案如下。
6.一方面,提供了一种基于云间高速的链路切换方法,所述方法包括:
7.为本端的第一资源池与对端的第二资源池之间的互联,创建第一组表和第二组表,所述第一组表中包括为第一类型用户绑定的第一出口集合,所述第二组表中包括为第二类型用户的绑定第二出口集合,所述第一出口集合中包括两个资源池之间的专线链路和至少一条vpn链路,且所述第一类型用户是初始使用所述专线链路的用户,所述第二出口集合中包括两个资源池之间的所述至少一条vpn链路,且所述第二类型用户是初始使用所述至少一条vpn链路中的vpn链路的用户;
8.在监控到两个资源池之间的目标隧道的连通状态发生变化的情况下,确定需要执行链路切换的待修改组表;
9.若所述待修改组表为所述第一组表,通过对所述第一组表的修改,在所述第一出口集合中切换所述第一类型用户当前使用的链路;
10.若所述待修改组表为所述第二组表,通过对所述第二组表的修改,在所述第二出口集合中切换所述第二类型用户当前使用的链路。
11.又一方面,提供了一种基于云间高速的链路切换装置,所述装置包括:
12.组表创建模块,用于为本端的第一资源池与对端的第二资源池之间的互联,创建
第一组表和第二组表,所述第一组表中包括为第一类型用户绑定的第一出口集合,所述第二组表中包括为第二类型用户的绑定第二出口集合,所述第一出口集合中包括两个资源池之间的专线链路和至少一条vpn链路,且所述第一类型用户是初始使用所述专线链路的用户,所述第二出口集合中包括两个资源池之间的所述至少一条vpn链路,且所述第二类型用户是初始使用所述至少一条vpn链路中的vpn链路的用户;
13.组表定位模块,用于在监控到两个资源池之间的目标隧道的连通状态发生变化的情况下,确定需要执行链路切换的待修改组表;
14.组表修改模块,用于若所述待修改组表为所述第一组表,通过对所述第一组表的修改,在所述第一出口集合中切换所述第一类型用户当前使用的链路;
15.所述组表修改模块,还用于若所述待修改组表为所述第二组表,通过对所述第二组表的修改,在所述第二出口集合中切换所述第二类型用户当前使用的链路。
16.再一方面,提供了一种计算机设备,所述计算机设备中包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的基于云间高速的链路切换方法。
17.又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的基于云间高速的链路切换方法。
18.再一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的基于云间高速的链路切换方法。
19.本技术提供的技术方案可以包括以下有益效果:
20.为资源池创建两个组表,组表中为用户绑定了出口集合,出口集合中包括了用户可使用的链路,其中的第一组表用于保障第一类型用户的链路使用,第二组表用于保障第二类型用户的链路使用。在监控到隧道的连通状态发生变化的情况下,通过对组表执行修改,即可在对应的出口集合中完成用户当前使用链路的切换,从而将故障链路上的用户的流表的出口一次性调整至切换后的链路上,简化了云间高速场景下的链路切换的操作难度。
附图说明
21.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1是根据一示例性实施例示出的一种云间互联场景的示意图。
23.图2是根据一示例性实施例示出的基于云间高速的链路切换方法的方法流程图。
24.图3是根据一示例性实施例示出的基于云间高速的链路切换方法的方法流程图。
25.图4是根据一示例性实施例示出的基于云间高速的链路切换方法的方法流程图。
26.图5是根据一示例性实施例示出的一种基于云间高速的链路切换装置的结构方框
图。
27.图6是根据本技术一示例性实施例提供的一种计算机设备示意图。
具体实施方式
28.下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.应理解,在本技术的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,a指示b,可以表示a直接指示b,例如b可以通过a获取;也可以表示a间接指示b,例如a指示c,b可以通过c获取;还可以表示a和b之间具有关联关系。
30.在本技术实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
31.本技术实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本技术对于其具体的实现方式不做限定。
32.在对本技术所示的各个实施例进行说明之前,首先对本技术涉及到的概念进行介绍。
33.云间互联:是多个资源池之间全互联的方式,属于云计算技术的一种。
34.在云间互联场景中,各个资源池与资源池之间存在互通的高速链路。其中,底层的链路一般是通过架设ipsec vpn或者运营商专线,即链路包括:vpn链路和专线链路,业务层的vxlan隧道需要和底层的链路一比一的创建,相应的,vxlan隧道包括:vpn隧道和专线隧道,以使得上层的用户流量通过vxlan隧道的封装,承载在底层的链路上,从而流经到各个资源池中。
35.示例性的,结合参考图1,其示出了云间互联场景。一个租户在不同的资源池中都有部署业务,租户为了将这几个资源池部署的服务互通,需要把流量引入到当前资源池的云网关,再通过专线链路或者是vpn链路到达对端云网关,进而访问到对端部署的服务。在图1中,假设云网关出口有三条链路:一条专线链路,可以在该专线链路基础上建立专线隧道;两条vpn链路,可以在该vpn链路基础上建立vpn隧道。其中,专线链路用来跑高级用户的流量,vpn链路用来跑普通用户的流量。
36.在上述云间互联场景中,当资源池之间互联的一条链路故障的时候,为了保障用户的流量不中断,需要把该故障链路上的用户的流量切换到其他正常的链路上,相应的业务层的vxlan隧道也随之发生切换。相关技术中,切换的步骤需要定位故障链路的所有用户,然后将每个用户的每条流表的出口手动修改为正常链路,操作比较复杂。
37.基于如上问题,本技术提供了一种基于云间高速的链路切换方法,为资源池创建两个组表,组表中为用户绑定了出口集合,出口集合中包括了用户可使用的链路,其中的第一组表用于保障第一类型用户的链路使用,第二组表用于保障第二类型用户的链路使用。在监控到隧道的连通状态发生变化的情况下,通过对组表执行修改,即可在对应的出口集
合中完成用户当前使用链路的切换,从而将故障链路上的用户的流表的出口一次性调整至切换后的链路上,简化了云间高速场景下的链路切换的操作难度。
38.下面,结合如下几个实施例对本技术提供的技术方案进行说明。
39.图2是根据一示例性实施例示出的基于云间高速的链路切换方法的方法流程图。该方法由计算机设备执行。如图2所示,该基于云间高速的链路切换方法可以包括如下步骤:
40.步骤210:为本端的第一资源池与对端的第二资源池之间的互联,创建第一组表和第二组表,第一组表中包括为第一类型用户绑定的第一出口集合,第二组表中包括为第二类型用户的绑定第二出口集合,第一出口集合中包括两个资源池之间的专线链路和至少一条vpn链路,且第一类型用户是初始使用专线链路的用户,第二出口集合中包括两个资源池之间的至少一条vpn链路,且第二类型用户是初始使用至少一条vpn链路中的vpn链路的用户。
41.组表是一种openflow资源,其中,第一组表和第二组表可以是select的类型的组表。在本技术实施例中,使用组表的形式,对用户的使用链路进行设置,对组表进行修改,即可实现对用户的使用链路的切换。
42.在第一组表中,为第一类型用户绑定有第一出口集合,第一出口集合中包括两个资源池之间的专线链路和至少一条vpn链路,且第一类型用户是初始使用专线链路的用户。其中,第一出口集合可以理解为是第一类型用户可以使用的链路的集合。此外,第一类型用户可以理解为是一种高级用户,其正常情况下应该使用专线链路。
43.在第二组表中,为第二类型用户绑定有第二出口集合,第二出口集合中包括两个资源池之间的至少一条vpn链路,且第二类型用户是初始使用vpn链路的用户。其中,第二出口集合可以理解为是第二类型用户可以使用的链路的集合。此外,第二类型用户可以理解为是一种普通用户,其正常情况下应该使用vpn链路。
44.可选的,组表默认的使用方式是负载均衡设置,可设置多个出口,通过哈希算法选择一个出口进行转发。组表的使用方式也可以是优先级设置,即对每个出口设置优先级,组表对应的用户的流量会选择优先级较高的出口转发。
45.步骤220:在监控到两个资源池之间的目标隧道的连通状态发生变化的情况下,确定需要执行链路切换的待修改组表。
46.在本技术实施例中,对两个资源池之间的vxlan隧道的连通性进行监控,在监控到其中的目标隧道的连通状态发生变化的情况下,则确定需要执行链路切换的待修改组表。
47.其中,目标隧道的连通状态发生变化,可以指的是目标隧道的连通状态出现故障,也可以指的是目标隧道的连通状态恢复正常。
48.步骤230:若待修改组表为第一组表,通过对第一组表的修改,在第一出口集合中切换第一类型用户当前使用的链路。
49.示例性的,目标隧道的连通状态出现故障,且对应的待修改组表为第一组表,则通过对第一组表的修改,将第一类型用户由使用目标隧道对应的目标链路切换到第一出口集合中的其他链路。
50.示例性,目标隧道的连通状态恢复正常,且对应的待修改组表为第一组表,则通过对第一组表的修改,将第一类型用户由使用第一出口集合中的其他链路切换到目标隧道对
应的目标链路。
51.步骤240:若待修改组表为第二组表,通过对第二组表的修改,在第二出口集合中切换第二类型用户当前使用的链路。
52.示例性的,目标隧道的连通状态出现故障,且对应的待修改组表为第二组表,则通过对第二组表的修改,将第二类型用户由使用目标隧道对应的目标链路切换到第二出口集合中的其他链路。
53.示例性,目标隧道的连通状态恢复正常,且对应的待修改组表为第二组表,则通过对第二组表的修改,将第二类型用户由使用第二出口集合中的其他链路切换到目标隧道对应的目标链路。
54.综上所述,本实施例提供的基于云间高速的链路切换方法,为资源池创建两个组表,组表中为用户绑定了出口集合,出口集合中包括了用户可使用的链路,其中的第一组表用于保障第一类型用户的链路使用,第二组表用于保障第二类型用户的链路使用。在监控到隧道的连通状态发生变化的情况下,通过对组表执行修改,即可在对应的出口集合中完成用户当前使用链路的切换,从而将故障链路上的用户的流表的出口一次性调整至切换后的链路上,简化了云间高速场景下的链路切换的操作难度。
55.下面,结合图3,对组表的具体设置规则、以及链路切换的实现方式进行说明。
56.图3是根据一示例性实施例示出的基于云间高速的链路切换方法的方法流程图。该方法由计算机设备执行。如图3所示,该基于云间高速的链路切换方法可以包括如下步骤:
57.步骤310:为本端的第一资源池与对端的第二资源池之间的互联,创建第一组表和第二组表,第一组表中包括为第一类型用户绑定的第一出口集合,第二组表中包括为第二类型用户的绑定第二出口集合,第一出口集合中包括两个资源池之间的专线链路和至少一条vpn链路,且第一类型用户是初始使用专线链路的用户,第二出口集合中包括两个资源池之间的至少一条vpn链路,且第二类型用户是初始使用至少一条vpn链路中的vpn链路的用户。
58.第一组表在初始化创建时,采用优先级设置,优先级设置下的第一组表使用第一出口集合中的最高优先级链路表征第一类型用户当前使用的链路,第一组表在创建时的最高优先级链路为专线链路。
59.也即,第一组表中的第一出口集合中的每个出口设置有优先级,第一组表对应的用户的流量会选择优先级较高的出口转发。其中,第一组表的组标识与如下信息关联:本端的第一资源池的资源池标识、对端的第二资源池的资源池标识、专线隧道的隧道类型标识。
60.第二组表在初始化创建时,采用负载均衡设置,负载均衡设置下的第二组表按照哈希算法在第二出口集合中分配第二类型用户当前使用的链路。
61.也即,第二组表对应的用户的流量通过哈希算法选择一个出口进行转发。其中,第二组表的组标识与如下信息关联:本端的第一资源池的资源池标识、对端的第二资源池的资源池标识、vpn隧道的隧道类型标识。
62.示例性的,假设本端的资源池标识为10,对端的资源池标识为20,网桥名为br-tun,专线链路对应的专线隧道的端口号为3,vpn链路1对应的vpn隧道的端口号为4,vpn链路2对应的vpn隧道的端口号为5。
63.两个组表的设置的规则如下:
64.ovs-ofctl add-group br-tun
65.group_id=10201,type=select,bucket=weight:1,output:3,bucket=weight:0,output:4,bucket=weight:0,output:5
66.ovs-ofctl add-group br-tun
67.group_id=10202,type=select,bucket=output:4,bucket=output:5
68.第一个组表10201给第一类型用户,即高级用户使用,10代表本端资源池标识,20代表对端资源池标识,1代表专线隧道。weight表示优先级,流量只会转发到高优先级的端口中,所以正常情况下流量只会选择端口号为3,即专线链路对应的专线隧道转发,保证用户的带宽质量。
69.第二个组表10202给第二类型用户,即普通用户使用,10代表本端资源池标识,20代表对端资源池标识,2代表vpn隧道。正常情况下,普通用户的流量按照组表的默认哈希算法负载均衡到端口4和端口5,不设置优先级即代表负载均衡。
70.步骤320:在监控到两个资源池之间的目标隧道的连通状态发生变化的情况下,若目标隧道是专线链路基础上的专线隧道,确定待修改组表为第一组表,若目标隧道是vpn链路基础上的vpn隧道,确定待修改组表为第二组表。
71.如上文所示,组表的组标识与不同资源池的标识,以及隧道的隧道类型标识相关联,目的是为了快速定位到连通状态发生变化的目标隧道对应的组表。
72.结合如上示例,当专线隧道出现故障时,监控线程会触发故障切换,通过对应的本端和对端资源池id以及故障隧道的隧道类型,快速找到对应的组标识:10201,从而定位到第一组表。同理,当vpn隧道出现故障时,监控线程会触发故障切换,通过对应的本端和对端资源池id以及故障隧道的隧道类型,快速找到对应的组标识:10202,从而定位到第二组表。
73.步骤330:在专线隧道的连通状态出现故障的情况下,将第一组表中的最高优先级链路由与专线隧道对应的专线链路修改为第一出口集合中的第一vpn链路。
74.其中,由于第一组表采用优先级设置,则在专线隧道的连通状态出现故障的情况下,对第一出口集合中的链路的优先级进行修改,从而最高优先级链路由专线链路修改为第一vpn链路,以实现链路切换。
75.可选的,在专线隧道的连通状态出现故障的情况下,获取第一出口集合中的各个vpn链路基础上的vpn隧道的隧道时延;在第一vpn链路对应的隧道时延最低的情况下,将第一组表中的最高优先级链路由专线链路修改为第一vpn链路。也即,将隧道时延最低的vpn链路作为切换后的链路。
76.可选的,第一组表对应有切换标记位,切换标记位用于指示第一组表中是否已进行故障切换。比如,在切换标记位显示为true的情况下,表明第一组表已进行故障切换,在切换标记位显示为false的情况下,表明第一组表未进行故障切换。在专线隧道的连通状态出现故障的情况下,首先读取当前的切换标记位,在切换标记位显示为false时,才执行后续的链路切换的步骤。
77.结合如上示例,在端口3出现故障时,下发的修改组表优先级的命令如下:
78.ovs-ofctl mod-group br-tun
79.group_id=10201,type=select,bucket=weight:0,output:3,bucket=
weight:1,output:4,bucket=weight:0,output:5
80.也即,将高优先级的端口由端口3调整为端口4。这样,所有在此故障链路上的用户瞬间就切换到了最优的正常链路上,最后修改切换标记位为true,标识该组表已经发生了故障切换。
81.步骤340:在专线隧道的连通状态恢复正常的情况下,将第一组表中的最高优先级链路由第一vpn链路恢复为专线链路。
82.在专线隧道的连通状态恢复正常的情况下,表明专线链路恢复正常,因此,需要将用户的使用链路重新切换回至专线链路。此外,由于第一组表采用优先级设置,通过对第一出口集合中的链路的优先级进行修改,从而最高优先级链路由第一vpn链路修改为专线链路,以实现链路切换。
83.可选的,第一组表对应有切换标记位,切换标记位用于指示第一组表中是否已进行故障切换。比如,在切换标记位显示为true的情况下,表明第一组表已进行故障切换,在切换标记位显示为false的情况下,表明第一组表未进行故障切换。在专线隧道的连通状态恢复正常的情况下,首先读取当前的切换标记位,在切换标记位显示为true时,才执行后续的链路切换的步骤。
84.结合如上示例,在端口3恢复正常时,下发的修改组表优先级的命令如下:
85.ovs-ofctl mod-group br-tun
86.group_id=10201,type=select,bucket=weight:1,output:3,bucket=weight:0,output:4,bucket=weight:0,output:5
87.也即,将高优先级的端口由端口4调整为端口3。这样,所有在端口4上的用户瞬间就切换回专线链路,最后修改切换标记位为false,标识该组表没有故障切换。
88.步骤350:在第二vpn隧道的连通状态出现故障的情况下,将第二组表由负载均衡设置修改为优先级设置,且,修改后的第二组表中的最高优先级链路为第四vpn链路。
89.其中,由于第二组表初始采用负载均衡设置,则在其中的第二vpn隧道的连通状态出现故障的情况下,将第二组表调整为优先级设置,对第二出口集合中的链路的优先级进行修改,并且后续使用最高优先级链路。
90.可选的,在第二vpn隧道的连通状态出现故障的情况下,获取第二出口集合中的各个vpn链路基础上的vpn隧道的隧道时延;在第四vpn链路对应的隧道时延最低的情况下,将第二组表由负载均衡设置修改为优先级设置,且,修改后的第二组表中的最高优先级链路为第四vpn链路。也即,将隧道时延最低的vpn链路作为切换后的链路。
91.可选的,第二组表对应有切换标记位,切换标记位用于指示第二组表中是否已进行故障切换。比如,在切换标记位显示为true的情况下,表明第一组表已进行故障切换,在切换标记位显示为false的情况下,表明第二组表未进行故障切换。在vpn隧道的连通状态出现故障的情况下,首先读取当前的切换标记位,在切换标记位显示为false时,才执行后续的链路切换的步骤。
92.结合如上示例,在端口4出现故障时,下发的修改组表优先级的命令如下:
93.ovs-ofctl mod-group br-tun
94.group_id=10202,type=select,bucket=weight:0,output:4,bucket=weight:1,output:5
95.也即,将端口5设置为高优先级的端口。这样,所有在端口4上的用户瞬间就切换至正常的端口5,最后修改切换标记位为true,标识该组表已经发生了故障切换。
96.步骤360:在第二vpn隧道的连通状态恢复正常的情况下,将第二组表由优先级设置恢复为负载均衡设置。
97.在第二vpn隧道的连通状态恢复正常的情况下,表明第二vpn链路恢复正常,因此,需要将第二组表重新恢复至负载均衡设置。
98.可选的,第二组表对应有切换标记位,切换标记位用于指示第二组表中是否已进行故障切换。比如,在切换标记位显示为true的情况下,表明第二组表已进行故障切换,在切换标记位显示为false的情况下,表明第二组表未进行故障切换。在专线隧道的连通状态恢复正常的情况下,首先读取当前的切换标记位,在切换标记位显示为true时,才执行后续的链路切换的步骤。
99.结合如上示例,在端口4恢复正常时,下发的组表修改的命令如下:
100.ovs-ofctl mod-group br-tun
101.group_id=10202,type=select,bucket=output:4,bucket=output:5
102.也即,将组表恢复为负载均衡设置。最后修改切换标记位为false,标识该组表没有故障切换。
103.综上所述,本实施例提供的基于云间高速的链路切换方法,利用组表可以设置出口优先级的特性,通过对组表中的链路的优先级进行修改,从而实现链路的快速切换。
104.此外,通过获取各个隧道的隧道时延,从而选择隧道时延最低的链路作为切换后的链路,保障了用户的带宽质量。
105.下面,对隧道的监控方式进行说明:
106.向对端的第二资源池发送针对所述目标隧道的地址连通命令;通过地址连通命令的响应情况,获取目标隧道的连通状态以及隧道时延。
107.也即,编写资源池代理程序,在资源池初始化的时候,对每个存在的对端资源池都创建一个循环监控线程,线程中通过本端资源池的互联地址去连通(ping)对端资源池的互联地址,通过python3的ping3库,可快速获取对端的响应延时和是否连通,并保存各个链路的状态,用来后续触发链路切换。
108.示例性的,依照图1所假设的三条链路,继续假设本端的专线隧道的vtep ip(vxlan封装用的接口ip)为:10.10.10.1/24,vpn1隧道的出接口vtep ip为:20.10.10.1/24,vpn2隧道的出接口vtep ip为:30.10.10.1/24,同理假设对端资源池的ip地址为:40.10.10.1/24,50.10.10.1/24,60.10.10.1/24。
109.监控就是指监控这三条隧道,在本端监控专线隧道的命令是ping(40.10.10.1,src_addr=10.10.10.1,unit='ms',timeout=3),若返回了具体时延,即证明专线隧道是通的,若返回false则证明专线隧道不通。
110.同理,监控vpn1隧道的命令是ping(50.10.10.1,src_addr=20.10.10.1,unit='ms',timeout=3),监控vpn2隧道的命令是ping(60.10.10.1,src_addr=30.10.10.1,unit='ms',timeout=3)。
111.应理解,如果有多个资源池同时监控,即启用多线程监控即可达到效果。
112.综上所述,本实施例提供的基于云间高速的链路切换方法,通过连通对端的地址
的方式,实现了对隧道的连通性状态以及隧道时延的监控。
113.下面,结合参考图4,对本技术所提供的技术方案的整体流程进行说明。
114.步骤401:初始化组表。
115.为每个资源池创建组表,组表包括:组表1,用于保障高优先级用户;组表2,用于保障普通用户。
116.步骤402:初始化监控线程。
117.采用线程循环连通(ping)对端vtep地址,来获取整条隧道的连通性状态和隧道时延。
118.步骤403:监控专线隧道状态。
119.步骤404:在专线隧道正常的情况下,判断切换标记位。
120.步骤405:若切换标记位为true,则触发组表1恢复策略。
121.切换标记位为true,表明该组表已进行故障切换,因此,需要进行对该组表进行恢复。
122.步骤406:修改组表1最高优先级为专线出口。
123.将组表1中的最高优先级链路修改为专线链路。
124.步骤407:在专线隧道故障的情况下,判断切换标记位。
125.步骤408:若切换标记位为false,获取vpn最优链路出口。
126.切换标记位为false,表明该组表没有故障切换,因此,需要进行故障切换。此外,vpn最优链路出口指的是隧道时延最短的vpn链路。
127.步骤409:触发组表1切换策略。
128.步骤410:修改组表1最高优先级为vpn最优链路出口。
129.将组表1中的最高优先级链路修改为隧道时延最短的vpn链路。
130.步骤411:监控vpn隧道状态。
131.步骤412:在vpn隧道正常的情况下,判断切换标记位。
132.步骤413:若切换标记位为true,则触发组表2恢复策略。
133.切换标记位为true,表明该组表已进行故障切换,因此,需要进行对该组表进行恢复。
134.步骤414:修改组表2为负载均衡。
135.步骤415:在vpn隧道故障的情况下,判断切换标记位。
136.步骤416:若切换标记位为false,获取vpn最优链路出口。
137.切换标记位为false,表明该组表没有故障切换,因此,需要进行故障切换。此外,vpn最优链路出口指的是隧道时延最短的vpn链路。
138.步骤417:触发组表2切换策略。
139.步骤418:修改组表2最高优先级为vpn最优链路出口。
140.将组表2中的最高优先级链路修改为隧道时延最短的vpn链路。
141.如上述步骤所示,本方案采用监控线程,循环连通对端vtep地址,来获取整条隧道的连通性状态和时延;且采用openflow的select类型的组表来解决流表切换问题,将出口绑定在组表中,将组表的组标识和资源池信息、故障隧道的类型信息关联起来,故障切换的时候只用定位到组表,修改组表对应端口优先级即可完成整条隧道的流表迁移。此外,通过
监控线程自动触发流表的迁移、自动恢复,无需人工介入。
142.需要说明的是,上述方法实施例可以单独实施例,也可以组合实施,本技术对此不加以限制。
143.图5是根据一示例性实施例示出的一种基于云间高速的链路切换装置的结构方框图。所述装置包括:
144.组表创建模块501,用于为本端的第一资源池与对端的第二资源池之间的互联,创建第一组表和第二组表,所述第一组表中包括为第一类型用户绑定的第一出口集合,所述第二组表中包括为第二类型用户的绑定第二出口集合,所述第一出口集合中包括两个资源池之间的专线链路和至少一条vpn链路,且所述第一类型用户是初始使用所述专线链路的用户,所述第二出口集合中包括两个资源池之间的所述至少一条vpn链路,且所述第二类型用户是初始使用所述至少一条vpn链路中的vpn链路的用户;
145.组表定位模块502,用于在监控到两个资源池之间的目标隧道的连通状态发生变化的情况下,确定需要执行链路切换的待修改组表;
146.组表修改模块503,用于若所述待修改组表为所述第一组表,通过对所述第一组表的修改,在所述第一出口集合中切换所述第一类型用户当前使用的链路;
147.所述组表修改模块503,还用于若所述待修改组表为所述第二组表,通过对所述第二组表的修改,在所述第二出口集合中切换所述第二类型用户当前使用的链路。
148.在一种可能的实现方式中,所述组表定位模块502,还用于在监控到两个资源池之间的所述目标隧道的连通状态发生变化的情况下,若所述目标隧道是所述专线链路基础上的专线隧道,确定所述待修改组表为所述第一组表,若所述目标隧道是所述vpn链路基础上的vpn隧道,确定所述待修改组表为所述第二组表。
149.在一种可能的实行方式中,所述第一组表的组标识与如下信息关联:所述本端的第一资源池的资源池标识、所述对端的第二资源池的资源池标识、所述专线隧道的隧道类型标识;
150.所述第二组表的组标识与如下信息关联:所述本端的第一资源池的资源池标识、所述对端的第二资源池的资源池标识、所述vpn隧道的隧道类型标识。
151.在一种可能的实现方式中,所述第一组表采用优先级设置,所述优先级设置下的所述第一组表使用所述第一出口集合中的最高优先级链路表征所述第一类型用户当前使用的链路,所述第一组表在创建时的所述最高优先级链路为所述专线链路;
152.所述组表修改模块503,还用于在所述专线隧道的连通状态出现故障的情况下,将所述第一组表中的所述最高优先级链路由与所述专线隧道对应的所述专线链路修改为所述第一出口集合中的第一vpn链路;在所述专线隧道的连通状态恢复正常的情况下,将所述第一组表中的所述最高优先级链路由所述第一vpn链路恢复为所述专线链路。
153.在一种可能的实现方式中,所述组表修改模块503,还用于在所述专线隧道的连通状态出现故障的情况下,获取所述第一出口集合中的各个vpn链路基础上的vpn隧道的隧道时延;在所述第一vpn链路对应的隧道时延最低的情况下,将所述第一组表中的所述最高优先级链路由所述专线链路修改为所述第一vpn链路。
154.在一种可能的实现方式中,所述组表修改模块503,还用于在第二vpn隧道的连通状态出现故障的情况下,将所述第二组表由负载均衡设置修改为优先级设置,且,修改后的
所述第二组表中的最高优先级链路为第四vpn链路;在所述第二vpn隧道的连通状态恢复正常的情况下,将所述第二组表由所述优先级设置恢复为所述负载均衡设置;其中,所述负载均衡设置下的所述第二组表按照哈希算法在所述第二出口集合中分配所述第二类型用户当前使用的链路,所述优先级设置下的所述第二组表使用所述第二出口集合中的最高优先级链路表征所述第二类型用户当前使用的链路。
155.在一种可能的实现方式中,所述组表修改模块503,还用于在所述第二vpn隧道的连通状态出现故障的情况下,获取所述第二出口集合中的各个vpn链路基础上的vpn隧道的隧道时延;在所述第四vpn链路对应的隧道时延最低的情况下,将所述第二组表由负载均衡设置修改为优先级设置,且,修改后的所述第二组表中的最高优先级链路为所述第四vpn链路。
156.在一种可能的实现方式中,所述装置还包括:隧道监控模块;
157.所述隧道监控模块,用于向所述对端的第二资源池发送针对所述目标隧道的地址连通命令;通过所述地址连通命令的响应情况,获取所述目标隧道的连通状态以及隧道时延。
158.需要说明的是:上述实施例提供的基于云间高速的链路切换装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
159.请参阅图6,其是根据本技术一示例性实施例提供的一种计算机设备示意图,所述计算机设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的基于云间高速的链路切换方法。
160.其中,处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
161.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
162.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
163.在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部
分步骤。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
164.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
165.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1