专利名称:一种vpn数据转发方法及用于数据转发的vpn设备的利记博彩app
技术领域:
本发明涉及虚拟专用网(VPN)技术,具体涉及VPN数据传输方法及VPN设备。
背景技术:
基于传输层以上的且端到端需要进行加密的数据传输VPN,如SSLVPN,是一种基于安全套接层(SSL,Security Socket Layer)来构建VPN的技术,工作在应用层和TCP层之间,基于超文本传输协议(HTTP,Hypertext Transfer Protocol)来进行VPN访问,所以这种VPN可以通过因特网浏览器进行安全的VPN访问,由于SSL VPN工作在传输层之上,因而能够遍历所有NAT设备和防火墙设备,这使得用户能够从任何地方远程接入到公司的内部网络。而且不需要额外进行客户端的软件安装,成为目前发展最为迅速的一种VPN。
如图1所示,假定服务器Server1是某企业的一台内部的WEB服务器,连接到因特网的一台计算机PC1可访问公司内部的WEB服务器。计算机PC1通过WEB浏览器先通过HTTP访问到SSL VPN设备,通过SSL VPN设备的认证和鉴权后,再通过HTTP发起对内部WEB服务器SERVER1的访问,访问到的数据通过HTTP返回给SSL VPN设备,SSL VPN再通过HTTPS安全地送到计算机PC1。这样就能够通过计算机PC1访问到公司内部的WEB服务器SERVER1了。由于WEB服务器SERVER1是不对外公开的,不通过SSL VPN设备是不能访问到WEB服务器SERVER1的。这就是SSL VPN的基本工作原理。这种VPN的优点非常明显,就是使得用户能够从任何地方通过因特网远程进行VPN的访问,非常方便快捷。
SSL VPN的另一种应用就是以SSL隧道方式来组建VPN,这种方式可以用于站点接入,还可以用于网络的接入。这种方式需要通过SSL隧道将不同地域的站点接入,这种情况下每个站点需要一个SSL VPN设备,一般通过ISP接入因特网都是动态的公网IP地址,但如果全部设备的地址都是动态IP,它们之间将不能自动建立连接,所以通常在网上设置一台固定公网IP的主SSL VPN设备,这样其它站点的SSL VPN设备就可以与主SSL VPN建立SSL隧道连接。
参照图2,一个企业VPN由3个分支网络构成,通过SSL VPN进行连接,在分支机构网络LAN a和分支机构网络LAN b直接通过动态IP接入因特网,分支机构网络LAN c设置有一个固定的IP地址,在LAN a和LAN b接入网络时,首先接入到SSL VPN主设备,分别与主设备间建立SSL隧道,LAN a中的网络用户访问LAN b时,也是通过主设备进行访问。
LAN b的数据流先发到主SSL VPN设备上,主SSL VPN设备先完成解密,然后查找路由表,再加密数据,之后将数据发到LAN a。由于加解密需要消耗主SSL VPN设备的资源,所以SSL VPN主设备的负担将非常重,严重影响转发性能。
根据现有的一种SSL VPN路由技术解决方案,在LANA、LANB间采用协商直接建立新的不通过主SSL VPN设备的SSL隧道的方法,使得LANA、LANB间传送的数据通过新SSL隧道来传送,而不再通过主SSL VPN设备,如图3所示。
这种方法能够彻底分离从SSL VPN设备间的访问流量,但上述方案有一定的前提条件,就是LAN A、LAN B间必须能够直接建立SSL隧道。如果LAN A、LAN B中的防火墙不允许SSL的接入,或者LAN A、LAN B中的用户都是通过地址转换设备上网,而地址转换设备又不支持内部服务器功能,这种情况下,LAN A、LAN B间就无法直接建立SSL隧道,这个方案也就不能实施。
发明内容
针对现有技术中存在的问题,本发明要解决的技术问题在于,提供一种VPN数据转发方法及用于数据转发的VPN设备,该方法在原有VPN连接的基础上再构建一个转发隧道,通过VPN设备转发数据,不再进行数据的加解密操作,从而提高VPN数据转发性能及效率。
本发明提供的一种VPN数据转发方法,包括步骤A.选定一VPN设备作为主VPN设备,其他VPN设备作为从VPN设备,并为主VPN设备设置固定的公网IP地址或固定的域名;B.从VPN设备与主VPN建立VPN连接,并完成VPN接入的相关鉴权和认证;C.第一、第二从VPN设备分别与主VPN设备建立第一、第二TCP连接;
D.主VPN设备为所述第一、第二TCP连接建立对应关系,以进行数据转发,并发送路由信息和/或权限信息给第一、第二从VPN设备;E.第一、第二从VPN设备之间建立VPN连接,并按所收到的路由信息和/或权限信息进行数据发送和接收。
在步骤C与D之间还包括步骤主VPN设备对第一、第二从VPN设备进行验证;步骤C1包括主VPN设备发送验证信息和连接标识给第一、第二从VPN设备,第一、第二从VPN设备收到验证码和连接标识后,发送反馈信息给主VPN设备;若主设备验证收到的反馈信息相符,则为所述两个TCP连接建立对应关系。
步骤E还包括第一、第二从VPN设备之间建立连接之后进行相互验证的步骤。
其中所述验证码的长度大于等于SSL的公钥算法的密钥长度。
该方法还包括步骤主VPN设备将第一、第二从VPN设备分别设定为服务器端和客户端。
所述的主VPN设备中的数据转发是透明的。
步骤E中,当第一、第二从VPN设备之间VPN连接建立失败时,主VPN设备删除所述TCP连接及对应关系。
所述VPN为SSL VPN。
所述VPN为基于传输层以上的且端到端需要进行加密的VPN。
根据本发明的一种VPN数据转发方法,包括步骤a)对VPN连接请求进行相关鉴权和认证;b)为相互交换数据的VPN设备建立对应关系,并发送相关路由信息和/或权限信息给相应的VPN设备;c)根据所述对应关系进行数据转发。
该方法还包括相互交换数据的VPN设备之间建立连接之后进行相互验证的步骤。
当相互交换数据的VPN设备之间VPN连接建立失败时,删除所述连接及对应关系。
所述VPN连接基于传输层以上的且端到端需要进行加密。
根据本发明还提供一种VPN设备,用于转发数据,包括鉴权认证单元,用于对VPN连接请求进行相关鉴权和认证;数据通信单元,为相互交换数据的VPN设备建立对应关系,发送相关路由信息和/或权限信息给相应VPN设备,并根据所述对应关系进行数据转发。
在该VPN设备中所进行的数据转发是透明的。
当相互交换数据的VPN设备之间VPN连接建立失败时,该VPN设备删除所述VPN连接及对应关系。
本发明相对于现有技术的有益效果如下在现有的基于传输层以上的VPN中,对于需要通过中间VPN设备进行转发的实现方式,由于加解密非常消耗SSL VPN设备的资源,所以中间转发的SSL VPN设备的负担将非常重,严重影响转发性能。而在采用协商直接建立新的SSL隧道的方式,通过新SSL隧道来传送数据,不再通过主VPN设备。但是其前提是在进行通信的VPN用户之间能够直接建立SSL隧道。由于设置的防火墙通常不允许SSL的接入,或者通过地址转换设备上网时,地址转换设备又不支持内部服务器功能。因此,目前基于现有技术的SSL VPN的数据转发性能差、效率低。
而本发明所提供的VPN数据转发方法,在原有SSL隧道的基础上建立新的TCP连接再协商一个转发隧道,数据经过主设备时只需简单的转发,而不再进行数据的加解密操作,降低主SSL VPN设备的负荷,使得VPN设备的大部分资源用于数据的转发,提高数据转发能力,从而提高VPN网络的性能和可靠性。该方法适合各种组网的环境,不受地址转换设备和防火墙配置的限制,安全性高。
图1是用于说明SSL VPN的基本工作原理的示意图;图2是根据现有技术的SSL VPN技术方案原理的示意图;图3是根据现有技术的SSL VPN另一技术方案原理的示意图;图4是根据本发明的实施例的SSL VPN实现原理的示意图;图5是根据本发明的SSL VPN数据转发方法的流程图。
具体实施例方式
为了便于对本发明工作原理进行说明,以SSL VPN为例进行描述。在此,以两个从SSL VPN设备和一个主SSL VPN设备的最简单的组网方式为例进行描述。对于更多VPN设备组网的情况,其原理是类似的。
VPN是一种通过使用互联网络的基础设施利用Internet可路由的地址,即公网地址,访问远地VPN设备,在异地网络之间传递数据的方式,实现异地网络的互通。SSL VPN利用浏览器内建的Secure Socket Layer封包处理功能,通过浏览器连接远地的内部SSL VPN设备,然后透过网络封包转向的方式,在远程计算机执行应用程序,读取远地的内部服务器数据。该远地的内部SSL VPN设备需设置Internet可路由的地址,即公网地址。
如图4所示的VPN,在这三个LAN中分别设有SSL VPN设备(路由器,或网关设备)R1,R2,R3。
图5是根据本发明的SSL VPN数据转发方法的流程图,参照图5。
首先,选定R3作为主VPN设备,并为R3设置固定的公网IP地址,或者是固定的域名,R1,R2则为从VPN设备;(步骤S11)接着,从SSL VPN设备R1,R2分别与主VPN设备R3建立SSL隧道,并完成SSL VPN接入的相关鉴权和认证;(步骤S12)R3对选定R2作为SSL的服务器端,R1作为SSL的客户端;(步骤S13)R3随机生成一个验证码code和连接标识linkid,为了安全,验证码code不低于SSL所用的公钥算法密钥的长度。
R3向R2发消息,告知R2验证码、连接标识linkid以及作为SSL服务器端;R3向R1发消息,告知R1验证码、连接标识linkid和做SSL客户端。R2启动相应SSL服务处理。
R1,R2分别与主VPN设备R3建立TCP连接LINK1,LINK2;(步骤S14)TCP连接建立之后,R1,R2分别通过LINK1,LINK2发送验证码及连接标识linkid给R3,R3检验该验证码及连接标识linkid,如果与生成的验证码相符且linkid一致,则为这两个TCP连接LINK1,LINK2建立对应关系,并通知R1、R2连接建立,同时发送新的路由和权限信息给R1、R2,之后R3透明转发R1、R2的数据。(步骤S15)R1、R2之间建立新的SSL连接,R1发送验证码code1给R2,R2验证code1是否与自己的一致,如果一致,按所收到的新路由信息和/或权限信息进行数据发送和接收。(步骤S16)如果R2验证不一致,删除新建立的SSL连接,同时删除TCP连接,R3删除对应的R1的TCP连接和连接关系。
参照图4,VPN设备R3分别对VPN设备R1、R2发出的VPN连接请求进行相关鉴权和认证;VPN设备R3为相互交换数据的VPN设备R1、R2建立对应关系,并发送相关路由信息和/或权限信息给相应的VPN设备R1、R2;VPN设备R3根据所述对应关系进行数据转发,即将分别来自R1、R2的数据转发给R2、R1。
相互交换数据的VPN设备R1、R2之间建立连接之后进行相互验证。
当相互交换数据的VPN设备R1、R2之间VPN连接建立失败时,删除所述VPN连接及对应关系。
还是参照图4,图中VPN设备R3,用于转发数据,包括鉴权认证单元,用于对VPN连接请求进行相关鉴权和认证;数据通信单元,为相互交换数据的VPN设备建立对应关系,发送相关路由信息和/或权限信息给相应VPN设备,并根据所述对应关系进行数据转发。
在VPN设备R3中所进行的数据转发是透明的。
实施例参照图4,以一个有三个分支机构的企业SSL VPN组网为例,来详细描述一下本发明的工作原理,3个分支结构网络组成LAN I,LAN II,LANIII,负责连接这3个网络的SSL VPN设备(SSL VPN网关设备)R1,R2,R3。假设公司总部所在网络为LAN III,R3作为接入SSL VPN的主设备。总部的接入SSL VPN设备申请一个固定的域名假设为www.abc.com。其他两个网络通过运营商的PPPOE接入因特网,而且都是通过NAT设备上网的。
首先,从SSL VPN设备R1,R2分别与主VPN设备R3,地址为www.abc.com建立SSL连接,并完成SSL VPN接入的相关鉴权和认证;这是一个普通的SSL VPN接入过程。
如果需要R1、R2间建立新的SSL连接,R3根据配置情况,或者R1、R2在前面建立SSL连接后上报自己是否支持SSL的服务器功能,R3选择具有服务器功能的接入作为服务器端,如果都支持,则按配置的策略进行选择。我们假设R2能够支持SSL服务器,而R1不支持,所以选R2作为SSL的服务器端,R1作为SSL的客户端;R3随机生成一个验证码code1和一个R3上唯一的连接标识LinkID,可以采用SSL同样的秘密生成法生成验证码,长度不低于SSL所用的公钥算法密钥的长度。
R3通过前面建立的SSL连接向R2发消息,告知R2验证码code1、linkID以及作为SSL服务器端;R3向R1发消息,告知R1验证码code1、linkID和做SSL客户端。R2启动相应SSL服务处理。
R1,R2分别与主VPN设备R3建立TCP连接LINK1,LINK2;TCP连接建立之后,R1,R2分别通过LINK1和LINK2发送linkid给R3,R3验证linkid是否与分配的linkid一致。
R3为这两个TCP连接LINK1,LINK2建立对应关系,并通知R1、R2连接建立,同时发送新的路由和权限信息给R1、R2,之后R3透明转发R1、R2的数据。
R1、R2之间建立新的SSL连接,连接建立后R1发送code1给R2,R2比较是否与本端的code1一致,如果一致则并按所收到的新路由信息和/或权限信息进行数据发送和接收。否则删除SSL连接和对应的TCP连接,R3删除对应的TCP连接关系。
本发明的原理可以用于工作在传输层(TCP、UDP等)或传输层以上,需要进行端到端进行加密的数据传输的VPN,例如基于UDP的IP SEC VPN也可以使用相同的原理来实现,这时建立的是一个通过主设备进行UDP转发,而不是TCP,建立的是IP SEC连接而不是SSL连接。
以上所述仅为用于解释、说明本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的实质和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种VPN数据转发方法,其特征在于,包括步骤A.选定一VPN设备作为主VPN设备,其他VPN设备作为从VPN设备;B.从VPN设备与主VPN建立VPN连接,并完成VPN接入的相关鉴权和认证;C.第一、第二从VPN设备分别与主VPN设备建立第一、第二TCP连接;D.主VPN设备为所述第一、第二TCP连接建立对应关系,并发送路由信息和/或权限信息给第一、第二从VPN设备;E.第一、第二从VPN设备之间建立VPN连接,并按所收到的路由信息和/或权限信息进行数据发送和接收。
2.如权利要求1所述的VPN数据转发方法,其特征在于,在步骤C与D之间还包括步骤主VPN设备对第一、第二从VPN设备进行验证。
3.如权利要求2所述的VPN数据转发方法,其特征在于,步骤C1包括主VPN设备发送验证信息和连接标识给第一、第二从VPN设备,第一、第二从VPN设备收到验证码和连接标识后,发送反馈信息给主VPN设备;若主设备验证收到的反馈信息相符,则为所述两个TCP连接建立对应关系。
4.如权利要求1所述的VPN数据转发方法,其特征在于,步骤E还包括第一、第二从VPN设备之间建立连接之后进行相互验证的步骤。
5.如权利要求1所述的VPN数据转发方法,其中所述验证码的长度大于等于SSL的公钥算法的密钥长度。
6.如权利要求1所述的VPN数据转发方法,其特征在于,还包括步骤主VPN设备将第一、第二从VPN设备分别设定为服务器端和客户端。
7.如权利要求1所述的VPN数据转发方法,其特征在于,所述的主VPN设备中的数据转发是透明的。
8.如权利要求1所述的VPN数据转发方法,其特征在于,步骤E中,当第一、第二从VPN设备之间VPN连接建立失败时,主VPN设备删除所述TCP连接及对应关系。
9.如权利要求1至8中任一项所述的VPN数据转发方法,其特征在于,所述VPN为SSL VPN。
10.如权利要求1至8中任一项所述的VPN数据转发方法,其特征在于,所述VPN为基于传输层以上的且端到端需要进行加密的VPN。
11.一种VPN数据转发方法,其特征在于,包括步骤a)对VPN连接请求进行相关鉴权和认证;b)为相互交换数据的VPN设备建立对应关系,并发送相关路由信息和/或权限信息给相应的VPN设备;c)根据所述对应关系进行数据转发。
12.如权利要求11所述的VPN数据转发方法,其特征在于,包括相互交换数据的VPN设备之间建立连接之后进行相互验证的步骤。
13.如权利要求11所述的VPN数据转发方法,其特征在于,当相互交换数据的VPN设备之间VPN连接建立失败时,删除所述连接及对应关系。
14.如权利要求11所述的VPN数据转发方法,其特征在于,所述VPN连接基于传输层以上的且端到端需要进行加密。
15.一种VPN设备,用于转发数据,其特征在于,包括鉴权认证单元,用于对VPN连接请求进行相关鉴权和认证;数据通信单元,为相互交换数据的VPN设备建立对应关系,发送相关路由信息和/或权限信息给相应VPN设备,并根据所述对应关系进行数据转发。
16.如权利要求15所述的VPN设备,其特征在于,所进行的数据转发是透明的。
17.如权利要求15所述的VPN数据转发方法,其特征在于,当相互交换数据的VPN设备之间VPN连接建立失败时,删除所述连接及对应关系。
全文摘要
本发明公开了一种VPN数据转发方法及用于数据转发的VPN设备,在原有VPN连接的基础上建立一个转发隧道,数据经过主设备时只转发,而不进行数据的加解密操作,包括步骤A.选定主VPN设备,并为其设置固定的公网IP地址;B.从VPN设备与主VPN设备建立连接,并完成SSL VPN接入的相关鉴权和认证;C.从VPN设备分别与主VPN设备建立TCP连接;D.主VPN设备为所述TCP连接建立对应关系,并发送路由信息和/或权限信息给从VPN设备;E.从VPN设备之间建立新VPN连接,并按所收到的路由信息和/或权限信息进行数据发送和接收。采用该方法可降低主VPN设备的负荷,提高数据转发能力,从而提高VPN网络的性能和可靠性。该方法适合各种组网的环境,不受地址转换设备和防火墙配置的限制。
文档编号H04L12/46GK1838638SQ20061006600
公开日2006年9月27日 申请日期2006年3月21日 优先权日2006年3月21日
发明者卢胜文 申请人:杭州华为三康技术有限公司