一种VXLAN网络热备切换方法及系统与流程

文档序号:16774662发布日期:2019-02-01 18:38阅读:623来源:国知局
一种VXLAN网络热备切换方法及系统与流程

本发明实施例涉及通信技术领域,具体涉及一种vxlan网络热备切换方法及系统。



背景技术:

vxlan(virtualextensiblelocalareanetwork,虚拟可扩展局域网)是一种建立在ip(internetprotocol,网络之间互连的协议)网络之上的overlay(叠加)网络技术,其使用mac(mediaaccesscontrol,媒体介入控制)inudp(userdatagramprotocol,用户数据报协议)的方法进行封装,即将普通以太网报文封装在udp报文里面,普通以太网报文当作udp数据传输。

vxlan网络包括:多台终端设备(如pc、虚拟机、服务器等)、域内本地网络设备、vtep(vxlantunnelendpoint,vxlan隧道终端)和ip网络。其中vtep是vxlan网络的边缘设备,vtep之间在ip核心网络上建立隧道,这些隧道实现了vxlan穿越ip核心网的以太网报文传输服务。

图1为vxlan网络热备示意图,如图1所示,接入层交换机asw包括两个asw设备:主设备和备设备,服务器双网络接入汇聚交换机psw,psw同时支持vxlan网关和vxlan桥的功能,asw与psw建立overlay隧道,psw是多活网关组,报文经过三层网络后到达vxlan网关。首先,两台asw通过协商确定主设备和备设备,asw间通过保活机制进行保活;服务器首先与主设备连接,并走主设备的vxlan隧道,与备设备建立备vxlan隧道;服务器双网络单活接入psw,psw同时支持vxlan网关和vxlan网桥的功能。之后,当主设备发生故障,备设备检测到保活超时,通知服务器;备设备与服务器之间的备用vxlan隧道被激活,备设备变成主设备。同理,psw和服务器也可以包括主设备和备设备,即vxlan网络中的vtep设备均可设置主备设备,例如图1中服务器包括主机vm1和主机vm2,psw的主备设备切换后(图1中未示出),服务器链路也会跟着切换,之后用户的业务在备vxlan隧道激活后恢复正常。当原主设备恢复正常,与新主设备重新建立热备关系,原主设备变成备设备,服务器与之建立备vxlan隧道,用户的业务不会中断。

在热备过程中,如果主备设备之间的网络临时不可达,备设备检测到热备连接断开,会向服务器下发切换vxlan隧道消息,简称sw1。在这个过程中,如果asw设备热备的连接又建立起来,主设备也会下发切换vxlan隧道的消息,简称sw2,此时服务器可能会同时收到两个vxlan隧道切换的消息。如果由于网络拥塞,或者vxlan隧道重传等原因,导致sw2消息先到,sw1消息后到,就会导致服务器先切到主设备,再切到备设备,使得服务器选择的主设备与实际的主设备不一致,从而导致网络不可用。



技术实现要素:

针对现有技术中的缺陷,本发明实施例提供了一种vxlan网络热备切换方法及系统。

第一方面,本发明实施例提供一种vxlan网络热备切换方法,应用于主设备和备设备分别通过vxlan隧道与服务器建立连接的vxlan网络中,包括:

vxlan网络中的主备设备首次建立vxlan热备连接之后,主设备和备设备确定协商标识号,将所述协商标识号作为所述主设备的设备标识号;

所述主设备向所述vxlan网络中的服务器发送隧道建立消息,所述隧道建立消息中携带所述主设备的设备标识号,以供所述服务器保存所述设备标识号,并根据所述隧道建立消息与所述主设备建立vxlan隧道;

若检测到所述主设备与所述备设备之间的vxlan热备连接断开,则所述备设备将所述协商标识号加1,作为所述备设备的设备标识号,并将其状态切换为主设备状态;

所述备设备向所述服务器发送第一热备切换消息,所述第一热备切换消息中携带所述备设备的设备标识号;

若检测到所述主设备与所述备设备之间的vxlan热备连接断开,则所述主设备向所述服务器发送第二热备切换消息,所述第二热备切换消息中携带所述主设备的设备标识号;

所述服务器比较接收到的第一热备切换消息或第二热备切换消息中携带的设备标识号与保存的设备标识号,若接收到的第一热备切换消息中携带的设备标识号大于保存的设备标识号,则所述服务器根据所述第一热备切换消息与所述备设备建立vxlan隧道,并更新保存的设备标识号;否则,所述服务器丢弃所述第一热备切换消息。

如上述方法,可选地,还包括:

若接收到的第二热备切换消息中携带的设备标识号大于保存的设备标识号,则所述服务器根据所述第二热备切换消息切换vxlan隧道,并更新保存的设备标识号;否则,所述服务器丢弃所述第二热备切换消息。

如上述方法,可选地,所述主设备和备设备确定协商标识号,包括:

所述主设备和所述备设备生成随机数并互相发送各自的随机数;

所述主设备或备设备比较自身生成的随机数与接收到的随机数,将两者中较大的随机数作为协商标识号。

如上述方法,可选地,还包括:

若所述主设备和备设备之间的vxlan热备连接恢复,则重新协商主备设备后,新的主设备和新的备设备更新协商标识号,其中,更新后的协商标识号大于所述新的主设备或新的备设备的设备标识号,将更新后的协商标识号作为所述新的主设备更新后的设备标识号;

所述新的主设备向所述服务器发送第二热备切换消息,所述第二热备切换消息中携带所述新的主设备的设备标识号;

所述新的备设备向所述服务器发送第一热备切换消息,所述第一热备切换消息中携带所述新的备设备的设备标识号;

所述服务器比较接收到的第二热备切换消息或第一热备消息中携带的设备标识号与保存的设备标识号,若接收到的第二热备切换消息中携带的设备标识号大于保存的设备标识号,则所述服务器根据所述第二热备切换消息切换vxlan隧道,并更新保存的设备标识号;否则,所述服务器丢弃所述第二热备切换消息。

如上述方法,可选地,所述新的主设备和备设备更新协商标识号,包括:

比较所述新的主设备和新的备设备的设备标识号,将两者中较大的设备标识号加1作为更新后的协商标识号。

如上述方法,可选地,所述主设备向所述vxlan网络中的服务器发送隧道建立消息,包括:

所述主设备通过bgp扩展协议向所述vxlan网络中的服务器发送隧道建立消息;

相应地,所述备设备向所述服务器发送第一热备切换消息,包括:

所述备设备通过bgp扩展协议向所述服务器发送第一热备切换消息;

相应地,所述主设备向所述服务器发送第二热备切换消息,包括:

所述主设备通过bgp扩展协议向所述服务器发送第二热备切换消息。

第二方面,本发明实施例提供一种vxlan网络热备切换系统,应用于主设备和备设备分别通过vxlan隧道与服务器建立连接的vxlan网络中,包括:

vxlan网络中主设备、备设备和服务器;

所述主设备,用于与备设备首次建立vxlan热备连接之后,和所述备设备确定协商标识号,将所述协商标识号作为所述主设备的设备标识号;

所述主设备还用于,向所述服务器发送隧道建立消息,所述隧道建立消息中携带所述主设备的设备标识号,以供所述服务器保存所述设备标识号,并根据所述隧道建立消息与所述主设备建立vxlan隧道;

所述备设备,用于若检测到所述主设备与所述备设备之间的vxlan热备连接断开,则将所述协商标识号加1,作为自身的设备标识号,并将其状态切换为主设备状态;

所述备设备还用于,向所述服务器发送第一热备切换消息,所述第一热备切换消息中携带所述备设备的设备标识号;

所述主设备还用于,若检测到所述主设备与所述备设备之间的vxlan热备连接断开,则向所述服务器发送第二热备切换消息,所述第二热备切换消息中携带所述主设备的设备标识号;

所述服务器,用于比较接收到的第一热备切换消息或第二热备切换消息中携带的设备标识号与保存的设备标识号,若接收到的第一热备切换消息中携带的设备标识号大于保存的设备标识号,则根据所述第一热备切换消息与所述备设备建立vxlan隧道,并更新保存的设备标识号;否则,丢弃所述第一热备切换消息。

如上述系统,可选地,所述服务器还用于:

若接收到的第二热备切换消息中携带的设备标识号大于保存的设备标识号,则根据所述第二热备切换消息切换vxlan隧道,并更新保存的设备标识号;否则,丢弃所述第二热备切换消息。

如上述系统,可选地,所述主设备具体用于:

生成随机数,并接收所述备设备生成的随机数;

比较自身生成的随机数与接收到的随机数,将两者中较大的随机数作为协商标识号。

如上述系统,可选地,所述主设备还用于:

若和所述备设备之间的vxlan热备连接恢复,则与所述备设备重新协商主备设备;

当所述主设备为重新协商后的新的主设备,所述备设备为重新协商后的新的从设备时,所述主设备,还用于和所述备设备更新协商标识号,其中,更新后的协商标识号大于所述主设备或备设备的设备标识号,将更新后的协商标识号作为所述主设备更新后的设备标识号;

所述主设备还用于,向所述服务器发送第二热备切换消息,所述第二热备切换消息中携带所述主设备的设备标识号;

所述备设备还用于,向所述服务器发送第一热备切换消息,所述第一热备切换消息中携带所述备设备的设备标识号;

所述服务器还用于,比较接收到的第二热备切换消息或第一热备切换消息中携带的设备标识号与保存的设备标识号,若接收到的第二热备切换消息中携带的设备标识号大于保存的设备标识号,则所述服务器根据所述第二热备切换消息切换vxlan隧道,并更新保存的设备标识号;否则,所述服务器丢弃所述第二热备切换消息。

如上述系统,可选地,所述主设备具体用于:

比较自身的设备标识号和所述备设备的设备标识号,将两者中较大的设备标识号加1作为更新后的协商标识号。

本发明实施例提供的vxlan网络热备切换方法,通过设置主设备和备设备的设备标识号,在检测到vxlan热备连接断开之后,主设备设备标识号不变,更改备设备设备标识号,服务器通过判断热备切换消息中的设备标识号和保存的设备标识号大小确定是否进行切换,解决了vxlan网络热备切换中控制面表项及网关切换错误的问题,提升了vxlan网络热备切换的速度,避免了用户由于vxlan设备故障导致的切换断流时间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为vxlan网络热备示意图;

图2为本发明实施例提供的vxlan网络热备切换方法流程示意图;

图3为本发明实施例提供的bgp扩展团体属性示意图;

图4为本发明实施例提供的bgp扩展协议中id字段属性示意图;

图5为本发明实施例提供的vxlan网络热备切换系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2为本发明实施例提供的vxlan网络热备切换方法流程示意图,如图2所示,该方法应用于主设备和备设备分别通过vxlan隧道与服务器建立连接的vxlan网络中,包括:

步骤s21、vxlan网络中的主备设备首次建立vxlan热备连接之后,主设备和备设备确定协商标识号,将所述协商标识号作为所述主设备的设备标识号;

具体地,如图1所示,vxlan网络中的vtep设备均可设置主备设备,例如,asw层包括asw主设备和asw备设备。首先,待选为主备设备的两个vtep设备协商出主备设备,主设备和备设备建立vxlan热备连接,在vxlan热备连接建立之后,主设备和备设备确定协商标识号,记为idst,然后将协商标识号idst作为主设备的设备标识号,为了便于区分,将主设备的设备标识号记为id2,将备设备的设备标识号记为id1,即在初次建立vxlan热备连接之后,id2=idst,此时id1为空,其中主设备和备设备之间可以通过多种方式确定协商标识号idst,例如,主设备生成随机数,将该随机数作为协商标识号idst,之后将该随机数通过与备设备之间的vxlan热备连接发送至备设备,告知备设备该协商标识号idst。

步骤s22、所述主设备向所述vxlan网络中的服务器发送隧道建立消息,所述隧道建立消息中携带所述主设备的设备标识号,以供所述服务器保存所述设备标识号,并根据所述隧道建立消息与所述主设备建立vxlan隧道;

具体地,当vxlan网络中的服务器与主备设备建立vxlan隧道时,主设备向服务器发送隧道建立消息,隧道建立消息携带主设备的设备标识号,服务器接收到隧道建立消息之后,与主设备建立vxlan隧道,保存设备标识号id2,为了便于区分,将服务器保存的设备标识号记为idsa,此时,idsa=id2。

步骤s23、若检测到所述主设备与所述备设备之间的vxlan热备连接断开,则所述备设备将所述协商标识号加1,作为所述备设备的设备标识号,并将其状态切换为主设备状态;

具体地,主设备和备设备建立vxlan热备连接之后,通过保活机制检测vxlan热备连接是否断开,例如通过发送心跳消息检测vxlan热备连接是否断开,当vxlan热备连接断开时,主设备和备设备均可以检测到该vxlan热备连接断开。

备设备检测到vxlan热备连接断开之后,热备状态从备vxlan状态切换到主vxlan状态,即将备设备切换为主设备状态,将协商标识号idst加1,作为备设备的设备标识号id1,即id1=idst+1。

步骤s24、所述备设备向所述服务器发送第一热备切换消息,所述第一热备切换消息中携带所述备设备的设备标识号;

具体地,备设备向服务器发送第一热备切换消息,记为sw1,sw1携带备设备的设备标识号id1。

步骤s25、若检测到所述主设备与所述备设备之间的vxlan热备连接断开,则所述主设备向所述服务器发送第二热备切换消息,所述第二热备切换消息中携带所述主设备的设备标识号;

具体地,一般情况下,在检测到vxlan热备连接断开之后,主设备不会向服务器发送热备切换消息,但是若出现网络故障,主设备也会向服务器发送热备切换消息,记为第二热备切换消息sw2,与现有技术不同,本发明实施例中,第二热备切换消息sw2中同样携带主设备的设备标识号id2。主设备检测到vxlan热备连接断开,vxlan状态不变,仍然为主设备,设备标识号id2也不变。

步骤s26、所述服务器比较接收到的第一热备切换消息或第二热备切换消息中携带的设备标识号与保存的设备标识号,若接收到的第一热备切换消息中携带的设备标识号大于保存的设备标识号,则所述服务器根据所述第一热备切换消息与所述备设备建立vxlan隧道,并更新保存的设备标识号;否则,所述服务器丢弃所述第一热备切换消息。

具体地,服务器接收到第一热备切换消息sw1或者第二热备切换消息sw2之后,比较sw1携带的设备标识号id1与当前保存的设备标识号idsa的大小,若热备切换消息sw1中携带的设备标识号与保存的设备标识号idsa相等或者小于保存的设备标识号idsa,则说明该热备切换消息sw1是历史信息,不使用,因此服务器直接丢弃该热备切换消息。

若热备切换消息sw1中携带的设备标识号id1大于保存的设备标识号idsa,则说明该热备切换消息sw1是新的切换信息,服务器根据热备切换消息sw1与备设备建立vxlan隧道,并更新保存的设备标识号。

例如,主备设备首次建立vxlan连接之后,确定协商标识号idst=20,然后将20作为主设备的设备标识号,即id2=20,之后,主设备向服务器发送隧道建立消息,携带id2=20信息,服务器接收到隧道建立消息之后,与主设备建立vxlan隧道,并记录idsa=20。

当主备设备之间的vxlan热备连接断开之后,备设备的设备标识号id1=idst+1=21,状态切换为主设备状态,主设备的id2保持不变。备设备向服务器发送sw1,携带id1=21信息,服务器接收到sw1之后,判断sw1中携带的id1大于保存的idsa,则切换vxlan隧道,并更新idsa=21。

若发生网络故障,服务器先接收到主设备发送的热备切换消息sw2,由于其携带的id2等于保存的idsa,则服务器丢弃该热备切换消息,保证了服务器选择的主设备与实际的主设备相同,解决了vxlan网络热备切换中控制面表项切换隧道错误的问题。

本发明实施例提供的vxlan网络热备切换方法,通过设置主设备和备设备的设备标识号,在检测到vxlan热备连接断开之后,主设备设备标识号不变,更改备设备设备标识号,服务器通过判断热备切换消息中的设备标识号和保存的设备标识号大小确定是否进行切换,解决了vxlan网络热备切换中控制面表项及网关切换错误的问题,提升了vxlan网络热备切换的速度,避免了用户由于vxlan设备故障导致的切换断流时间。

在上述实施例的基础上,进一步地,该方法还包括:

若接收到的第二热备切换消息中携带的设备标识号大于保存的设备标识号,则所述服务器根据所述第二热备切换消息切换vxlan隧道,并更新保存的设备标识号;否则,所述服务器丢弃所述第二热备切换消息。

具体地,若服务器接收到的第二热备切换消息sw2中携带的设备标识号id2大于保存的设备标识号idsa,则服务器根据第二热备切换消息sw2切换vxlan隧道至与主设备连接的vxlan隧道,并更新保存的设备标识号。由于在vxlan热备连接断开时,主设备的设备标识号并未改变,此时若服务器接收到主设备发送的第二热备切换消息sw2,其携带的设备标识号id2与保存的设备标识号idsa相同,服务器会直接丢弃第二热备切换消息sw2,从而保证了服务器选择的主设备与实际的主设备相同,解决了现有技术中服务器选择的主设备与实际的主设备不一致,导致网络不可用等问题。

在上述实施例的基础上,进一步地,所述主设备和备设备确定协商标识号,包括:

所述主设备和所述备设备生成随机数并互相发送各自的随机数;

所述主设备或备设备比较自身生成的随机数与接收到的随机数,将两者中较大的随机数作为协商标识号。

具体地,由于vxlan热备连接是首次建立,则主设备和备设备或其管理板生成随机数,之后通过vxlan热备连接互相发送随机数。收到邻居发来的随机数之后,与自身产生的随机数比较,选择两者中最大的随机数为两边一致的id,记为协商标识号idst,例如,主设备生成的随机数为19,备设备生成的随机数为20,两边互相发送各自的随机数,则确定协商标识号idst=20。

本发明实施例提供的vxlan网络热备切换方法,通过协商得到主设备和备设备的设备标识号,在检测到vxlan热备连接断开之后,主设备设备标识号不变,更改备设备设备标识号,服务器通过判断热备切换消息中的设备标识号和保存的设备标识号大小确定是否进行切换,解决了vxlan网络热备切换中控制面表项及网关切换错误的问题,提升了vxlan网络热备切换的速度,避免了用户由于vxlan设备故障导致的切换断流时间。

在上述各实施例的基础上,进一步地,所述方法还包括:

若所述主设备和备设备之间的vxlan热备连接恢复,则重新协商主备设备后,新的主设备和新的备设备更新协商标识号,其中,更新后的协商标识号大于所述新的主设备或新的备设备的设备标识号,将更新后的协商标识号作为所述新的主设备更新后的设备标识号;

所述新的主设备向所述服务器发送第二热备切换消息,所述第二热备切换消息中携带所述新的主设备的设备标识号;

所述新的备设备向所述服务器发送第一热备切换消息,所述第一热备切换消息中携带所述新的备设备的设备标识号;

所述服务器比较接收到的第二热备切换消息或第一热备消息中携带的设备标识号与保存的设备标识号,若接收到的第二热备切换消息中携带的设备标识号大于保存的设备标识号,则所述服务器根据所述第二热备切换消息切换vxlan隧道,并更新保存的设备标识号;否则,所述服务器丢弃所述第二热备切换消息。

具体地,主设备和备设备之间的vxlan热备连接恢复之后,重新协商出新的主设备和新的备设备,之后,新的主设备和新的备设备更新协商标识号idst,由于vxlan热备连接过去已建立过,新的主设备和新的备设备已经有了设备标识号,更新后的协商标识号idst需大于新的主设备的设备标识号id2或新的备设备的设备标识号id1,之后,用更新后的协商标识号idst更新新的主设备的设备标识号id2,即id2=idst,保证新的主设备的设备标识号id2大于之前的主设备或备设备的设备标识号中的较大者。此时,新的备设备仍然采用之前的设备标识号id1。

之后新的主设备向服务器发送热备切换消息sw2,携带新的主设备的设备标识号id2,新的备设备同样向服务器发送热备切换消息sw1,携带新的备设备的设备标识号id1,即该设备在vxlan热备连接恢复前的旧的设备标识号。

服务器接收到热备切换消息sw1或sw2之后,比较热备切换消息携带的设备标识号id1或id2与当前保存的设备标识号idsa的大小,若热备切换消息中携带的设备标识号与保存的设备标识号idsa相等或者小于保存的设备标识号idsa,则说明该热备切换消息是历史信息,不用使用,因此服务器直接丢弃该热备切换消息。

若热备切换消息中携带的设备标识号大于保存的设备标识号idsa,则说明该热备切换消息是新的切换信息,服务器直接进行热备切换操作。具体地,服务器根据热备切换消息切换vxlan隧道,并更新保存的设备标识号。

例如,若接收到的sw1携带的id1大于保存的idsa,则服务器根据sw1将vxlan隧道切换至与新的备设备连接的vxlan隧道,并根据id1更新保存的idsa,若接收到的sw1携带的id1小于或等于保存的idsa,则服务器认为sw1为历史消息,服务器直接丢弃sw1;

若接收到的sw2携带的id2大于保存的idsa,则服务器根据sw2将vxlan隧道切换至与新的主设备连接的vxlan隧道,并根据id2更新保存的idsa,若接收到的sw2携带的id2小于或等于保存的idsa,则服务器认为sw2为历史消息,服务器直接丢弃sw2。

当vxlan热备连接断开之后,服务器接收备设备发送的热备切换消息sw1,如果vxlan热备连接又建立起来,服务器还会接收到新的主设备发送的热备切换消息sw2,在热备切换过程中,服务器可能同时收到sw1和sw2切换消息,具体处理如下:

若sw1消息比sw2消息先到,则服务器会切换到备设备对应的vxlan隧道再切换到新的主设备对应的vxlan隧道,最后服务器选择的主设备与实际中的主设备一致。

若sw1消息比sw2消息后到,则sw1消息被忽略,服务器选择的vxaln隧道为与新的主设备连接的vxlan隧道,服务器选择的主设备与实际中的主设备也一致,从而解决了vxlan热备切换的时候,服务器隧道切换错误的问题。

本发明实施例提供的vxlan网络热备切换方法,通过设置主设备和备设备的设备标识号,在检测到vxlan热备连接断开之后,主设备设备标识号不变,更改备设备设备标识号,在vxlan热备连接恢复之后,重新设置主设备和备设备的设备标识号,服务器通过判断热备切换消息中的设备标识号和保存的设备标识号大小确定是否进行切换,解决了vxlan网络热备切换中控制面表项及网关切换错误的问题,进一步提升了vxlan网络热备切换的速度,避免了用户由于vxlan设备故障导致的切换断流时间。

在上述各实施例的基础上,进一步地,所述新的主设备和备设备更新协商标识号,包括:

比较所述新的主设备和新的备设备的设备标识号,将两者中较大的设备标识号加1作为更新后的协商标识号。

具体地,由于vxlan热备连接过去已建立过,新的主设备和新的备设备都有设备标识号,新的主设备或新的备设备比较各自的设备标识号和对方的设备标识号,将两者中的较大者加1作为更新后的协商标识号。

例如,主备设备首次建立vxlan连接之后,确定协商标识号idst=20,然后将20作为主设备的设备标识号,即id2=20,之后,主设备向服务器发送热备切换消息sw2,携带id2=20信息,服务器接收到sw2之后,切换vxlan隧道,并记录idsa=20。

当主备设备之间的vxlan热备连接断开之后,备设备的设备标识号id1=idst+1=21,状态切换为主设备状态,主设备的id2保持不变。备设备向服务器发送热备切换消息sw1,携带id1=21信息。

当主备设备之间的vxlan热备连接恢复之后,协商新的主设备和新的备设备,两者确定更新后的协商标识号idst=max{id1,id2}+1=22,将22作为新的主设备的设备标识号,即id2=22,新的主设备向服务器发送热备切换消息sw2,携带id2=22信息。

如果sw1消息比新的主设备发送的sw2消息先到,由于服务器记录的idsa=20,而sw1中携带的id1=21,大于记录的idsa,则服务器连接会切换到备设备,并更新idsa=21,之后服务器接收到新的主设备发送的sw2,由于sw2携带的id2=22,大于记录的idsa,则服务器会切换到新的主设备,最后服务器选择的主设备与实际中的主设备一致。

如果由于网络拥塞,或者vxlan隧道重传等原因,导致之前的备设备发送的热备切换消息sw1比新的主设备发送的sw2消息后到,由于服务器记录的idsa=20,而sw2中携带的id2=22,大于记录的idsa,则服务器连接会切换到新的主设备,并更新idsa=22,之后服务器接收到上一个备设备发送的sw1,由于sw1中携带的id1=21,小于记录的idsa,则服务器会丢弃该热备切换消息,服务器选择的主设备与实际中的主设备也一致,从而解决了vxlan网络热备切换的时候,服务器隧道切换错误的问题。

在上述各实施例的基础上,进一步地,所述主设备向所述vxlan网络中的服务器发送隧道建立消息,包括:

所述主设备通过bgp扩展协议向所述vxlan网络中的服务器发送隧道建立消息;

相应地,所述备设备向所述服务器发送第一热备切换消息,包括:

所述备设备通过bgp扩展协议向所述服务器发送第一热备切换消息;

相应地,所述主设备向所述服务器发送第二热备切换消息,包括:

所述主设备通过bgp扩展协议向所述服务器发送第二热备切换消息。

具体地,当vxlan网络中的两个vtep设备,例如服务器与asw设备建立vxlan隧道的时候,asw设备中的主设备或备设备可以通过边界网关协议(bordergatewayprotocol,bgp)扩展协议向服务器下发热备切换消息sw,切换消息sw中携带设备标识号,具体地,将热备切换消息sw中携带的设备标识号字段属性填充到bgp扩展协议中。图3为本发明实施例提供的bgp扩展团体属性示意图,图4为本发明实施例提供的bgp扩展协议中id字段属性示意图,如图3和图4所示,bgp扩展协议的type值中0xc0-0xcf为实验性扩展使用,包括类型最高值typehigh字段和类型最低值typelow字段,value字段为具体的数值,在本发明实施例中,value为设备标识号id字段,设置id字段属性中type值为cf,sub-type值为e1,bgp内部能分配的id字段属性范围[0x1,0xffffff];其中,id-type表明所携带value值的类型,其定义如下:0x00:携带的value值为路由(vtep设备)来源邻居的自治系统as号;0x01:携带的value值为路由来源的vpn-id值;0x02:携带的value值为手工配置的路由组的id值;0x03~0xff:保留值reserved。其中三者包含关系为:bgp扩展协议包含热备切换信息sw,热备切换信息sw含id属性值。服务器接收到热备切换消息之后,从id属性值中获取热备切换消息携带的设备标识号,并记录该设备标识号。

同理,新的主设备或新的备设备也是通过bgp扩展协议向服务器发送热备切换消息。

本发明实施例提供的vxlan网络热备切换方法,通过设置主设备和备设备的设备标识号,在检测到vxlan热备连接断开之后,主设备设备标识号不变,更改备设备设备标识号,在vxlan热备连接恢复之后,重新设置主设备和备设备的设备标识号,通过bgp扩展协议携带设备标识号向服务器发送热备切换消息,服务器通过判断热备切换消息中的设备标识号和保存的设备标识号大小确定是否进行切换,解决了vxlan网络热备切换中控制面表项及网关切换错误的问题,进一步提升了vxlan网络热备切换的速度,避免了用户由于vxlan设备故障导致的切换断流时间。

基于同样的发明构思,本发明实施例还提供一种vxlan热备切换系统,应用于主设备和备设备分别通过vxlan隧道与服务器建立连接的vxlan网络中,图5为本发明实施例提供的vxlan网络热备切换系统的结构示意图,如图5所示,该热备切换系统包括vxlan网络中主设备51、备设备52和服务器53,其中:

所述主设备51用于与备设备52首次建立vxlan热备连接之后,和所述备设备52确定协商标识号,将所述协商标识号作为所述主设备51的设备标识号;所述主设备51还用于,向所述服务器53发送隧道建立消息,所述隧道建立消息中携带所述主设备51的设备标识号,以供所述服务器53保存所述设备标识号,并根据所述隧道建立消息与所述主设备51建立vxlan隧道;所述备设备52用于若检测到所述主设备51与所述备设备52之间的vxlan热备连接断开,则将所述协商标识号加1,作为自身的设备标识号,并将其状态切换为主设备状态;所述备设备52还用于,向所述服务器发送第一热备切换消息,所述第一热备切换消息中携带所述备设备52的设备标识号;所述主设备51还用于,若检测到所述主设备51与所述备设备52之间的vxlan热备连接断开,则向所述服务器53发送第二热备切换消息,所述第二热备切换消息中携带所述主设备51的设备标识号;所述服务器53用于比较接收到的第一热备切换消息或第二热备切换消息中携带的设备标识号与保存的设备标识号,若接收到的第一热备切换消息中携带的设备标识号大于保存的设备标识号,则根据所述第一热备切换消息与所述备设备建立vxlan隧道,并更新保存的设备标识号;否则,丢弃所述第一热备切换消息。

可选地,所述服务器还用于:

若接收到的第二热备切换消息中携带的设备标识号大于保存的设备标识号,则根据所述第二热备切换消息切换vxlan隧道,并更新保存的设备标识号;否则,丢弃所述第二热备切换消息。

可选地,所述主设备具体用于:

生成随机数,并接收所述备设备生成的随机数;

比较自身生成的随机数与接收到的随机数,将两者中较大的随机数作为协商标识号。

可选地,所述主设备还用于:

若和所述备设备之间的vxlan热备连接恢复,则与所述备设备重新协商主备设备;

当所述主设备为重新协商后的新的主设备,所述备设备为重新协商后的新的从设备时,所述主设备,还用于和所述备设备更新协商标识号,其中,更新后的协商标识号大于所述主设备或备设备的设备标识号,将更新后的协商标识号作为所述主设备更新后的设备标识号;

所述主设备还用于,向所述服务器发送第二热备切换消息,所述第二热备切换消息中携带所述主设备的设备标识号;

所述备设备还用于,向所述服务器发送第一热备切换消息,所述第一热备切换消息中携带所述备设备的设备标识号;

所述服务器还用于,比较接收到的第二热备切换消息或第一热备切换消息中携带的设备标识号与保存的设备标识号,若接收到的第二热备切换消息中携带的设备标识号大于保存的设备标识号,则所述服务器根据所述第二热备切换消息切换vxlan隧道,并更新保存的设备标识号;否则,所述服务器丢弃所述第二热备切换消息。

可选地,所述主设备具体用于:

比较自身的设备标识号和所述备设备的设备标识号,将两者中较大的设备标识号加1作为更新后的协商标识号。

本发明实施例提供的vxlan网络热备切换系统,通过设置主设备和备设备的设备标识号,在检测到vxlan热备连接断开之后,主设备设备标识号不变,更改备设备设备标识号,在vxlan热备连接恢复之后,重新设置主设备和备设备的设备标识号,通过bgp扩展协议携带设备标识号向服务器发送热备切换消息,服务器通过判断热备切换消息中的设备标识号和保存的设备标识号大小确定是否进行切换,解决了vxlan网络热备切换中控制面表项及网关切换错误的问题,进一步提升了vxlan网络热备切换的速度,避免了用户由于vxlan设备故障导致的切换断流时间。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的系统等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1