专利名称:基于ssl vpn网关集群的用户接入方法及其装置的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及一种基于SSL VPN网关集群的用户接入方法及其装置。
背景技术:
VPN (Virtual Private Network,虚拟专用网络)被定义为通过公用网络(通常是因特网)建立临时的、安全的连接,是一条穿过公用网络的安全、稳定隧道。VPN可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。VPN主要采用隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。SSL (Secure Sockets Layer,安全套接层)是一套hternet数据安全协议,被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP/IP协议与各种应用层协议之间,通过加密方式保护在^ternet上传输的数据安全性。SSL VPN是一种采用SSL加密连接实现远程访问的VPN技术。SSL VPN的功能如图ι所示。其中,远程主机与SSL VPN网关之间建立SSL连接,以加密方式在hternet上传送报文(SSL数据);而SSL VPN网关终结了 SSL连接,SSL VPN网关通过与内网的服务器(Serverl, Server2)建立 TCP (Transmission Control Protocol,传输控制协议)连接 (TCP/WEB接入方式)或者通过直接IP转发(IP接入方式),以明文方式传送远程主机发来的请求,并将服务器(Serverl,SerVer2)的应答通过SSL连接发给远程主机。SSL VPN网关通常采用集群技术。SSL VPN网关集群也即同时有多个SSLVPN网关提供接入服务,这多个SSL VPN网关以某种负载分担方式各承担部分SSL VPN用户的接入处理,并且当任何一个SSL VPN出现故障被去掉或者新加入一个SSL VPN网关时,使终端用户使用SSL VPN不受影响。实现SSL VPN网关集群的方案,一般是通过负载均衡器(LB)来配合实现,典型的实现方案如图2所示,其中,所有的SSL数据通过负载均衡器(图中的LB_1)根据某种负载均衡算法分发给相应SSL VPN网关,反之,服务器(Serverl或义!^吐幻返回的响应数据则通过LB_2分发给请求数据所经过的SSL VPN网关。其中,LB_1主要负责请求报文的分发, LB_2则实现响应报文的分发。对于只有2个SSL VPN网关的组网,还可以通过双机热备的 A/A模式实现集群功能。发明人在实现本发明的过程中,发现现有SSL VPN网关集群技术至少存在以下问题SSL VPN网关集群方案需要增加负载均衡器(LB),这样带来的主要问题有(1)成本提高SSL VPN网关负载均衡的组网方案需要使用三明治组网,也即最少需要部署2套负载均衡器来实现。(2)性能会有瓶颈实现SSL VPN集群的目的除了增强网络可靠性,还有一个重要目的就是提高SSL VPN网关的处理能力。而通过增加负载均衡器的方案来实现,则该组网中可能出现因负载均衡器性能不足而出现新的性能瓶颈,导致整个SSL VPN集群性能不能充分发挥出来。 另外,对于只有2个SSL VPN网关的组网,如果通过双机热备的A/A模式实现集群功能,则2个SSL VPN网关需要互相备份会话信息,这样也加重了 SSL VPN网关处理性能, 导致最大并发连接等关键性能指标很低。由此可见,现有SSL VPN网关集群技术需要额外使用负载均衡器,并且系统性能有待提高。
发明内容
本发明提供了一种基于SSL VPN网关集群的用户接入方法及其装置,用以解决现有技术中因在SSL VPN网关集群中使用负载均衡器导致的系统性能低的问题。本发明提供的基于SSL VPN网关集群的用户接入方法,其中,所述SSLVPN网关集群中的各网关启用了 VRRP,并配置有集群邻居表项,所述集群邻居表项中包含有各邻居网关的集群优先级、当前状态和当前用户连接数,该方法包括SSL VPN网关集群中的网关通过周期执行的基于集群优先级的集群邻居探测过程,维护各自集群邻居表项中各邻居网关的当前状态和当前用户连接数;当SSL VPN网关集群中的主网关接收到用户终端发往SSL VPN网关集群VRRP备份组虚地址的SSL接入请求,并判断当前还没有网关处理源IP地址为该SSL接入请求的源 IP地址的接入请求的情况下,根据集群邻居表项中各网关的当前状态和当前用户连接数, 以及主网关自己的当前用户连接数,选择出负载最小且可达的网关;如果选择出的网关为主网关自己,则主网关处理所述SSL接入请求;如果选择出的网关为邻居网关,则主网关将发起所述SSL接入请求的用户终端重定向到该邻居网关进行接入处理。本发明提供的网关设备,应用于SSL VPN网关集群,该网关设备启用了 VRRP,并配置有集群邻居表项,所述集群邻居表项中包含有各邻居网关的集群优先级、当前状态和当前用户连接数,该网关设备包括表项处理模块,用于通过周期执行的基于集群优先级的集群邻居探测过程,维护集群邻居表项中各邻居网关的当前状态和当前用户连接数;判断模块,用于在本设备为SSL VPN网关集群中的主网关设备的情况下,在接收到用户终端发往SSL VPN网关集群VRRP备份组虚地址的SSL接入请求后,判断当前是否有网关处理源IP地址为所述SSL接入请求的源IP地址的接入请求;负载均衡模块,用于在本设备为SSL VPN网关集群中的主网关设备的情况下,并且在所述判断模块判断为否时,根据集群邻居表项中各网关的当前状态和当前用户连接数, 以及主网关自己的当前用户连接数,选择出负载最小且可达的网关;数据处理模块,用于在本设备为主网关并且所述负载均衡模块选择出的网关为主网关自己时,处理所述SSL接入请求;第一重定向模块,用于在本设备为主网关并且所述负载均衡模块选择出的网关为邻居网关时,将发起所述SSL接入请求的用户终端重定向到该邻居网关进行接入处理。本发明的有益技术效果
7
本发明通过在SSL VPN网关集群中的各网关上启用VRRP协议,并配置和维护集群邻居表项,以记录各邻居网关的实际负载情况,当集群内的主网关接收到发往VRRP虚地址的SSL接入请求后,可根据集群邻居表项选择负载轻的网关处理该接入请求,从而无需在 SSL VPN网关集群中引入负载均衡器就能够在集群内实现负载均衡,进而与现有技术相比节省了成本、避免了因负载均衡器导致的系统性能瓶颈。
图1为现有技术中SSL VPN功能示意图;图2为现有技术中典型的SSL VPN网关集群实现方案示意图;图3为本发明实施例提供的SSL VPN网关集群方案组网示意图;图4为本发明实施例提供的SSL VPN网关集群邻居探测示意图;图5为本发明实施例提供的用户接入SSL VPN网关集群的流程示意图;图6为本发明实施例提供的用户接入SSL VPN网关集群的组网示意图;图7为本发明实施例提供的网关设备的结构示意图。
具体实施例方式下面结合附图对本发明实施例进行详细描述。参见图3,为本发明实施例中的SSL VPN网关集群方案组网示意图。图中的2个 SSL VPN 网关采用 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)组成网关集群。图3中仅示出了 2个SSL VPN网关,但本发明实施例的SSLVPN网关集群方案组网中的SSLVPN网关数量并不仅限于2个。SSL VPN网关集群中的每个SSL VPN网关都进行如下配置(1)每个SSL VPN网关都对外、对内提供不同的IP地址;即,每个网关对内部网络 (服务器侧)使用私网IP地址,对外部网络(用户侧)使用公网IP地址;(2)每个SSL VPN网关配置相同的VRRP虚地址;(3)每个SSL VPN网关配置不同的集群优先级(也即VRRP优先级),优先级取值范围0 255,值越大则优先级越高;(4)每个SSL VPN网关配置响应的探测周期时长及重试次数,用于对邻居网关进行定期探测;(5)每个SSL VPN网关上配置所有邻居网关,也即集群中的其他SSLVPN网关的相关信息。邻居网关的相关信息中主要包括邻居网关的标识信息(如IP地址和端口号)、 状态信息(如可达状态和不可达状态),以及负载信息(如所支持的最大用户连接数和当前的用户连接数)等。其中,部分信息可通过静态方式配置,其配置信息在初始配置完成后基本不会改变,部分信息可在系统运行过程中动态配置或/和更新。邻居网关的相关信息可采用集群邻居表项的方式存储,其中每个邻居网关的主要配置项可如表1所示。表1、SSL VPN网关集群邻居属性表
8
权利要求
1.一种基于安全套接层虚拟专用网络SSL VPN网关集群的用户接入方法,其特征在于,所述SSL VPN网关集群中的各网关启用了虚拟路由冗余协议VRRP,并配置有集群邻居表项,所述集群邻居表项中包含有各邻居网关的当前状态和当前用户连接数,该方法包括SSL VPN网关集群中的网关通过周期执行的集群邻居探测过程,维护各自集群邻居表项中各邻居网关的当前状态和当前用户连接数;当SSL VPN网关集群中的主网关接收到用户终端发往SSL VPN网关集群VRRP备份组虚地址的SSL接入请求,并判断当前还没有网关处理源IP地址为该SSL接入请求的源IP 地址的接入请求的情况下,根据集群邻居表项中各网关的当前状态和当前用户连接数,以及主网关自己的当前用户连接数,选择出负载最小且可达的网关;如果选择出的网关为主网关自己,则主网关处理所述SSL接入请求;如果选择出的网关为邻居网关,则主网关将发起所述SSL接入请求的用户终端重定向到该邻居网关进行接入处理。
2.如权利要求1所述的方法,其特征在于,若SSLVPN网关集群中的主网关接收到用户终端发往SSL VPN网关集群VRRP备份组虚地址的SSL接入请求,并在判断当前已经有网关处理源IP地址为该SSL接入请求的源IP地址的接入请求且该网关不是主网关自己的情况下,将发起所述SSL接入请求的用户终端重定向到该SSL接入请求的源IP地址对应的网关进行处理;若当前处理该源IP地址的接入请求的网关是主网关自己,则主网关处理所述 SSL接入请求。
3.如权利要求1所述的方法,其特征在于,所述集群邻居表项中还配置有各邻居网关的最大用户连接数;主网关根据其集群邻居表项中各网关当前的状态和用户连接数,以及主网关自己当前的用户连接数,选择出负载最小且可达的网关,包括主网关根据其集群邻居表项中各邻居网关的最大用户连接数和当前的用户连接数,以及自身的最大用户连接数和当前的用户连接数,分别计算各网关的负载,并选择其中负载最小且状态为可达的网关。
4.如权利要求1所述的方法,其特征在于,SSLVPN网关集群中的各网关分别有各自的集群优先级,所述集群邻居表项中还包含有各邻居网关的集群优先级;SSL VPN网关集群中的网关通过周期执行的集群邻居探测过程,维护各自集群邻居表项中各邻居网关的当前状态和当前用户连接数,包括SSL VPN网关集群中的网关按照自己的探测周期,根据集群邻居表项向优先级低于自己且当前状态为可达的邻居网关发送探测报文,其中携带有自己当前的用户连接数,并在接收到优先级低于自己的邻居网关返回的响应报文后,根据该响应报文中携带的该邻居网关当前的用户连接数,更新集群邻居表项中该邻居网关的当前用户连接数,并保持该邻居网关的状态为可达;SSL VPN网关集群中的网关在接收到优先级比自己高的邻居网关发送的探测报文之后,根据该探测报文中携带的该邻居网关的当前用户连接数,更新集群邻居表项中该邻居网关的当前用户连接数,并保持该邻居网关的状态为可达。
5.如权利要求4所述的方法,其特征在于,还包括若SSL VPN网关集群中的网关在向优先级低于自己的邻居网关发送探测报文后,未在设定时长内接收到该邻居网关返回的响应报文,则将集群邻居表项中该邻居网关的状态设置为不可达,且清除该邻居网关当前的用户连接数;其中,设定时长为探测报文发送方网关的探测周期时长与重试次数的乘积;若SSL VPN网关集群中的网关未在设定时长内接收到优先级高于自己的邻居网关发送的探测报文,则将集群邻居表项中该邻居网关的状态设置为不可达,且清除该邻居网关当前的用户连接数;其中,设定时长为该邻居网关的探测周期时长与重试次数的乘积。
6.如权利要求1所述的方法,其特征在于,还包括若有新网关加入SSL VPN网关集群,则该新加入的网关向SSL VPN网关集群内的所有邻居网关发送声明加入SSL VPN网关集群的组播报文,并在接收到邻居网关返回的响应报文后,根据响应报文中携带的邻居网关的当前用户连接数更新该新加入的网关的集群邻居表项中该邻居网关的当前用户连接数,并将该邻居网关的状态设置为可达;接收到所述组播报文的网关将集群邻居表项中该组播报文发送方网关的状态设置为可达。
7.如权利要求1-6之一所述的方法,其特征在于,所述集群邻居表项中还包括探测报文的发送周期时长、探测报文的重试次数、最大连接数;SSL VPN网关集群中的网关通过周期执行的基于集群优先级的集群邻居探测过程,维护各自集群邻居表项中各邻居网关的探测报文的发送周期时长、探测报文的重试次数、最大连接数;或者,SSL VPN网关集群中的网关通过静态配置方式配置各自集群邻居表项中各邻居网关的探测报文的发送周期时长、探测报文的重试次数、最大连接数。
8.—种网关设备,其特征在于,所述网关设备应用于安全套接层虚拟专用网络SSL VPN 网关集群,该网关设备启用了虚拟路由冗余协议VRRP,并配置有集群邻居表项,所述集群邻居表项中包含有各邻居网关的当前状态和当前用户连接数,该网关设备包括表项处理模块,用于通过周期执行的集群邻居探测过程,维护集群邻居表项中各邻居网关的当前状态和当前用户连接数;判断模块,用于在本设备为SSL VPN网关集群中的主网关设备的情况下,在接收到用户终端发往SSL VPN网关集群VRRP备份组虚地址的SSL接入请求后,判断当前是否有网关处理源IP地址为所述SSL接入请求的源IP地址的接入请求;负载均衡模块,用于在本设备为SSL VPN网关集群中的主网关设备的情况下,并且在所述判断模块判断为否时,根据集群邻居表项中各网关的当前状态和当前用户连接数,以及主网关自己的当前用户连接数,选择出负载最小且可达的网关;数据处理模块,用于在本设备为主网关并且所述负载均衡模块选择出的网关为主网关自己时,处理所述SSL接入请求;第一重定向模块,用于在本设备为主网关并且所述负载均衡模块选择出的网关为邻居网关时,将发起所述SSL接入请求的用户终端重定向到该邻居网关进行接入处理。
9.如权利要求8所述的网关设备,其特征在于,还包括第二重定向模块;所述第二重定向模块,用于在本设备为SSL VPN网关集群中的主网关设备的情况下,在所述判断模块判断当前已经有网关处理源IP地址为该SSL接入请求的源IP地址的接入请求且该网关不是本设备时,将发起所述SSL接入请求的用户终端重定向到该SSL接入请求的源IP地址对应的网关进行处理;所述数据处理模块还用于,在本设备为SSL VPN网关集群中的主网关设备的情况下,在所述判断模块判断当前处理该源IP地址的接入请求的网关是本设备时,处理所述SSL接入请求。
10.如权利要求8所述的网关设备,其特征在于,所述集群邻居表项中还配置有各邻居网关的最大用户连接数;所述负载均衡模块具体用于,根据集群邻居表项中各邻居网关的最大用户连接数和当前的用户连接数,以及本设备的最大用户连接数和当前的用户连接数,分别计算各网关的负载,并选择其中负载最小且状态为可达的网关。
11.如权利要求8所述的网关设备,其特征在于,SSLVPN网关集群中的各网关分别有各自的集群优先级,所述集群邻居表项中还包含有各邻居网关的集群优先级;所述表项处理模块具体用于,按照本设备的探测周期,根据集群邻居表项向优先级低于本设备且当前状态为可达的网关发送探测报文,其中携带有本设备当前的用户连接数, 并在接收到优先级低于本设备的邻居网关设备返回的响应报文后,根据该响应报文中携带的该邻居网关设备当前的用户连接数,更新集群邻居表项中相应网关设备的当前用户连接数,并保持该相应网关设备的状态为可达;以及,在接收到优先级比本设备高的邻居网关设备发送的探测报文之后,根据该探测报文中携带的该邻居网关设备的当前用户连接数, 更新集群邻居表项中相应网关设备的当前用户连接数,并保持该相应网关设备的状态为可达。
12.如权利要求11所述的网关设备,其特征在于,所述表项处理模块还用于,在向优先级低于本设备的邻居网关设备发送探测报文后,未在设定时长内接收到该邻居网关设备返回的响应报文,则将集群邻居表项中该邻居网关设备的状态设置为不可达,且清除该网关当前的用户连接数;其中,设定时长为本设备的探测周期时长与重试次数的乘积;以及未在设定时长内接收到优先级高于本设备的邻居网关设备发送的探测报文,则将集群邻居表项中该邻居网关设备的状态设置为不可达,且清除该邻居网关设备当前的用户连接数;其中,设定时长为集群邻居表项中该邻居网关设备的探测周期时长与重试次数的乘积。
13.如权利要求8所述的网关设备,其特征在于,所述表项处理模块还用于,在本设备加入SSL VPN网关集群时,向SSL VPN网关集群内的所有邻居网关设备发送声明加入SSL VPN网关集群的组播报文,并接收到邻居网关返回的响应报文,根据响应报文中携带的该邻居网关设备的当前用户连接数更新本设备的集群邻居表项中该邻居网关设备的当前用户连接数,并将该邻居网关设备的状态设置为可达;以及在接收到邻居网关设备发送的声明加入SSL VPN网关集群的报文后,将集群邻居表项中该邻居网关设备的状态设置为可达。
14.如权利要求8-13之一所述的网关设备,其特征在于,所述集群邻居表项中还包括探测报文的发送周期时长、探测报文的重试次数、最大连接数;所述表项处理模块具体用于,通过周期执行的基于集群优先级的集群邻居探测过程, 维护各自集群邻居表项中各邻居网关的探测报文的发送周期时长、探测报文的重试次数、 最大连接数;或者通过静态配置方式配置各自集群邻居表项中各邻居网关的探测报文的发送周期时长、 探测报文的重试次数、最大连接数。
全文摘要
本发明公开了一种基于SSL VPN网关集群的用户接入方法及其装置。SSLVPN网关集群中的各网关启用了VRRP,配置有集群邻居表项,其中包含有各邻居网关的当前状态和当前用户连接数,该方法包括各网关通过周期执行的集群邻居探测过程,维护各自集群邻居表项;当主网关接收到用户终端发往SSLVPN网关集群VRRP备份组虚地址的SSL接入请求,并判断当前还没有网关处理源IP地址为该SSL接入请求的源IP地址的接入请求的情况下,根据集群邻居表项中各邻居网关的当前状态和当前用户连接数,以及主网关自己的当前用户连接数,选择出负载最小且可达的网关,并将该用户终端重定向到该邻居网关。本发明可在实现SSL VPN网关集群负载均衡并提高系统性能。
文档编号H04L29/06GK102223365SQ201110148890
公开日2011年10月19日 申请日期2011年6月3日 优先权日2011年6月3日
发明者梁鹏, 胡国华 申请人:杭州华三通信技术有限公司