高可用多负载的VPN数据处理方法、系统、设备及介质转让专利

申请号 : CN202310121812.0

文献号 : CN115834361B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 魏达祥

申请人 : 广州钛动科技股份有限公司

摘要 :

本申请涉及高可用多负载的VPN数据处理方法、系统、设备及介质,其包括实时获取目标用户节点发送至Keepalived的数据访问请求;通过VPN服务器预设的检验机制对数据访问请求进行检验,并根据检验结果,计算符合检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值;根据数据传输负载值对VPN服务器进行加权轮询处理,得到所有VPN服务器的性能评估结果;根据性能评估结果,将目标用户节点与性能评估结果最优的VPN服务器进行链接,以便于对VPN服务器进行多节点分流传输。本申请具有降低大用户量的高负载数据访问压力对VPN服务器造成的负载故障影响,提高VPN服务器的流量可控性的效果。

权利要求 :

1.一种高可用多负载的VPN数据处理方法,其特征在于,所述高可用多负载的VPN数据处理方法包括:实时获取目标用户节点发送至Keepalived的数据访问请求;

将VPN服务器的每个IP地址分别与内网的每个网段进行路由连接,得到与内网连通的初始化IP地址池;

获取初始化IP地址池中的每个IP地址与内网各网段的路由时间;

根据所述路由时间,对每个IP地址进行流量控制策略匹配,得到符合所述初始化IP地址池的流量控制策略;

对目标用户节点进行流量控制策略匹配处理,根据匹配结果对目标用户节点的数据传输流量进行调节,得到与所述目标用户节点匹配程度最优的数据传输流量;

通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值;

根据所述数据传输负载值对VPN服务器进行加权轮询处理,得到所有VPN服务器的性能评估结果;

根据所述性能评估结果,将所述目标用户节点与性能评估结果最优的VPN服务器进行链接,以便于对VPN服务器进行多节点分流传输。

2.根据权利要求1所述的高可用多负载的VPN数据处理方法,其特征在于,所述通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值,具体包括:实时接收企业人员信息的用户名单数据,并对所述用户名单数据进行加密计算,得到符合用户检验机制的认证标识码;

获取所述数据访问请求中携带的用户唯一标识码;

将所述用户唯一标识码输入至VPN服务器与所述认证标识码进行比对,得到标识码比对结果;

根据所述标识码比对结果,将比对一致的目标用户节点的所述数据访问请求进行数据连接处理。

3.根据权利要求2所述的高可用多负载的VPN数据处理方法,其特征在于,所述通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值,还包括:获取符合所述检验机制的目标用户节点的数据传输带宽值;

根据预设的VPN负载分担规则,计算每个VPN服务器对所述数据传输带宽值的数据处理时间;

根据所述数据处理时间,调用Keepalived将所述数据处理时间最优的VPN服务器与目标用户节点进行链接,以便于对目标用户节点的数据传输进行分流处理。

4.根据权利要求1所述的高可用多负载的VPN数据处理方法,其特征在于,所述根据所述性能评估结果,将所述目标用户节点与性能评估结果最优的VPN服务器进行链接,以便于对VPN服务器进行多节点分流传输,具体包括:根据所述性能评估结果,推选出与所述目标用户节点适配程度最优的VPN服务器作为主VPN服务器;

将所述目标用户节点与所述主VPN服务器进行链接,并对所述目标用户节点的所述数据访问请求进行处理;

根据所述数据访问请求,查找与目标用户节点的权限相适配的目标内网网段,并接收目标内网网段的反馈数据;

根据预设的VPN数据传输规则,将所述反馈数据同步推送至次于所述主VPN服务器的从属VPN服务器,以便于减少单点故障造成的数据不同步。

5.根据权利要求4所述的高可用多负载的VPN数据处理方法,其特征在于,所述根据预设的VPN数据传输规则,将所述反馈数据同步推送至次于所述主VPN服务器的从属VPN服务器,以便于减少单点故障造成的数据不同步,还包括:实时获取目标用户节点与所述主VPN服务器的数据传输状态;

当所述数据传输状态出现故障时,对所有的从属VPN服务器进行权限值计算,并推选出权限值最优的从属VPN服务器作为主VPN服务器;

根据目标用户节点的唯一IP地址,构建目标用户节点与主VPN服务器之间的数据传输通道;

通过所述数据传输通道将内网反馈数据同步发送至所述目标用户节点,以便于减少VPN服务器单点故障时造成的数据不同步。

6.一种高可用多负载的VPN数据处理系统,其特征在于,所述高可用多负载的VPN数据处理系统包括:数据获取模块,用于实时获取目标用户节点发送至Keepalived的数据访问请求;

路由处理模块,用于将VPN服务器的每个IP地址分别与内网的每个网段进行路由连接,得到与内网连通的初始化IP地址池;

路由时间获取模块,用于获取初始化IP地址池中的每个IP地址与内网各网段的路由时间;

流量控制策略匹配模块,用于根据所述路由时间,对每个IP地址进行流量控制策略匹配,得到符合所述初始化IP地址池的流量控制策略;

流量调节模块,用于对目标用户节点进行流量控制策略匹配处理,根据匹配结果对目标用户节点的数据传输流量进行调节,得到与所述目标用户节点匹配程度最优的数据传输流量;

数据检验模块,用于通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值;

数据处理模块,用于根据所述数据传输负载值对VPN服务器进行加权轮询处理,得到所有VPN服务器的性能评估结果;

数据分流模块,用于根据所述性能评估结果,将所述目标用户节点与性能评估结果最优的VPN服务器进行链接,以便于对VPN服务器进行多节点分流传输。

7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至

5任一项所述高可用多负载的VPN数据处理方法的步骤。

8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述高可用多负载的VPN数据处理方法的步骤。

说明书 :

高可用多负载的VPN数据处理方法、系统、设备及介质

技术领域

[0001] 本发明涉及VPN数据处理的技术领域,尤其是涉及高可用多负载的VPN数据处理方法、系统、设备及介质。

背景技术

[0002] 目前,企业员工在外网环境下想要访问企业内部服务器资源时,往往通过在内网架设专用VPN服务器,使员工通过VPN服务器实现远程访问企业内网资源,从而提高企业人员远程访问内网资源的便利性。
[0003] 现有的VPN服务器通常是采用单节点的搭建方式,在VPN服务器与每一个企业用户之间建立直连,用户通过对应的插件就可以进行VPN认定,并进入VPN服务器数据传输通道访问企业内部数据,但是对于大用户量的企业内部群体来说,当超过VPN可负载用户数量阈值的用户群体同时访问企业内部资源时,容易导致VPN服务器传输性能瓶颈,甚至引起VPN服务器的单点负载故障等,影响VPN服务器的使用性能。
[0004] 针对上述中的相关技术,发明人认为存在有大用户量的高负载数据访问压力容易引起单节点VPN的负载故障的缺陷。

发明内容

[0005] 为了降低大用户量的高负载数据访问压力对VPN服务器造成的负载故障影响,提高VPN服务器的流量可控性,本申请提供高可用多负载的VPN数据处理方法、系统、设备及介质。
[0006] 本申请的上述发明目的一是通过以下技术方案得以实现的:
[0007] 提供一种高可用多负载的VPN数据处理方法,所述高可用多负载的VPN数据处理方法包括:
[0008] 实时获取目标用户节点发送至Keepalived的数据访问请求;
[0009] 通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值;
[0010] 根据所述数据传输负载值对VPN服务器进行加权轮询处理,得到所有VPN服务器的性能评估结果;
[0011] 根据所述性能评估结果,将所述目标用户节点与性能评估结果最优的VPN服务器进行链接,以便于对VPN服务器进行多节点分流传输。
[0012] 通过采用上述技术方案,由于单节点搭建的VPN服务器在处理高负载数据访问时,容易出现单点故障,影响用户对内网数据的访问,因此,通过OPENVPN接收目标用户节点的数据访问请求,并通过预设的检验机制对数据访问请求进行检验,以便于判断目标用户节点是否为企业允许访问的人员,并计算符合检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值,以便于获取通过VPN服务器访问内网的数据传输压力,进而动态调整VPN服务器的数据传输流量,根据数据传输负载值对VPN服务器进行加权轮询处理,根据轮询结果对所有VPN服务器的性能进行评估,根据性能评估结果,推选出最优的VPN服务器对目标用户节点进行数据传输,根据目标用户节点的实际数据传输流量需求,动态挑选性能评估结果最优的VPN服务器来调节目标用户节点的数据传输流量,从而使VPN服务器始终保持在最佳的工作状态,减少高负载数据访问压力对VPN服务器造成的负载故障影响,根据目标用户节点实际传输需求动态调整VPN的数据传输流量,从而提高VPN服务器的流量可控性。
[0013] 本申请在一较佳示例中可以进一步配置为:所述通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值,具体包括:
[0014] 实时接收企业人员信息的用户名单数据,并对所述用户名单数据进行加密计算,得到符合用户检验机制的认证标识码;
[0015] 获取所述数据访问请求中携带的用户唯一标识码;
[0016] 将所述用户唯一标识码输入至VPN服务器与所述认证标识码进行比对,得到标识码比对结果;
[0017] 根据所述标识码比对结果,将比对一致的目标用户节点的所述数据访问请求进行数据连接处理。
[0018] 通过采用上述技术方案,接收企业人员信息的用户名单数据,并通过OPENVPN进行加密计算,得到符合用户检验机制的认证标识码,将用户名单数据以及对应的认证标识码进行关联存储,并保存至LDAP数据库中,在接收到用户访问请求时,通过对应的认证字段识别获取用户唯一标识码,并将用户唯一标识码输入至VPN服务器中与认证标识码进行比对,根据标识码比对结果判断目标用户节点是否还在企业用户名单中,进而获取目标用户节点对内网的访问权限数据,从而将比对结果一致,即目标用户节点属于企业内网访问权限范围内的数据访问请求进行处理,通过Keepalived构建目标用户节点与性能评估结果最优的VPN服务器之间的数据传输链路,从而提高对非企业人员的排查便捷性,以及减少企业用户越权访问不属于自己权限范围内的内网数据的概率,提高VPN服务器的数据访问安全性。
[0019] 本申请在一较佳示例中可以进一步配置为:所述通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值,还包括:
[0020] 获取符合所述检验机制的目标用户节点的数据传输带宽值;
[0021] 根据预设的VPN负载分担规则,计算每个VPN服务器对所述数据传输带宽值的数据处理时间;
[0022] 根据所述数据处理时间,调用Keepalived将所述数据处理时间最优的VPN服务器与目标用户节点进行链接,以便于对目标用户节点的数据传输进行分流处理。
[0023] 通过采用上述技术方案,根据VPN服务器对数据访问请求的处理,获取目标用户节点需要占用的VPN服务器的数据传输带宽值,并根据预设的VPN负载分担规则,计算VPN服务器对目标用户节点的数据传输带宽值的数据处理时间,有助于根据数据处理时间快速推选出数据传输性能最优的VPN服务器,调用Keepalived将数据处理时间最优,也就是性能评估结果最优的VPN服务器与目标用户节点进行链接,从而便于根据目标用户节点进行数据传输的实际数据带宽来动态选择最佳的VPN服务器进行链接,从而达到根据目标用户节点的实际数据传输需求动态分流的效果,提高VPN服务器与目标用户节点实际带宽需求之间的适配性。
[0024] 本申请在一较佳示例中可以进一步配置为:在所述实时获取目标用户节点发送至Keepalived的数据访问请求之后,且在通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值之前,还包括:
[0025] 将VPN服务器的每个IP地址分别与内网的每个网段进行路由连接,得到与内网连通的初始化IP地址池;
[0026] 获取初始化IP地址池中的每个IP地址与内网各网段的路由时间;
[0027] 根据所述路由时间,对每个IP地址进行流量控制策略匹配,得到符合所述初始化IP地址池的流量控制策略;
[0028] 对目标用户节点进行流量控制策略匹配处理,根据匹配结果对目标用户节点的数据传输流量进行调节,得到与所述目标用户节点匹配程度最优的数据传输流量。
[0029] 通过采用上述技术方案,在计算目标用户节点的数据传输负载值之前,先对VPN服务器进行初始化,将VPN服务器的每个IP地址根据权限大小分别与内网的每个网段进行路由连接,根据路由连接结果判断每个IP地址与对应访问权限的内网网段之间的数据传输链路是否正常,从而得到与内网联通的初始化IP地址池,有助于实时检验VPN服务器与内网之间的访问状态,减少访问链路不连通带来的访问误差影响,根据每个IP地址与对应访问权限的内网网段之间的路由时间,判断每个IP地址获取到内网反馈数据的实际流量需求,并针对性地对每个IP地址进行流量控制策略匹配,从而得到符合初始化IP地址池的流量控制策略,在接收到目标用户节点的数据访问请求后,根据目标用户节点的IP地址,将已初始化的流量控制策略与目标用户节点进行匹配,并通过流量控制策略对目标用户节点的数据传输流量进行精准调节,从而达到精准调控VPN服务器的数据传输流量的目的,提高VPN服务器的数据传输流量分配的精准度。
[0030] 本申请在一较佳示例中可以进一步配置为:所述根据所述性能评估结果,将所述目标用户节点与性能评估结果最优的VPN服务器进行链接,以便于对VPN服务器进行多节点分流传输,具体包括:
[0031] 根据所述性能评估结果,推选出与所述目标用户节点适配程度最优的VPN服务器作为主VPN服务器;
[0032] 将所述目标用户节点与所述主VPN服务器进行链接,并对所述目标用户节点的所述数据访问请求进行处理;
[0033] 根据所述数据访问请求,查找与目标用户节点的权限相适配的目标内网网段,并接收目标内网网段的反馈数据;
[0034] 根据预设的VPN数据传输规则,将所述反馈数据同步推送至次于所述主VPN服务器的从属VPN服务器,以便于减少单点故障造成的数据不同步。
[0035] 通过采用上述技术方案,根据对所有VPN服务器的性能评估结果,通过Keepalived推选出与目标用户节点适配程度最优的VPN服务器作为主VPN服务器,有助于根据实际数据传输需求选择最合适的VPN服务器,减少单节点VPN服务器同时处理高负载用户访问数据的运行压力,通过Keepalived构建目标用户节点与主VPN服务器之间的链接通道,并调用主VPN服务器对目标用户节点的数据访问请求进行处理,通过主VPN服务器查找与目标用户节点的访问权限相适配的目标内网网段,有助于减少目标用户节点的越权访问情况,提高企业内网的数据访问安全性,根据预设的VPN数据传输规则,Keepalived在将接收到的反馈数据发送至主VPN服务器时,将反馈数据同步推送至次于主VPN服务器的从属VPN服务器上,有助于减少主VPN服务器单点故障所造成的数据不同步的情况,从而提高VPN服务器的数据传输稳定性。
[0036] 本申请在一较佳示例中可以进一步配置为:所述根据预设的VPN数据传输规则,将所述反馈数据同步推送至次于所述主VPN服务器的从属VPN服务器,以便于减少单点故障造成的数据不同步,还包括:
[0037] 实时获取目标用户节点与所述主VPN服务器的数据传输状态;
[0038] 当所述数据传输状态出现故障时,对所有的从属VPN服务器进行权限值计算,并推选出权限值最优的从属VPN服务器作为主VPN服务器;
[0039] 根据目标用户节点的唯一IP地址,构建目标用户节点与主VPN服务器之间的数据传输通道;
[0040] 通过所述数据传输通道将内网反馈数据同步发送至所述目标用户节点,以便于减少VPN服务器单点故障时造成的数据不同步。
[0041] 通过采用上述技术方案,通过Keepalived的心跳检测实时监测目标用户节点与主VPN服务器之间的数据传输状态,当数据传输状态出现故障时,调用Keepalived对所有的从属VPN服务器进行权限值重新计算,并推选出权限值最优的从属VPN服务器作为主VPN服务器,来接管已故障的主VPN服务器的数据传输工作,减少主VPN服务器故障所引起的数据传输时延,并根据目标用户节点的唯一IP地址,通过Keepalived来构建目标用户节点与从属VPN服务器中的主VPN服务器之间的数据传输通道,并通过主VPN服务器来处理目标用户节点的数据访问请求,在将内网反馈数据发送至目标用户节点的同时,同步推送至从属VPN节点中,从而提高Keepalived框架中的所有VPN服务器的数据同步性,减少VPN服务器单点故障所带来的数据传输时延,通过Keepalived对主VPN服务器负载情况的实时监测来判断主VPN服务器是否出现故障,从而及时切换至最优从属VPN服务器进行数据传输,减少主VPN服务器故障时的网络波动,提高Keepalived框架的数据传输稳定性。
[0042] 本申请的上述发明目的二是通过以下技术方案得以实现的:
[0043] 提供一种高可用多负载的VPN数据处理系统,所述高可用多负载的VPN数据处理系统包括:
[0044] 数据获取模块,用于实时获取目标用户节点发送至Keepalived的数据访问请求;
[0045] 数据检验模块,用于通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值;
[0046] 数据处理模块,用于根据所述数据传输负载值对VPN服务器进行加权轮询处理,得到所有VPN服务器的性能评估结果;
[0047] 数据分流模块,用于根据所述性能评估结果,将所述目标用户节点与性能评估结果最优的VPN服务器进行链接,以便于对VPN服务器进行多节点分流传输。
[0048] 通过采用上述技术方案,由于单节点搭建的VPN服务器在处理高负载数据访问时,容易出现单点故障,影响用户对内网数据的访问,因此,通过OPENVPN接收目标用户节点的数据访问请求,并通过预设的检验机制对数据访问请求进行检验,以便于判断目标用户节点是否为企业允许访问的人员,并计算符合检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值,以便于获取通过VPN服务器访问内网的数据传输压力,进而动态调整VPN服务器的数据传输流量,根据数据传输负载值对VPN服务器进行加权轮询处理,根据轮询结果对所有VPN服务器的性能进行评估,根据性能评估结果,推选出最优的VPN服务器对目标用户节点进行数据传输,根据目标用户节点的实际数据传输流量需求,动态挑选性能评估结果最优的VPN服务器来调节目标用户节点的数据传输流量,从而使VPN服务器始终保持在最佳的工作状态,减少高负载数据访问压力对VPN服务器造成的负载故障影响,根据目标用户节点实际传输需求动态调整VPN的数据传输流量,从而提高VPN服务器的流量可控性。
[0049] 本申请在一较佳示例中可以进一步配置为:在所述实时获取目标用户节点发送至Keepalived的数据访问请求之后,且在通过VPN服务器预设的检验机制对所述数据访问请求进行检验,并根据检验结果,计算符合所述检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值之前,还包括:
[0050] 路由处理模块,用于将VPN服务器的每个IP地址分别与内网的每个网段进行路由连接,得到与内网连通的初始化IP地址池;
[0051] 路由时间获取模块,用于获取初始化IP地址池中的每个IP地址与内网各网段的路由时间;
[0052] 流量控制策略匹配模块,用于根据所述路由时间,对每个IP地址进行流量控制策略匹配,得到符合所述初始化IP地址池的流量控制策略;
[0053] 流量调节模块,用于对目标用户节点进行流量控制策略匹配处理,根据匹配结果对目标用户节点的数据传输流量进行调节,得到与所述目标用户节点匹配程度最优的数据传输流量。
[0054] 通过采用上述技术方案,在计算目标用户节点的数据传输负载值之前,先对VPN服务器进行初始化,将VPN服务器的每个IP地址根据权限大小分别与内网的每个网段进行路由连接,根据路由连接结果判断每个IP地址与对应访问权限的内网网段之间的数据传输链路是否正常,从而得到与内网联通的初始化IP地址池,有助于实时检验VPN服务器与内网之间的访问状态,减少访问链路不连通带来的访问误差影响,根据每个IP地址与对应访问权限的内网网段之间的路由时间,判断每个IP地址获取到内网反馈数据的实际流量需求,并针对性地对每个IP地址进行流量控制策略匹配,从而得到符合初始化IP地址池的流量控制策略,在接收到目标用户节点的数据访问请求后,根据目标用户节点的IP地址,将已初始化的流量控制策略与目标用户节点进行匹配,并通过流量控制策略对目标用户节点的数据传输流量进行精准调节,从而达到精准调控VPN服务器的数据传输流量的目的,提高VPN服务器的数据传输流量分配的精准度。
[0055] 本申请的上述目的三是通过以下技术方案得以实现的:
[0056] 一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述高可用多负载的VPN数据处理方法的步骤。
[0057] 本申请的上述目的四是通过以下技术方案得以实现的:
[0058] 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述高可用多负载的VPN数据处理方法的步骤。
[0059] 综上所述,本申请包括以下至少一种有益技术效果:
[0060] 1、本申请通过OPENVPN搭建目标用户节点与内网各网段之间的数据传输通道,并通过LDAP数据库来验证接入OPENVPN的目标用户节点是否具有企业访问权限,提高VPN服务器对内网的数据访问安全性,并通过Keepalived实时监听OPENVPN的数据传输链路是否出现故障,并在数据传输链路出现故障时,及时切换至备用的从属VPN服务器,从而减少单节点VPN服务器单点故障所带来的数据传输不同步的问题,本申请通过OPENVPN+LDAP+Keepalived搭建的VPN框架来对高负载的数据访问压力进行动态分配,并根据数据访问实际带宽需求精确调节VPN服务器的数据访问流量,提高VPN框架的流量可控性和高可用性;
[0061] 2、通过对所有VPN服务器的性能评估结果,推选出与目标用户节点适配程度最优的VPN服务器作为主VPN服务器,有助于根据实际数据传输需求选择最合适的VPN服务器,减少单节点VPN服务器同时处理高负载用户访问数据的运行压力,通过Keepalived构建目标用户节点与主VPN服务器之间的链接通道,并调用主VPN服务器对目标用户节点的数据访问请求进行处理,通过主VPN服务器查找与目标用户节点的访问权限相适配的目标内网网段,有助于减少目标用户节点的越权访问情况,提高企业内网的数据访问安全性,根据预设的VPN数据传输规则,Keepalived在将接收到的反馈数据发送至主VPN服务器时,将反馈数据同步推送至次于主VPN服务器的从属VPN服务器上,有助于减少主VPN服务器单点故障所造成的数据不同步的情况,从而提高VPN服务器的数据传输稳定性;
[0062] 3、通过Keepalived实时监测目标用户节点与主VPN服务器之间的数据传输状态,当数据传输状态出现故障时,调用Keepalived对所有的从属VPN服务器进行权限值重新计算,并推选出权限值最优的从属VPN服务器作为主VPN服务器,来接管已故障的主VPN服务器的数据传输工作,减少主VPN服务器故障所引起的数据传输时延,并根据目标用户节点的唯一IP地址,通过Keepalived来构建目标用户节点与从属VPN服务器中的主VPN服务器之间的数据传输通道,并通过主VPN服务器来处理目标用户节点的数据访问请求,在将内网反馈数据发送至目标用户节点的同时,同步推送至从属VPN节点中,从而提高Keepalived框架中的所有VPN服务器的数据同步性,减少VPN服务器单点故障所带来的数据传输时延,通过Keepalived对主VPN服务器负载情况的实时监测来判断主VPN服务器是否出现故障,从而及时切换至最优从属VPN服务器进行数据传输,减少主VPN服务器故障时的网络波动,提高Keepalived框架的数据传输稳定。

附图说明

[0063] 图1是本申请一实施例的一种高可用多负载的VPN数据处理方法的实现流程图。
[0064] 图2是本申请一实施例的VPN数据处理方法步骤S10的另一实现流程图。
[0065] 图3是本申请一实施例的VPN数据处理方法步骤S20的实现流程图。
[0066] 图4是本申请一实施例的VPN数据处理方法步骤S20的另一实现流程图。
[0067] 图5是本申请一实施例的VPN数据处理方法步骤S40的实现流程图。
[0068] 图6是本申请一实施例的VPN数据处理方法步骤S404的另一实现流程图。
[0069] 图7是本申请一实施例的一种高可用多负载的VPN数据处理系统的结构示意图。
[0070] 图8是实现高可用多负载的VPN数据处理方法的计算机设备内部结构示意图。实施方式
[0071] 以下结合附图对本申请作进一步详细说明。
[0072] 本申请通过OPENVPN、LDAP和Keepalived共同搭建高可用的VPN框架,通过高可用的VPN框架对大用户量、高负载的企业访问流量进行分流处理,从而动态调配VPN服务器的数据访问流量,减少单节点搭建的VPN服务器的网络性能瓶颈以及单点故障带来的数据传输时延问题,具体的,通过OPENVPN连通多个用户节点与内网各网段,以PAM模块为连接件连接OPENVPN与LDAP数据库,通过LDAP数据库验证接入OPENVPN的用户节点是否具有访问权限,通过Keepalived实时检测VPN服务器的负载情况,当OPENVPN的数据传输通道出现故障时,及时调用Keepalived将主VPN服务器切换至备用的从属VPN服务器,从而减少单点故障带来的数据时延问题,提高VPN服务器的数据传输稳定性。
[0073] 在一实施例中,如图1所示,本申请公开了一种高可用多负载的VPN数据处理方法,具体包括如下步骤:
[0074] S10:实时获取目标用户节点发送至Keepalived的数据访问请求。
[0075] 具体的,当用户通过外网访问VPN服务器时,VPN服务器自动获取用户节点的登录信息并生成数据访问请求发送至Keepalived进行数据验证,通过目标用户节点对OPENVPN的登录访问,构建目标用户节点与Keepalived之间的数据传输通道,并通过数据传输通道获取目标用户节点发送至Keepalived的数据访问请求,其中,数据访问请求中携带有目标用户节点的用户所在地信息、用户个人信息以及用户IP地址信息等。
[0076] 在一实施例中,为了更好地对每个IP地址都准确地进行流量控制,如图2所示,在实时获取目标用户节点发送至Keepalived的数据访问请求之后,且在通过预设的检验机制对数据访问请求进行检验,并根据检验结果,计算符合检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值之前,还包括:
[0077] S101:将VPN服务器的每个IP地址分别与内网的每个网段进行路由连接,得到与内网连通的初始化IP地址池。
[0078]  具体的,根据VPN服务器的每个IP地址的访问权限,将VPN NAT中的每个IP地址分别与内网的各网段进行路由连接,有助于预先检查每个IP地址的内网访问权限以及对内网访问的可行性,从而根据路由结果得到与对应内网相互连通的初始化IP地址池。
[0079]  S102:获取初始化IP地址池中的每个IP地址与内网各网段的路由时间。
[0080] 具体的,在每个IP地址与对应访问权限的内网各网段的路由连接过程中,从IP地址开始尝试路由时计时,并获取到内网网段路由成功的反馈信号时结束计时,统计路由开始至成功路由后的结束时间,得到每个IP地址与内网各网段之间的路由时间,通过路由时间有助于合理地分配符合IP地址路由所需的数据传输流量。
[0081]  S103:根据路由时间,对每个IP地址进行流量控制策略匹配,得到符合初始化IP地址池的流量控制策略。
[0082] 具体的,根据每个IP地址路由至内网的路由时间,对每个IP地址都分别进行流量控制策略匹配,其中,流量控制策略由若干个历史数据传输流量以及对应的路由时间预先训练得到,并存储于OPENVPN中,根据流量控制策略匹配结果,将流量控制策略与对应的初始化IP地址池分别进行关联,得到符合初始化IP地址池的流量控制策略,在不断更新的IP地址池的路由时间中,还可以对预先存储好的流量控制策略进行进一步的优化更新,使流量控制策略更加贴合VPN服务器的实际流量传输需求。
[0083]  S104:对目标用户节点进行流量控制策略匹配处理,根据匹配结果对目标用户节点的数据传输流量进行调节,得到与目标用户节点匹配程度最优的数据传输流量。
[0084] 具体的,根据目标用户节点的IP地址,与初始化IP地址池中的IP地址进行比对检验,并根据比对结果将对应的流量控制策略匹配至目标用户节点,以便于根据对应的流量控制策略调用对应的数据传输流量对目标用户节点进行数据传输,从而得到与目标用户节点匹配程度最优的数据传输流量,达到合理调控目标用户节点的数据传输流量的目的。
[0085]  S20:通过预设的检验机制对数据访问请求进行检验,并根据检验结果,计算符合检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值。
[0086] 具体的,如图3所示,步骤S20包括:
[0087] S201:实时接收企业人员信息的用户名单数据,并对用户名单数据进行加密计算,得到符合用户检验机制的认证标识码。
[0088] 具体的,如将企业微信人员信息拉取到LDAP数据库中,生成携带有企业人员信息的用户名单信息,并根据MD5加密算法对用户名单数据进行计算,得到符合LDAP数据库的用户检验机制的认证标识码,计算参数可以是用户的姓名、身份证编号、企业员工编号等,可以根据实际需要进行设置,认证标识码在同一个企业的用户名单数据中是唯一的。
[0089]  S202:获取数据访问请求中携带的用户唯一标识码。
[0090] 具体的,根据OPENVPN接收到的数据访问请求,识别数据访问请求中的特定认证字段,如用户的姓名、身份证编号、企业员工编号等,从而通过预设的加密算法对特定认证字段进行计算,得到用户唯一标识码,如用户导入用户个人信息文件,输入账号密码就可以登录至OPENVPN进行用户唯一标识码检验,减少传统的证书授权登录步骤。
[0091]  S203:将用户唯一标识码输入至VPN服务器与认证标识码进行比对,得到标识码比对结果。
[0092] 具体的,将用户唯一标识码输入至VPN服务器中,当VPN服务器接收到用户唯一标识码后触发检验机制,将用户唯一标识码与认证标识码进行比对,并根据比对结果判断用户是否属于企业内网可访问人员名单中,从而得到标识码比对结果,有助于实时确认用户对应的企业账号是否可用。
[0093] 需要说明的是,还可以通过标识码比对结果来判断访问用户的用户所在地是否处于可访问范围内,根据标识码比对结果来限制企业内网的访问区域,提高企业内网的数据访问安全性。
[0094]  S204:根据标识码比对结果,将比对一致的数据访问请求进行数据连接处理。
[0095] 具体的,根据标识码比对结果,将比对一致的目标用户节点的数据访问请求进行数据连接处理,如通过OPENVPN将目标用户节点与目标访问内网网段之间建立连接通道,并根据数据访问请求将对应的内网网段的反馈数据发送至目标用户节点。
[0096] 在一实施例中,为了更好地对VPN负载分流进行处理,如图4所示,步骤S20还包括:
[0097] S301:获取符合检验机制的目标用户节点的数据传输带宽值。
[0098] 具体的,如根据符合检验机制的目标用户节点的数据访问请求,获取目标用户节点与VPN服务器之间的数据位宽以及目标用户节点位置的当地数据传输频率,数据传输带宽值为VPN服务器的数据位宽与当地数据传输频率的乘积。
[0099]  S302:根据预设的VPN负载分担规则,计算每个VPN服务器对数据传输带宽值的数据处理时间。
[0100] 具体的,根据Keepalived预设的VPN负载分担规则,获取内网反馈数据的大小,并计算传输对应的内网反馈数据至目标用户节点所需要的目标传输带宽,根据目标传输带宽与当前VPN服务器的数据传输频率,计算得到每个VPN服务器的数据处理时间。
[0101]  S303:根据数据处理时间,调用Keepalived将数据处理时间最优的VPN服务器与目标用户节点进行链接,以便于对目标用户节点的数据传输进行分流处理。
[0102] 具体的,根据每个VPN服务器的数据处理时间,对所有的VPN服务器进行性能排序,如数据处理时间越短性能越高,根据数据处理时间排序结果,通过OPENVPN调用Keepalived将数据处理时间最短的VPN服务器与目标用户节点进行链接,从而达到动态选择主VPN服务器进行数据传输的目的,以便于主VPN服务器对目标用户节点的数据传输进行分流处理,根据目标用户节点的实际数据传输需要动态选择主VPN服务器进行分流处理,减少单点VPN服务器的并行数据处理压力。
[0103]  S30:根据数据传输负载值对VPN服务器进行加权轮询处理,得到所有VPN服务器的性能评估结果。
[0104] 具体的,根据每个VPN服务器的数据传输负载值,对所有的VPN服务器分别赋予初始权重值,并根据权重由高到低对所有的VPN服务器进行轮询处理,权重值越高轮询的次数越大,被用户节点请求的次数也越多,根据轮询结果得到所有VPN服务器的性能评估结果,轮询次数越多VPN服务器的性能越好。
[0105]  S40:根据性能评估结果,将目标用户节点与性能评估结果最优的VPN服务器进行链接,以便于对VPN服务器进行多节点分流传输。
[0106] 具体的,如图5所示,步骤S40包括:
[0107] S401:根据性能评估结果,推选出与目标用户节点适配程度最优的VPN服务器作为主VPN服务器。
[0108] 具体的,根据VPN框架内的所有VPN服务器的性能评估结果,对所有VPN服务器进行性能排序,并根据排序结果调用Keepalived推选出与目标用户节点适配程度最优的VPN服务器,如可以根据对内网反馈数据的数据处理时间进行性能排序,或者根据VPN服务器的空闲程度进行性能排序,从而得到与目标用户节点连接的主VPN服务器,将主VPN服务器的权重调整为主VPN服务器,其他VPN服务器将自身权重调整为从属VPN服务器。
[0109]  S402:将目标用户节点与主VPN服务器进行链接,并对目标用户节点的数据访问请求进行处理。
[0110] 具体的,根据目标用户节点的唯一标识码,通过OPENVPN将目标用户节点与主VPN服务器进行链接,并通过主VPN服务器对目标用户节点的数据访问请求进行处理,如根据数据访问请求分配对应的数据传输流量,并在对应访问权限的内网网段内查找对应的反馈数据,并根据已构建的数据传输通道将内网反馈数据发送至目标用户节点。
[0111]  S403:根据数据访问请求,查找与目标用户节点的权限相适配的目标内网网段,并接收目标内网网段的反馈数据。
[0112] 具体的,主VPN服务器根据数据访问请求,在内网各网段中查找符合目标用户节点访问权限的目标内网网段,并根据查找结果接收目标内网网段的反馈数据,通过OPENVPN框架搭建好的数据传输通道反馈至目标用户节点。
[0113]  S404:根据预设的VPN数据传输规则,将反馈数据同步推送至次于主VPN服务器的从属VPN服务器,以便于减少单点故障造成的数据不同步。
[0114] 具体的,根据预设的VPN数据传输规则,Keepalived将反馈数据同步推送至次于主VPN服务器的从属VPN服务器,以便于对反馈数据进行同步备份处理,目标用户节点接收主VPN服务器发送的反馈数据,如Keepalived通过广播的形式将反馈数据同步至多个从属VPN服务器上,以便于在主VPN服务器出现单点故障时,能够通过Keepalived及时调用从属VPN服务器对目标用户节点进行数据传输,减少单点故障时的数据传输时延误差。
[0115] 在一实施例中,为了更及时地对出现数据传输故障的主VPN服务器进行切换,如图6所示,步骤S404还包括:
[0116] S501:实时获取目标用户节点与主VPN服务器的数据传输状态。
[0117] 具体的,当目标用户节点与主VPN服务器之间的数据传输通道搭建好之后,通过Keepalived预设的心跳检测机制,对目标用户节点与主VPN服务器之间的数据传输状态进行监控,如按照一定的时间间隔定时发送检测包至主VPN服务器,并接收主VPN服务器发送的反馈数据包,当预设时间间隔内没有接收到对应的反馈数据包则判定数据传输状态出现故障。
[0118]  S502:当数据传输状态出现故障时,对所有的从属VPN服务器进行权限值计算,并推选出权限值最优的从属VPN服务器作为主VPN服务器。
[0119] 具体的,当Keepalived检测到目标用户节点与主VPN服务器之间的数据传输状态出现故障时,对OPENVPN框架内的所有从属VPN服务器进行权限值计算,如从属VPN服务器的数据处理时间或者数据传输性能等,性能越高的从属VPN服务器的权限值越高,或者根据从属PVN服务器的空闲程度,如每个从属VPN服务器挂靠的负载节点的数量越多则空闲程度越低,相应的权限值也就越低等,可以根据实际需要进行设置,根据权限值计算结果推选出权限值最优的从属VPN服务器作为主VPN服务器,主VPN主要用于对反馈数据进行数据处理,其他从属VPN服务器将自身状态调整为次于主VPN服务器的从属服务器,对主VPN服务器的数据进行同步备份。
[0120]  S503:根据目标用户节点的唯一IP地址,构建目标用户节点与主VPN服务器之间的数据传输通道。
[0121] 具体的,当目标用户节点与主VPN服务器之间的数据传输状态出现故障时,Keepalived会自动断开故障状态下的数据传输通道,并在推选出替代原始主VPN服务器的从属VPN服务器之后,根据目标用户节点的唯一IP地址,构建目标用户节点与从属VPN服务器推选出的主VPN服务器之间的数据传输通道,便于及时从从属VPN服务器的主VPN服务器中接收内网反馈数据,减少单点故障带来的数据传输时延误差。
[0122]  S504:通过数据传输通道将内网反馈数据同步发送至目标用户节点,以便于减少VPN服务器单点故障时造成的数据不同步。
[0123] 具体的,在Keepalived搭建好目标用户节点与主VPN服务器之间的数据传输通道之后,调用OPENVPN通过数据传输通道将内网反馈数据同步发送至目标用户节点处,通过重新搭建的数据传输通道能够减少故障修复后的原始VPN服务器对当前数据传输造成的干扰,从而减少VPN服务器的单点故障造成的数据不同步现象,提高OPENVPN框架的数据传输稳定性。
[0124] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0125] 在一实施例中,提供一种高可用多负载的VPN数据处理系统,该高可用多负载的VPN数据处理系统与上述实施例中高可用多负载的VPN数据处理方法一一对应。如图7所示,该高可用多负载的VPN数据处理系统包括数据获取模块、数据检验模块、数据处理模块和数据分流模块。各功能模块详细说明如下:
[0126] 数据获取模块,用于实时获取目标用户节点发送至Keepalived的数据访问请求。
[0127] 数据检验模块,用于通过预设的检验机制对数据访问请求进行检验,并根据检验结果,计算符合检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值。
[0128] 数据处理模块,用于根据数据传输负载值对VPN服务器进行加权轮询处理,得到所有VPN服务器的性能评估结果。
[0129] 数据分流模块,用于根据性能评估结果,将目标用户节点与性能评估结果最优的VPN服务器进行链接,以便于对VPN服务器进行多节点分流传输。
[0130] 优选的,在实时获取目标用户节点发送至Keepalived的数据访问请求之后,且在通过预设的检验机制对数据访问请求进行检验,并根据检验结果,计算符合检验机制的目标用户节点与所有VPN服务器之间的数据传输负载值之前,还包括:
[0131] 路由处理模块,用于将VPN服务器的每个IP地址分别与内网的每个网段进行路由连接,得到与内网连通的初始化IP地址池;
[0132] 路由时间获取模块,用于获取初始化IP地址池中的每个IP地址与内网各网段的路由时间;
[0133] 流量控制策略匹配模块,用于根据路由时间,对每个IP地址进行流量控制策略匹配,得到符合初始化IP地址池的流量控制策略;
[0134] 流量调节模块,用于对目标用户节点进行流量控制策略匹配处理,根据匹配结果对目标用户节点的数据传输流量进行调节,得到与目标用户节点匹配程度最优的数据传输流量。
[0135] 优选的,数据检验模块具体包括:
[0136] 用户名单接收子模块,用于实时接收企业人员信息的用户名单数据,并对用户名单数据进行加密计算,得到符合用户检验机制的认证标识码。
[0137] 用户唯一标识码获取子模块,用于获取数据访问请求中携带的用户唯一标识码。
[0138] 标识码比对子模块,用于将用户唯一标识码输入至VPN服务器与认证标识码进行比对,得到标识码比对结果。
[0139] 数据连接处理子模块,用于根据标识码比对结果,将比对一致的目标用户节点的数据访问请求进行数据连接处理。
[0140] 优选的,数据检验模块还包括:
[0141] 数据传输带宽获取子模块,用于获取符合检验机制的目标用户节点的数据传输带宽值。
[0142] 数据处理时间计算子模块,用于根据预设的VPN负载分担规则,计算每个VPN服务器对数据传输带宽值的数据处理时间。
[0143] 数据传输分流处理子模块,用于根据数据处理时间,调用Keepalived将数据处理时间最优的VPN服务器与目标用户节点进行链接,以便于对目标用户节点的数据传输进行分流处理。
[0144] 优选的,数据分流模块具体包括:
[0145] 主VPN服务器推选子模块,用于根据性能评估结果,推选出与目标用户节点适配程度最优的VPN服务器作为主VPN服务器。
[0146] 数据传输通道链接子模块,用于将目标用户节点与主VPN服务器进行链接,并对目标用户节点的数据访问请求进行处理。
[0147] 反馈数据接收子模块,用于根据数据访问请求,查找与目标用户节点的权限相适配的目标内网网段,并接收目标内网网段的反馈数据。
[0148] 数据同步推送子模块,用于根据预设的VPN数据传输规则,将反馈数据同步推送至次于主VPN服务器的从属VPN服务器,以便于减少单点故障造成的数据不同步。
[0149] 优选的,数据同步推送子模还包括:
[0150] 数据传输状态获取单元,用于实时获取目标用户节点与主VPN服务器的数据传输状态。
[0151] 主VPN服务器推选单元,用于当数据传输状态出现故障时,对所有的从属VPN服务器进行权限值计算,并推选出权限值最优的从属VPN服务器作为主VPN服务器。
[0152] 数据传输通道重连单元,用于根据目标用户节点的唯一IP地址,构建目标用户节点与主VPN服务器之间的数据传输通道。
[0153] 数据同步推送单元,用于通过数据传输通道将内网反馈数据同步发送至目标用户节点,以便于减少VPN服务器单点故障时造成的数据不同步。
[0154] 关于高可用多负载的VPN数据处理系统的具体限定可以参见上文中对于高可用多负载的VPN数据处理方法的限定,在此不再赘述。上述高可用多负载的VPN数据处理系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0155] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储OPENVPN框架以及对应的企业用户名单数据信息,以及在目标用户节点访问内网过程中所产生的中间文件数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种高可用多负载的VPN数据处理方法。
[0156] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述高可用多负载的VPN数据处理方法的步骤。
[0157]  本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0158] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0159] 以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。