一种网关容灾方法、装置和存储介质与流程

文档序号:11778252阅读:430来源:国知局
一种网关容灾方法、装置和存储介质与流程

本发明涉及通讯技术领域,具体涉及一种网关容灾方法、装置和存储介质。



背景技术:

网关(gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。

目前,通讯领域中可以通过网关设备集群来实现两个网络之间的通讯,比如,通过网关设备集群可以实现内网和外网之间的数据通讯。然而,在一些情况下,由于网关设备集群内某些网关设备会经常发生故障,造成服务不可用,从而导致大量业务损失。



技术实现要素:

本发明实施例提供一种网关容灾方法、装置和存储介质,可以降低由网关设备故障造成的业务损失。

本发明实施例提供一种网关容灾方法,适用于网关设备集群中的网关设备,包括:

向网关设备集群内其他网关设备以及交换机发送心跳包;

接收所述其他网关设备发送的心跳包;

当在预设时间段内未接到所述其他网关设备发送的心跳包时,确定所述其他网关设备发生故障;

获取所述其他网关设备上配置的第一网络出口地址;

将所述第一网络出口地址分配给所述网关设备集群中的正常网关设备接管。

相应的,本发明实施例还提供了另一种网关容灾方法,适用于网络交换机,包括:

接收网关设备集群中目标网关设备发送的心跳包;

当在预设时间段内未接到目标网关设备发送的心跳包时,确定所述目标网关设备发生故障;

基于其他网关设备发布的地址的路由,向所述其他网关设备发送流量数据,以便所述其他网关设备将所述流量数据转发至相应的网络交换机;所述地址包括所述目标网关设备上的第一网络出口地址、或者第二网入口地址。

相应的,本发明实施例还提供一种网关容灾装置,适用于网关设备集群中的网关设备,包括:

心跳发送单元,用于向网关设备集群内其他网关设备以及交换机发送心跳包;

心跳接收单元,用于接收所述其他网关设备发送的心跳包;

故障确定单元,用于当在预设时间段内未接到所述其他网关设备发送的心跳包时,确定所述其他网关设备发生故障;

地址获取单元,用于获取所述其他网关设备上配置的第一网络出口地址;

分配单元,用于将所述第一网络出口地址分配给所述网关设备集群中的正常网关设备接管。

相应的,本发明实施例还提供另一种网关容灾装置,适用于网络交换机,包括:

心跳接收单元,用于接收网关设备集群中目标网关设备发送的心跳包;

故障确定单元,用于当在预设时间段内未接到目标网关设备发送的心跳包时,确定所述目标网关设备发生故障;

数据发送单元,用于基于其他网关设备发布的地址的路由,向所述其他网关设备发送流量数据,以便所述其他网关设备将所述流量数据转发至相应的网络交换机;所述地址包括所述目标网关设备上的第一网络出口地址、或者第二网入口地址。

相应的,本发明实施例还提供一种存储介质,所述存储介质存储有指令,所述指令被处理器执行时实现本发明实施例任一提供的方法的步骤。

本发明实施例采用向网关设备集群内其他网关设备以及交换机发送心跳包,并接收该其他网关设备发送的心跳包,当在预设时间段内未接到该其他网关设备发送的心跳包时,确定该其他网关设备发生故障,获取该其他网关设备上配置的第一网络出口地址,将该第一网络出口地址分配给该网关设备集群中的正常网关设备接管;该方案可以通过网关设备集群内网关设备相互发送心跳包,来检测集群内的故障网关设备,并且在检测到故障网关设备时可以由集群内其他正常网关设备接管故障网关设备上的第一网络出口地址,解决了因网关设备故障导致的服务不用的问题,大大地降低了业务的损失。

附图说明

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

图1a是本发明实施例提供的网关容灾方法的流程示意图;

图1b是本发明实施例提供的ld间相互组播发送心跳包的示意图;

图1c是本发明实施例提供的长连接同步的示意图;

图2a是本发明实施例提供的网络数据交互系统的结构示意图;

图2b是本发明实施例提供的网关容灾方法的另一种示意图;

图2c是本发明实施例提供的网络数据交互系统的另一结构示意图;

图3a是本发明实施例提供的网关容灾装置的第一种结构示意图;

图3b是本发明实施例提供的网关容灾装置的第二种结构示意图;

图3c是本发明实施例提供的网关容灾装置的第三种结构示意图;

图3d是本发明实施例提供的网关容灾装置的第四种结构示意图;

图3e是本发明实施例提供的网关容灾装置的第五种结构示意图;

图4是本发明实施例提供的网关容灾装置的第六种结构示意图。

具体实施方式

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

本发明实施例提供了一种网关容灾方法、装置和存储介质。以下将分别进行详细说明。

实施例一、

本实施例将从网关容灾装置的角度进行描述,该网关容灾装置具体在网关设备集群内的网关设备中,该网关设备可以为提供网关功能的设备,如提供网关功能的服务器等。

一种网关容灾方法,适用于网关设备集群中的网关设备,包括:向网关设备集群内其他网关设备以及交换机发送心跳包,并接收该其他网关设备发送的心跳包,当在预设时间段内未接到该其他网关设备发送的心跳包时,确定该其他网关设备发生故障,获取该其他网关设备上配置的第一网络出口地址,将该第一网络出口地址分配给该网关设备集群中的正常网关设备接管。

如图1a所示,该网关容灾方法的具体流程可以如下:

101、向网关设备集群内其他网关设备以及交换机发送心跳包。

本实施例中,网关设备可以包括提供nat(networkaddresstranslation,网络地址转换)网关功能的设备等,比如,ld(提供nat网关功能的服务器)等。

其中,发送心跳包的方式可以包括组播发送方式等,比如,可以以组播方式向网管设备集群内其他网关设备或者交换机发送心跳包,此时,心跳包即为组播包。

其中,其他网关设备可以为网关设备集群内除自身以外的网关设备。比如,网关设备集群包括网关设备1、网关设备2……网关设备n时,网关设备1可以分别向网关设备2、网关设备3……网关设备n组播发送心跳包,网关设备2可以向网关设备1、网关设备3……网关设备n组播发送心跳包,网关设备i可以向网关设备1……网关设备i-1、网关设备i+1……网关设备n发送心跳包等。

参考图1b,以网关设备为ld为例,接收集群内网关设备相互组播发送心跳包的过程。如图1b所示,ld1可通过组播方式向ld2、ld3、ld4发送心跳包,同样ld2、ld3、ld4也可以通过组播方式向ld1发送心跳包;如图1b所示,ld之间通过udp(userdatagramprotocol,用户数据报协议)组播发送心跳包,此时心跳包即为udp组播包。

本实施例方法还可以向交换机发送心跳包,该交换机可以包括:网关设备连接的网络中的交换机,比如,网关设备连接的网络分别为第一网络、第二网络,此时,交换机可以包括第一网络和/或第二网络中的交换机。该第一网络可以广域网(wan),如公网、外网等,相应的,第二网络可以为局域网(lan),如私网、内网等。

可选地,可以向下挂在网关设备下的交换机发送心跳包,比如,可向第一网络或第二网络中下挂在网关设备下的交换机组播发送心跳包。

可选地,本实施例还可以每隔一段时间向网关设备集群内其他网关设备以及交换机发送心跳包,该间隔时间可以根据实际需求设定,比如1s、2s等等。

102、接收该其他网关设备发送的心跳包。

本实施例中,步骤101和102的时序不受序号限制,发送心跳包和接收心跳包可以同时执行,也可以先后执行。

比如,网关设备1可以分别接收网关设备2、网关设备3……网关设备n组播发送的心跳包,网关设备2可以分别接收网关设备1、网关设备3……网关设备n组播发送的心跳包,网关设备i可以分别接收网关设备1……网关设备i-1、网关设备i+1……网关设备n发送的心跳包等等。

103、当在预设时间段内未接到该其他网关设备发送的心跳包时,确定该其他网关设备发生故障。

由于当某个网关设备发送故障时,该网关设备会停止向其他网关设备发送心跳包,因此,如果在预设时间段内未接收到某个网关设备发送的心跳包,那么可以认为该网关设备发生故障。

其中,预设时间段可以根据实际需求设定,如1分钟、2分钟等等。

例如,当网关设备1在预设时间段未接收到集群内其他网关设备如网关设备2、网关设备3等发送的心跳包时,可以确定其他网关设备如网关设备2、网关设备3等发生故障;同样,当网关设备i在预设时间段未接收到集群内其他网关设备如网关设备1、网关设备n等时,可以确定其他网关设备如网关设备1、网关设备n等发生故障。

104、获取该其他网关设备上配置的第一网络出口地址。

比如,当网关设备1确定网关设备2发生故障时,可以获取网关设备2本地配置的第一网络出口地址。

其中,第一网络出口地址为网关设备集群连接的第一网络的出口地址,比如,当第一网络为外网时,该第一网络出口地址可以网关外网地址,如nat网关外网出口ip(即tvsvip)。

可选地,第一网络出口地址可以只配置在一台网关设备中,也即集群内每个网关设备在本地配置各自的第一网络出口地址,如tvsvip。

105、将该第一网络出口地址分配给该网关设备集群中的正常网关设备接管。

如果某个网关设备发生故障,其他正常网关设备需要接管该故障网关设备的出口地址,那么就需要获取故障网关设备上配置的第一网络出口地址,然后,将故障网关设备上配置的第一网络出口地址分配给集群内正常的网关设备接管。

比如,当故障网关设备上配置的包括多个第一网络出口地址如tvsvip1、tvsvip2、tvsvip3时,可以将多个第一网络出口地址如tvsvip分配给集群内正常网关设备接管。如,将tvsvip1分配给正常网关设备1接管、将tvsvip2分配给自己接管、将tvsvip3分配给正常网关设备3接管等等。

其中,具体的分配方式可以根据实际需求设定,为保证集群内网关设备的分配方案一致,可以使得集群内每个网关设备采用相同的分配方式。

具体地,步骤“将该第一网络出口地址分配给该网关设备集群中的正常网关设备接管”可以包括:

当该网关设备为正常网关设备时,从该第一网络出口地址中,确定该网关设备需要接管的目标第一网络出口地址;

在该网关设备本地配置该目标第一网络出口地址;

向第一网络交换机发布该目标第一网络出口地址的路由。

其中,第一网络交换机为第一网络中的交换机,如外网接入交换机等。

比如,网关设备i在预设时间段内未接收到网关设备k发送的心跳包时,网关设备i确定网关设备k发生故障,可以获取网关设备k上配置的第一网络出口地址如tvsvip1、tvsvip2、tvsvip3……tvsvipm;网关设备i根据预设分配方式确定正常网关设备需要接管的第一网络出口地址,如确定网关设备i自身需要接管的目标第一网络出口地址(如tvsvipj),此时,网关设备i可以在本地配置目标第一网络出口地址(如tvsvipj),然后,向第一网络中的交换机发布目标第一网络出口地址(如tvsvipj)的路由。

其中,本实施例可以采用ospf(openshortestpathfirst,开放式最短路径优先)动态路由协议向交换机发布第一网络出口地址(如tvsvipj)的路由。

可选地,在第一网络交换机确定其所属的网关设备发生故障时,可以将流量数据发送给接管了故障网关设备的第一网络出口地址(如tvsvip)的网关设备,通过出口地址接管网关设备将流量数据转换给相应的第二网络交换机。也即,在发布该目标第一网络出口地址的路由之后,本实施例网关容灾方法还可以包括:

接收该第一网络交换机基于该路由发送的流量数据;

获取本地用于数据转发的连接信息列表,并基于本地的连接信息列表将该流量数据转发给相应的第二网络交换机。

该流量数据可以携带源地址、源端口、协议信息、目的地址、目的端口等,该目的地址可以为目标第一网络出口地址。网关设备在接收到流量数据后可以根据目的地址、目的端口、以及连接信息列表查询相应的数据转发连接,然后,将流量数据通过查询到的连接转发至相应的第二网络交换机,由第二网络交换机转发给最终的网络设备。

比如,当第一网络为外网、第二网络为内网时,该流量数据可以携带五元组(server_ip,server_port,proto,vip,vport);外网交换机可以基于将该数据发送给接管了该vip的网关设备,该网关设备将vip,vport转换成rs_ip,rsport,然后,查询连接信息列表得到流量数据转发至内网服务器rs的转发连接,通过查询到的连接将该流量数据转发给相应的内网交换机。

其中,连接信息可以为连接对应的端口信息、协议信息、地址信息,比如,可以包括连接对应的源地址、源端口、协议信息、目的地址、目的端口。

例如,当第一网络为外网、第二网络为内网时,在外网服务器(server)返回流量数据给内网服务器(rs)时,该连接信息可以包括:连接对应的五元组(server_ip,server_port,proto,vip,vport),server_ip为外网服务器的地址即源地址,server_port为外网服务的端口即源端口,proto为协议数据,vip为目的地址,vport为目的端口。

在内网服务器(rs)访问外网服务器(server)时,该连接信息可包括:连接对应的五元组(rs_ip,rs_port,proto,server_ip,server_port),该rs_ip为内网服务器的地址即源地址,rs_port为内网服务器的端口即端口,proto为协议数据,server_ip为外网服务器的地址即目的地址,server_port为外网服务的端口即目的端口。

该连接可以为长连接,该连接指的是从建立完成到现在的存活时间超过预设时间的连接,如从建立完成到现在的存活时间超过5秒的连接。

可选地,为能够使得正常网关设备可以实现故障网关设备的数据转发,本实施例可以同步集群内网关设备的连接信息。也即,本实施例网关容灾方法,还可以包括:

向该其他网关设备发送该网关设备上的连接信息,并接收该其他网关设备发送的连接信息;

根据该其他网关设备发送的连接信息更新本地的连接信息列表。

比如,网关设备可以通过组播方式与其他网关设备进行连接信息同步,参考图1c,为以网关设备为ld、连接为长连接的连接同步示意图。

在经过连接信息同步之后,集群内网关设备本地的连接信息列表可以保持一致,这样在某个网关设备故障时,可以由其他网关设备正常转发数据,提高了网关服务的可用性和稳定性。

可选地,为在网关设备发生故障时,可以保证第二网络的数据转发至第一网络,本实施例方法还可以包括:

向第二网络交换机发布第二网络入口地址的路由,该第二网络交换机包括故障网关设备下的第二网络交换机,该第二网络入口地址包括故障网关设备上的第二网络入口地址;

接收该第二网络交换机基于该路由发送的流量数据;

将该第二网络机发送的流量数据转发给相应的第一网络交换机。

其中,第二网络入口地址为网关设备集群连接的第二网络的入口地址,该第二网络可以局域网,如内网、私网等,此时,该第二网络入口地址可以为内网入口地址,比如,nat网关内网入口ip(即tsvvip)。

一般第二网络入口地址如tsvvip会配置在同一个网关设备集群内的每个网关设备上,因此,当某个网关设备故障时,其余正常的网关设备可以向故障网关设备下的第二网络交换机发布该故障网关设备上的第二网络入口地址如tsvvip的路由。故障网关设备下的第二网络交换机可以基于该路由向其他正常的网关设备发送第二网络数据,其他正常的网关设备在接收到第二网络数据后会向该第二网络数据转发给相应的第一网络交换机,从而达到第一网络中相应的设备。

该第二网络交换机发送的流量数据可以携带源地址、源端口、协议信息、目的地址、目的端口等。

例如,当第一网络为外网、第二网络为内网,在内网服务器(rs)访问外网服务器(server)时,内网服务器向相应的正常网关设备发送流量数据,该流量数据携带五元组(rs_ip,rs_port,proto,server_ip,server_port),该正常网关设备可以将rs_ip,rs_port替换成vip,vport,然后,基于vip,vport、server_ip,server_port查询数据转发的连接,并通过查询到的连接将该数据发送给相应的外网交换机,从而达到相应的外网服务器(server)。

由上可知,本发明实施例采用向网关设备集群内其他网关设备以及交换机发送心跳包,并接收该其他网关设备发送的心跳包,当在预设时间段内未接到该其他网关设备发送的心跳包时,确定该其他网关设备发生故障,获取该其他网关设备上配置的第一网络出口地址,将该第一网络出口地址分配给该网关设备集群中的正常网关设备接管。该方案可以通过网关设备集群内网关设备相互发送心跳包,来检测集群内的故障网关设备,并且在检测到故障网关设备时可以由集群内其他正常网关设备接管故障网关设备上的第一网络出口地址,解决了因网关设备故障导致的服务不用的问题,大大地降低了业务的损失以及提高容灾切换的效率。

实施例二、

根据实施例一所描述的方法,以下将作进一步详细说明。

如图2a所示,本实施例提供了一种网络数据交互系统,该系统包括:网关设备集群、第一网络交换机、第二网络交换机;其中,网关设备集群包括多个网关设备,网关设备可以为提供网关功能的设备,如提供nat网关功能的服务器(ld),网关设备集群通过第一网络与第一网络交换机连接,并且通过第二网络与第二网络交换机连接。

下面将基于图2a所示的网络数据交互系统,来对本发明的网关容灾方法进一步描述。

如图2b所示,一种网关容灾方法,具体流程可以如下:

201、每个网关设备分别向网关设备集群内其他网关设备、第一网络交换机、第二网络交换机发送心跳包。

其中,第一网络可以为外网、第二网络可以为内网,第一网络交换机可以为外网接入交换机、第二网络交换机可以为内网接入交换机。

实际应用中,网关设备可以通过开源软件来实现向第一网络交换机、第二网络交换机发送心跳包,如通过quagga向交换机发送心跳包。

其中,quagga还可以实现ospf动态路由协议,用于发布配置在网关设备上的第一网络出口地址、第二网络入口地址的路由,如发布配置在网关设备上的tvsvip、tsvvip的路由。

例如,quagga模块通过ospf协议把配置在本地ld上的vip的路由发布出去,当该ld发生故障时,quagga会停止发送心跳包,ospf协议保证故障ld在10s内被剔除集群,这样从内网接入交换机进来的流量就会切到集群内其它的ld上。

实际应用中,网关设备还可以通过地址管理模块来向其他网关设备发送心跳包,如可以通过lip_manager来实现向其他网关设备发送心跳包。

202、对于每个网关设备,当在预设时间段内未接到其他网关设备发送的心跳包时,确定其他网关设备发生故障。

由于当某个网关设备发送故障时,该网关设备会停止向其他网关设备发送心跳包,因此,如果在预设时间段内未接收到某个网关设备发送的心跳包,那么可以认为该网关设备发生故障。

比如,网关设备中lip_manager管理配置在ld上的tvsvip,定时发送组播包心跳,当一台ld停止发送该心跳包时,10s内会被剔除集群,此时,该ld上的tvsvip会被其它ld接管。

203、网关设备获取故障网关设备上的第一网络出口地址,并当网关设备正常时确定自己以及其他正常网关设备需要接管的目标第一网络出口地址。

其中,第一网络出口地址为第一网络的出口地址,比如,当第一网络为外网时,该第一网络出口地址可以网关外网地址,如nat网关外网出口ip(即tvsvip)。

如果某个网关设备发生故障,其他正常网关设备需要接管该故障网关设备的出口地址,那么就需要获取故障网关设备上配置的第一网络出口地址,然后,将故障网关设备上配置的第一网络出口地址分配给集群内正常的网关设备接管。

比如,当故障网关设备上配置的包括多个tvsvip,可以将多个第一网络出口地址如tvsvip分配给集群内正常网关设备接管。如,将tvsvip1和tvsvip4分配给正常网关设备1接管、将tvsvip2分配给自己接管、将tvsvip3分配给正常网关设备3接管等等。

其中,具体的分配方式可以根据实际需求设定,为保证集群内网关设备的分配方案一致,可以使得集群内每个网关设备采用相同的分配方式。

204、网关设备在本地配置目标第一网络出口地址,以及向第一网络交换机发布该目标第一网络出口地址的路由,向第二网络交换机发布故障网关设备上的目标第二网络入口地址的路由。

由于第一网络出口地址如tvsvip一般配置在一台网关设备上,集群内各网关设备上的第一网络出口地址不相同,因此,在某台网关设备发生故障时,如果要接管故障网关设备上的业务,即在接管设备本地配置该故障网关设备上的第一网络出口地址。而第二网络入口地址如tsvvip一般配置在设备集群内每台网关设备上,集群内每台网关设备上的第二网络入口地址均相同,因此,无需再配置。

实际应用中,网关设备可以通过quagga等开源软件来发布路由。

其中,本实施例可以采用ospf(openshortestpathfirst,开放式最短路径优先)动态路由协议向交换机发布第一网络出口地址(如tvsvipj)的路由。

比如,网关设备需要接管的目标第一网络出口地址为tvsvip1,该网关设备可以在本地配置tvsvip1,然后,向第一网络交换机发布tvsvip1的路由。

205、对于第一网络交换机,当第一网络交换机在预设时间段内未接到集群内网关设备发送的心跳包时,确定该网络设备发生故障。

206、第一网络交换机基于网关设备发布的目标第一网络出口地址的路由,向相应的正常网关设备发送第一网络的流量数据包。

该流量数据包可以携带源地址、源端口、协议信息、目的地址、目的端口等,该目的地址可以为目标第一网络出口地址。

第一网络交换机在接收到流量数据包后,可以将流量数据包发送给接管了流量数据包携带的目标第一网络出口地址的其他正常网关设备。

比如,流量数据包携带tvsvip1时,第一网络交换机基于tvsvip1的路由将该流量数据包发送给接管了该tvsvip1的正常网关设备。

207、正常网关设备基于本地的连接信息列表向相应的第二网络交换机转发该流量数据包。

其中,连接信息可以为连接对应的端口信息、协议信息、地址信息,比如,可以包括连接对应的源地址、源端口、协议信息、目的地址、目的端口。

例如,当第一网络为外网、第二网络为内网时,在外网服务器(server)返回流量数据给内网服务器(rs)时,该连接信息可以包括:连接对应的五元组(server_ip,server_port,proto,vip,vport),server_ip为外网服务器的地址即源地址,server_port为外网服务的端口即源端口,proto为协议数据,vip为目的地址,vport为目的端口。

在内网服务器(rs)访问外网服务器(server)时,该连接信息可包括:连接对应的五元组(rs_ip,rs_port,proto,server_ip,server_port),该rs_ip为内网服务器的地址即源地址,rs_port为内网服务器的端口即端口,proto为协议数据,server_ip为外网服务器的地址即目的地址,server_port为外网服务的端口即目的端口。

该连接可以为长连接,该连接指的是从建立完成到现在的存活时间超过预设时间的连接,如从建立完成到现在的存活时间超过5秒的连接。

可选地,为能够使得正常网关设备可以实现故障网关设备的数据转发,本实施例可以同步集群内网关设备的连接信息。

比如,对于每个网关设备可以向该其他网关设备发送该网关设备上的连接信息,并接收该其他网关设备发送的连接信息,根据该其他网关设备发送的连接信息更新本地的连接信息列表。这样在经过连接信息同步之后,集群内网关设备本地的连接信息列表可以保持一致,在某个网关设备故障时,可以由其他网关设备正常转发数据,提高了网关服务的可用性和稳定性。

208、对于第二网络交换机,当第二网络交换机在预设时间段内未接到集群内网关设备发送的心跳包时,确定该网络设备发生故障。

209、第二网络交换机可以基于网关设备发布的故障网关设备上第二网络入口地址的路由,向相应的正常网关设备发送第二网络的流量数据包。

比如,第二网络交换机可以基于正常网关设备发布的tsvvip2路由,将第二网络流量数据包发送给相应的正常网关设备。

210、正常网关设备向相应的第一网络交换机发送第二网络的流量数据包。

其中,第二网络的流量数据包可以携带源地址、源端口、协议信息、目的地址、目的端口等。如,当第一网络为外网、第二网络为内网,在内网服务器(rs)访问外网服务器(server)时,内网服务器向相应的正常网关设备发送流量数据,该流量数据携带五元组(rs_ip,rs_port,proto,server_ip,server_port),该正常网关设备可以将rs_ip,rs_port替换成vip,vport,然后,基于vip,vport、server_ip,server_port查询数据转发的连接,并通过查询到的连接将该数据发送给相应的外网交换机,从而达到相应的外网服务器(server)。

参考图2c,基于上述描述,本实施例还提供了另一种网络数据交互系统,该系统包括nat网关集群、外网接入交换机、内网接入交换机,nat网关集群位于外网与内网之间,并分别连接外网与内网。nat网关集群包括多个提供nat网关功能的服务器,即ld。其中,ld包括:quagga模块、连接同步模块、地址管理模块lip_manager。具体如下:

quagga模块,用于向外网接入交换机、内网接入交换机发送心跳包,以及实现一款开源软件,实现了ospf动态路由协议,用于发布配置在ld上的vip的路由,比如通过ospf动态路由协议发布ld上的tvsvip、tsvvip的路由。

当该ld发生故障时,quagga会停止发送心跳包,ospf协议保证故障ld在10s内被剔除集群,这样从内网接入交换机进来的流量就会切到集群内其它的ld上。

连接同步模块,用于将网关设备本地的连接信息发送给其他网关设备,以同步集群内各网关设备上的连接信息,这样可以保证在某个网关设备故障时,其他正常网关设备可以接管该故障网关设备的业务。

地址管理模块lip_manager,用于向集群内其他网关设备发送心跳包,比如,lip_manager模块会定时发送组播包,保持存活的状态,当ld发生故障时,该模块会停止发送组播包,保证10s内被剔除集群,此时该ld上的tvsvip会被集群内某个正常的ld接管,这样从外网接入交换机进来的流量就会切到接管了该vip的ld上。比如,可以分配该故障ld上的tvsvip给集群内正常的ld接管。

连接同步模块,用于实现集群内ld的连接信息同步,比如,可以实现集群内ld的长连接信息同步。该连接同步模块可以定期的将ld上的长连接用组播包同步出去,这样,经过一定的时间,使得整个nat集群内所有ld上的长连接信息基本上趋于稳定,保持一致。

外网接入交换机,用于当在预设时间段内未接到ld发送的心跳包时,确定该ld发生故障,基于正常ld发布的故障ld上的tvsvip的路由,向相应的正常ld发送外网流量数据包,由正常ld基于本地连接信息列表将该外网流量数据包转发给相应的内网接入交换机,从而实现当集群内ld故障时,可以采用其他正常ld替换故障ld正常转发流量数据。

内网接入交换机,用于当在预设时间段内未接到ld发送的心跳包时,确定该ld发生故障,基于正常ld发布的故障ld上的tsvvip的路由,向相应的正常ld发送内网流量数据包,有正常ld将该内网流量数据包转发至相应的外网接入交换机,从而实现当集群内ld故障时,可以采用其他正常ld替换故障ld正常转发流量数据。

由上可知,本发明实施例可以通过网关设备集群内网关设备相互发送心跳包,来检测集群内的故障网关设备,并且在检测到故障网关设备时可以由集群内其他正常网关设备接管故障网关设备上的数据转发,解决了因网关设备故障导致的服务不用的问题,大大地降低了业务的损失、提高容灾切换的效率、网关服务的可用性和稳定性。

实施例三、

为了更好地实施以上方法,本发明实施例还提供网关容灾装置,适用于网关设备集群内的网关设备,如图3a所示,该网关容灾装置包括:心跳发送单元301、心跳接收单元302、故障确定单元303、地址获取单元304和分配单元305,如下:

(1)心跳发送单元301;

心跳发送单元301,用于向网关设备集群内其他网关设备以及交换机发送心跳包。

本实施例中,网关设备可以包括提供nat(networkaddresstranslation,网络地址转换)网关功能的设备等,比如,ld(提供nat网关功能的服务器)等。

其中,发送心跳包的方式可以包括组播发送方式等,比如,心跳发送单元301可以以组播方式向网管设备集群内其他网关设备或者交换机发送心跳包,此时,心跳包即为组播包。

其中,其他网关设备可以为网关设备集群内除自身以外的网关设备。

该交换机可以包括:网关设备连接的网络中的交换机,比如,网关设备连接的网络分别为第一网络、第二网络,此时,交换机可以包括第一网络和/或第二网络中的交换机。

该第一网络可以广域网(wan),如公网、外网等,相应的,第二网络可以为局域网(lan),如私网、内网等。

(2)心跳接收单元302;

心跳接收单元302,用于接收该其他网关设备发送的心跳包。

(3)故障确定单元303;

故障确定单元303,用于当在预设时间段内未接到该其他网关设备发送的心跳包时,确定该其他网关设备发生故障。

由于当某个网关设备发送故障时,该网关设备会停止向其他网关设备发送心跳包,因此,如果在预设时间段内未接收到某个网关设备发送的心跳包,那么可以认为该网关设备发生故障。

其中,预设时间段可以根据实际需求设定,如1分钟、2分钟等等.

(4)地址获取单元304;

地址获取单元304,用于获取该其他网关设备上配置的第一网络出口地址。

其中,第一网络出口地址为网关设备集群连接的第一网络的出口地址,比如,当第一网络为外网时,该第一网络出口地址可以网关外网地址,如nat网关外网出口ip(即tvsvip)。

可选地,第一网络出口地址可以只配置在一台网关设备中,也即集群内每个网关设备在本地配置各自的第一网络出口地址,如tvsvip。

(5)、分配单元305;

分配单元305,用于将该第一网络出口地址分配给该网关设备集群中的正常网关设备接管。

其中,具体的分配方式可以根据实际需求设定,为保证集群内网关设备的分配方案一致,可以使得集群内每个网关设备采用相同的分配方式。

比如,参考图3b,该分配单元305可以包括:

地址确定子单元3051,用于当该网关设备为正常网关设备时,从该第一网络出口地址中,确定该网关设备需要接管的目标第一网络出口地址;

配置子单元3052,用于在该网关设备本地配置该目标第一网络出口地址;

路由发布子单元3053,用于向第一网络交换机发布该目标第一网络出口地址的路由。

可选地,在第一网络交换机确定其所属的网关设备发生故障时,可以将流量数据发送给接管了故障网关设备的第一网络出口地址(如tvsvip)的网关设备,通过出口地址接管网关设备将流量数据转换给相应的第二网络交换机。参考图3c,本实施例还可以包括:

数据接收单元306,用于在该路由发布子单元3053分配单元发布目标第一网络出口地址的路由之后,接收该第一网络交换机基于该路由发送的流量数据;

第一数据转发单元307,用于获取本地用于数据转发的连接信息列表,并基于本地的连接信息列表将该流量数据转发给相应的第二网络交换机。

其中,连接信息可以为连接对应的端口信息、协议信息、地址信息,比如,可以包括连接对应的源地址、源端口、协议信息、目的地址、目的端口。该连接可以为长连接,该连接指的是从建立完成到现在的存活时间超过预设时间的连接,如从建立完成到现在的存活时间超过5秒的连接。

可选地,为能够使得正常网关设备可以实现故障网关设备的数据转发,本实施例可以同步集群内网关设备的连接信息,参考图3d,本实施例网关容灾装置还可以包括:连接同步单元308,用于向该其他网关设备发送该网关设备上的连接信息,并接收该其他网关设备发送的连接信息;根据该其他网关设备发送的连接信息更新本地的连接信息列表。

可选地,参考图3e,本实施例网关容灾装置还可以包括:

路由发布单元309,用于在故障确定单元确定该其他网关设备发生故障之后,向第二网络交换机发布第二网络入口地址的路由,该第二网络交换机包括故障网关设备下的第二网络交换机,该第二网络入口地址包括故障网关设备上的第二网络入口地址;

第二数据转发单元310,用于接收该第二网络交换机基于该路由发送的流量数据,将该第二网络机发送的流量数据转发给相应的第一网络交换机。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

该网关容灾装置具体可以集成网关设备,该网关设备可以为提供网关功能的服务器等。

由上可知,本发明实施例采用心跳发送单元301向网关设备集群内其他网关设备以及交换机发送心跳包,并由心跳接收单元302接收该其他网关设备发送的心跳包,当在预设时间段内未接到该其他网关设备发送的心跳包时,由故障确定单元303确定该其他网关设备发生故障,由地址获取单元304获取该其他网关设备上配置的第一网络出口地址,由分配单元305将该第一网络出口地址分配给该网关设备集群中的正常网关设备接管;该方案可以通过网关设备集群内网关设备相互发送心跳包,来检测集群内的故障网关设备,并且在检测到故障网关设备时可以由集群内其他正常网关设备接管故障网关设备上的第一网络出口地址,解决了因网关设备故障导致的服务不用的问题,大大地降低了业务的损失。

实施例四、

为了更好地实施以上方法,本发明实施例还提供了另一种网关容灾装置,适用于网络交换机,如第一网络交换机、第二网关交换机,如图4所示,该网关容灾装置包括:

心跳接收单元401,用于接收网关设备集群中目标网关设备发送的心跳包;

故障确定单元402,用于当在预设时间段内未接到目标网关设备发送的心跳包时,确定该目标网关设备发生故障;

数据发送单元403,用于基于其他网关设备发布的地址的路由,向该其他网关设备发送流量数据,以便该其他网关设备将该流量数据转发至相应的网络交换机;该地址包括该目标网关设备上的第一网络出口地址、或者第二网入口地址。

比如,数据发送单元403,可以用于基于其他网关设备发布的第一网络出口地址的路由,向该其他网关设备发送流量数据包,该第一网络出口地址为目标网关设备即故障网关设备上的第一网络出口地址,如tvsvip。

又比如,数据发送单元403还可以用于基于其他网关设备发布的第二网络入口地址的路由,向该其他网关设备发送流量数据包,该第二网络入口地址为目标网关设备即故障网关设备上的第二网络入口地址,如tsvvip。

其中,流量数据可以携带源地址、源端口、协议信息、目的地址、目的端口等,比如该目的地址可以为目标第一网络出口地址。

比如,当第一网络为外网、第二网络为内网时,在内网服务器(rs)访问外网服务器(server)时,内网服务器向相应的正常网关设备发送流量数据,该流量数据携带五元组(rs_ip,rs_port,proto,server_ip,server_port)。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

该网关容灾装置具体可以集成网络交换机中,该网络交换机可以为内网接入交换机、外网接入交换机等。

由上可知,本发明实施例通过网关设备集群内网关设备向交换机发送心跳包,使得交换机可以检测集群内的故障网关设备,并且在交换机检测到故障网关设备时可以通过集群内其他正常网关设备进行数据转发,解决了因网关设备故障导致的服务不用的问题,大大地降低了业务的损失、提高容灾切换的效率、网关服务的可用性和稳定性。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

以上对本发明实施例所提供的一种网关容灾方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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