背景技术
SSL(Security Socket Layer,安全嵌套字层)VPN(Virtual Private Network,虚拟专用网络)是新兴的VPN技术,以HTTPS(Secure Hyper Text Transfer Protocol,安全超文本传输协议,即支持SSL的HTTP协议)为基础,广泛应用在基于Web的远程安全接入中,为客户端远程访问公司内部网络提供了安全保证。
SSL VPN的典型组网架构如图1所示,管理员在SSL VPN网关上创建企业的内网服务器所对应的资源,远程接入用户(即客户端)访问内网服务器时,与SSL VPN网关建立HTTPS连接,选择需要访问的资源,并由SSL VPN网关将请求转发给内网服务器,从而达到保护内网服务器的目的。
现有技术中,基于SSL VPN网关的数据转发过程包括:客户端请求数据的过程和内网服务器响应请求的过程,其中:
(1)客户端请求数据的过程包括:客户端根据配置的SSL VPN网关的端口(企业自定义VPN的私有端口)和公网IP地址,向SSL VPN网关发送连接请求,如果SSL VPN网关检查到接收连接请求的端口类型为SSL VPNTunnel(隧道)接口,则将连接请求经由软转发模块发送至协议栈Socket(套接字)处理,之后发送到SSL VPN模块进行解封装,剥去VPN公网头部,获取内网数据,并由SSL解密算法完成解密处理,重新发送至软转发模块,由软转发模块将经过解封装的数据或请求发送给内网服务器处理。
(2)内网服务器响应请求的过程包括:SSL VPN网关接收到内网服务器的响应数据后,将响应数据反馈给软转发模块,如果软转发模块根据路由表检查到当前出接口类型为SSL VPN Tunnel接口,则将响应数据发送给SSLVPN模块进行加密处理,封装VPN公网头部,并发送至协议栈Socket处理,之后经过SSL VPN Tunnel出接口发送给客户端。
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:
现有技术中没有办法针对客户端下发QoS(Quality of Service,服务质量),在有大量客户端在线的情况下,瞬间流量会很大(如单个网页大小500K左右,当50个客户端同时访问时,瞬间流量达到24M),而由于无法实现QoS,会影响客户端的接收流量,严重影响用户感受。
发明内容
本发明提供一种基于SSL VPN的数据转发方法和设备,以对客户端进行区分,并执行相应的QoS。
为了达到上述目的,本发明提供一种基于安全嵌套字层SSL虚拟专用网络VPN的数据转发方法,应用于包括SSL VPN设备、客户端和内网服务器的系统中,所述SSL VPN设备为所述客户端建立的对应会话表项包含服务质量QoS标识,该方法包括以下步骤:当所述SSL VPN设备接收到内网服务器向客户端发送的数据时,所述SSL VPN设备通过数据中携带的地址信息查找会话表项,并通过查找到会话表项中对应的QoS标识信息对客户端的数据进行区分,并对区分后的数据进行基于QoS策略的转发处理。
所述SSL VPN设备为所述客户端建立的对应会话表项包含服务质量QoS标识,具体包括:预先记录QoS标识信息与客户端信息的对应关系;所述SSLVPN设备在接收到客户端进行SSL VPN应用的数据时,根据数据中携带的客户端信息查找是否存在对应的QoS标识信息;如果存在对应的QoS标识信息, 所述SSL VPN设备为所述客户端建立会话表项,并将查找到的QoS标识信息记录到所述会话表项中;如果不存在对应的QoS标识信息,所述SSL VPN设备判断是否为客户端提供SSL VPN服务,如果是,则为所述客户端建立会话表项,并将QoS标识信息设为空记录到所述会话表项中。
所述SSL VPN设备通过数据中携带的地址信息查找会话表项,并通过查找到会话表项中对应的QoS标识信息对客户端的数据进行区分,并对区分后的数据进行基于QoS策略的转发处理,具体包括:所述SSL VPN设备通过数据中携带的地址信息查找会话表项,将查找到会话表项中对应的QoS标识信息记录到该数据对应内存缓冲区MBUF的控制头部分;所述SSL VPN设备从所述MBUF的控制头部分获得所述QoS标识信息,并通过获得的QoS标识信息对该数据进行区分,并对区分后的数据进行基于QoS策略的转发处理。
通过查找到会话表项中对应的QoS标识信息对客户端的数据进行区分之前,进一步包括:所述SSL VPN设备判断是否需要利用QoS标识信息对内网服务器发送给客户端的数据进行处区分处理,如果是,所述SSL VPN设备通过QoS标识信息对客户端的数据进行区分。
需要利用QoS标识信息对内网服务器发送给客户端的数据进行区分处理,具体包括:当向客户端发送数据的端口的带宽占用情况达到预设阈值时,所述SSL VPN设备触发利用QoS标识信息对数据进行区分处理;或者,所述SSL VPN设备根据设定的QoS类型满足条件时触发利用QoS标识信息对数据进行区分处理。
一种SSL VPN设备,应用于包括所述SSL VPN设备、客户端和内网服务器的系统中,所述SSL VPN设备包括:维护模块,用于为所述客户端建立对应会话表项,且会话表项中包含服务质量QoS标识;查找模块,用于当接收到内网服务器向客户端发送的数据时,通过数据中携带的地址信息查找会话表项;处理模块,用于通过查找到会话表项中对应的QoS标识信息对客户端 的数据进行区分,并对区分后的数据进行基于QoS策略的转发处理。
所述维护模块,具体用于预先记录QoS标识信息与客户端信息的对应关系;在接收到客户端进行SSL VPN应用的数据时,根据数据中携带的客户端信息查找是否存在对应的QoS标识信息;如果存在对应的QoS标识信息,为所述客户端建立会话表项,并将查找到的QoS标识信息记录到所述会话表项中;如果不存在对应的QoS标识信息,判断是否为客户端提供SSL VPN服务,如果是,则为所述客户端建立会话表项,并将QoS标识信息设为空记录到所述会话表项中。
所述处理模块,具体用于将查找到会话表项中对应的QoS标识信息记录到该数据对应内存缓冲区MBUF的控制头部分;从所述MBUF的控制头部分获得所述QoS标识信息,并通过获得的QoS标识信息对该数据进行区分,并对区分后的数据进行基于QoS策略的转发处理。
所述处理模块,具体用于判断是否需要利用QoS标识信息对内网服务器发送给客户端的数据进行处区分处理,如果是,则通过QoS标识信息对客户端的数据进行区分。
需要利用QoS标识信息对内网服务器发送给客户端的数据进行区分处理,具体为:当向客户端发送数据的端口的带宽占用情况达到预设阈值时,触发利用QoS标识信息对数据进行区分处理;或者,根据设定的QoS类型满足条件时触发利用QoS标识信息对数据进行区分处理。
与现有技术相比,本发明至少具有以下优点:
SSL VPN设备可根据客户端的类型为客户端设定QoS标识,并基于QoS标识信息对客户端进行区分,执行相应的QoS策略,从而可合理利用网络带宽,最大限度保证重要客户端和对实时性要求高的客户端的数据不丢失;确保没有建立会话表现的流量不占用带宽,提高设备安全性。
具体实施方式
本发明提出一种基于SSL VPN的数据转发方法,该方法应用于包括SSLVPN设备、客户端和内网服务器的系统中,下面结合附图,对本发明具体实施方式进行详细说明。以图1为参考网络模型图,SSL VPN设备在图1中为SSL VPN网关,客户端通过Internet网络连接到SSL VPN网关,继而连接到内网服务器。
本发明中,在SSL VPN设备上定义客户端时,可根据客户端的类型(如重要客户端、对实时性要求高的客户端等)为客户端设定QoS标识信息,该QoS标识信息以qos-local-id值(实际应用中qos-local-id值可为1-4095之间的任意数据)为例,使得QoS分类器可以基于qos-local-id值对各种类型客户端的数据进行区分。实际应用中QoS标识信息并不局限于qos-local-id值,本发明中不再赘述。
基于上述设置的qos-local-id值,在为客户端建立会话表项(SSL VPN设备根据此会话表项对数据进行加密、解密和转发处理)时,SSL VPN设备将在相应的会话表项中记录qos-local-id值。
具体的,预先记录客户端信息与qos-local-id值的对应关系,在SSL握手认证通过后,SSL VPN设备根据接收到客户端进行SSL VPN应用的数据中携带的客户端信息(如用户名)查找是否存在对应的qos-local-id值。
如果存在对应的qos-local-id值,则SSL VPN设备为客户端建立会话表项,将查找到的qos-local-id值记录到会话表项中;如果不存在对应的qos-local-id 值,则SSL VPN设备判断是否为客户端提供SSL VPN服务,如果是,则为客户端建立会话表项,并将qos-local-id值设为空(Null)记录到会话表项中;否则,SSL VPN设备丢弃接收到的数据,中断会话。如表1所示,为客户端的会话表项,qos-local-id值为对应的设定值或为空,公网地址、公网端口、私网地址、私网端口可从数据中获得,其他字段本发明中不再赘述。
表1
Cookie |
Protocol |
qos-local-id |
公网地址 |
公网端口 |
私网地址 |
私网端口 |
例如,设定客户端的qos-local-id值为100,TCP(Transmission Control Protocol,传输控制协议)应用中公网地址为162.10.1.1,端口为5000,私网地址为192.168.0.10,端口为5000,则建立的会话表项如表2所示。
表2
AFA028CB110381CD9283092 |
6 |
100 |
162.10.1.1 |
5000 |
192.168.0.10 |
5000 |
基于上述建立的会话表项,当内网服务器通过SSL VPN设备向客户端发送数据时,如图2所示,该基于SSL VPN的数据转发方法包括以下步骤:
步骤201,SSL VPN设备接收来自内网服务器的数据。
步骤202,SSL VPN设备通过数据中携带的地址信息查找会话表项。如果存在对应的会话表项,执行步骤203;否则,丢弃该数据,并中断会话。
具体的,SSL VPN设备通过数据中携带的公网地址、公网端口、私网地址、私网端口等地址信息可确定对应的会话表项;例如,当公网地址、公网端口、私网地址、私网端口分别为162.10.1.1、5000、192.168.0.10、5000时,则可查找到表2所示的会话表项。
步骤203,SSL VPN设备通过查找到会话表项中对应的qos-local-id值对客户端的数据进行区分,并对区分后的数据进行基于QoS策略的转发处理。
具体的,SSL VPN设备可将查找到会话表项中对应的qos-local-id值记录到该数据对应MBUF(memory buffer,内存缓冲区)的控制头部分;并从MBUF 的控制头部分获得qos-local-id值,通过获得的qos-local-id值对该数据进行区分,并对区分后的数据进行基于QoS策略的转发处理。
本发明中,对于查找到的会话表项中记录的qos-local-id值,SSL VPN设备可将qos-local-id值存储到MBUF中。该MBUF是在SSL VPN设备内部用来存储数据的内存数据块,分为控制头和数据部分,控制头部分用来存储数据的相关信息(如接收接口、各种标志等),数据部分用来存储数据原始信息;该SSL VPN设备可将qos-local-id值存储到MBUF的控制头中。
需要注意的是,在接收到来自内网服务器的数据后,SSL VPN设备还需要对该数据进行SSL VPN相关(如加密等)处理,该过程与现有技术中的处理类似,在此不再赘述。
进一步的,在将qos-local-id值存储到MBUF时,SSL VPN设备可从MBUF中获得qos-local-id值,并通过获得的qos-local-id值对客户端的数据进行区分,并对区分后的数据进行基于QoS策略的转发处理。
在根据qos-local-id值对客户端的数据进行区分之前,可进一步包括,SSLVPN设备判断是否需要利用qos-local-id值对内网服务器发送给客户端的数据进行区分处理,如果是,则执行通过qos-local-id值对客户端的数据进行区分的操作,否则,不执行通过qos-local-id值对客户端的数据进行区分的操作。
本发明中,需要利用qos-local-id值对内网服务器发送给客户端的数据进行区分处理包括但不限于:当SSLVPN设备向客户端发送数据的端口的带宽占用情况达到预设阈值(可根据实际需要设置,表示端口发生拥塞)时,SSLVPN设备触发利用qos-local-id值对数据进行区分处理;SSL VPN设备根据设定的QoS类型满足条件时触发利用qos-local-id值对数据进行区分处理,例如,QoS类型为CAR(Committed Access Rate,约定访问速率)队列时,需要利用qos-local-id值对数据进行区分处理。
实际应用中,SSL VPN设备基于qos-local-id值,可通过QoS分类器对各 种类型客户端的数据进行区分,而通过为客户端的数据下发对应的QoS策略,可对区分后的数据进行基于QoS策略的转发处理。
例如,客户端A为重要客户端、客户端B不是重要客户端,为客户端A设定qos-local-id值为3000、为客户端B设定qos-local-id值为200,QoS分类器基于qos-local-id值可将客户端A和客户端B的数据进行区分,从而可为客户端A的数据下发优先分配带宽的QoS策略,基于QoS策略对客户端A的数据优先分配带宽,并通过分配给客户端A的带宽将数据发送给客户端A。
综上所述,为了实现基于客户端的QoS,对有限带宽进行合理占用和管理,提高SSL VPN的服务质量,本发明中,通过对客户端进行分类,为不同类型的客户端设定不同的qos-local-id值,并基于qos-local-id值对客户端的数据进行区分,从而可下发QoS策略,对指定类型的客户端(如重要客户端和对实时性要求高的客户端)最大供给带宽资源,以实现指定类型客户端的应用可占用较大带宽、较低时延、较小抖动。
当大量客户端同时在线导致带宽不足时,通过对客户端进行分类处理,可合理分配网络带宽资源,SSL VPN设备最大限度保证指定类型客户端的数据不丢失;并对内网服务器进一层保护,确保没有建立会话表现的流量不占用带宽,防止有恶意攻击,提高安全性、节约了设备资源、降低了设备负担。
基于与上述方法同样的发明构思,本发明还提出了一种SSL VPN设备,应用于包括所述SSL VPN设备、客户端和内网服务器的系统中,如图3所示,该SSLVPN设备包括:
维护模块31,用于为所述客户端建立对应会话表项,且会话表项中包含服务质量QoS标识;
查找模块32,用于当接收到内网服务器向客户端发送的数据时,通过数据中携带的地址信息查找会话表项;
处理模块33,用于通过查找到会话表项中对应的QoS标识信息对客户端 的数据进行区分,并对区分后的数据进行基于QoS策略的转发处理。
所述维护模块31,具体用于预先记录QoS标识信息与客户端信息的对应关系;在接收到客户端进行SSL VPN应用的数据时,根据数据中携带的客户端信息查找是否存在对应的QoS标识信息;如果存在对应的QoS标识信息,为所述客户端建立会话表项,并将查找到的QoS标识信息记录到所述会话表项中;如果不存在对应的QoS标识信息,判断是否为客户端提供SSL VPN服务,如果是,则为所述客户端建立会话表项,并将QoS标识信息设为空记录到所述会话表项中。
所述处理模块33,具体用于将查找到会话表项中对应的QoS标识信息记录到该数据对应内存缓冲区MBUF的控制头部分;从所述MBUF的控制头部分获得所述QoS标识信息,并通过获得的QoS标识信息对该数据进行区分,并对区分后的数据进行基于QoS策略的转发处理。
所述处理模块33,具体用于判断是否需要利用QoS标识信息对内网服务器发送给客户端的数据进行处区分处理,如果是,则通过QoS标识信息对客户端的数据进行区分。
需要利用QoS标识信息对内网服务器发送给客户端的数据进行区分处理,具体为:当向客户端发送数据的端口的带宽占用情况达到预设阈值时,触发利用QoS标识信息对数据进行区分处理;或者,根据设定的QoS类型满足条件时触发利用QoS标识信息对数据进行区分处理。
本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软 件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。