基于数据链路层的SSLVPN通信方法与流程

文档序号:12008940阅读:337来源:国知局
基于数据链路层的SSL VPN通信方法与流程
基于数据链路层的SSLVPN通信方法技术领域本发明涉及一种网络数据通信方法,特别涉及一种基于SSLVPN技术的通信方法。

背景技术:
随着Internet网络技术的普及,虚拟专用网VPN(VirtualPrivateNetwork)技术在网络发展中的突出地位越发显现。近年来为了更加灵活安全的给用户提供VPN服务,越来越多的用户选择使用SSLVPN。SSLVPN是以HTTPS为基础的VPN技术,也包括支持SSL的应用程序,例如:电子邮件客户端程序,如MicrosoftOutlook或Eudora。它利用SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制,为用户远程访问公司内部网络提供了安全保证。SSLVPN经常被称之“无客户端”,因为目前大多数计算机在出货时,都已经安装了支持HTTP和HTTPS的Web浏览器。通常的SSLVPN都是使用SSL来封装IP或IP层以上的协议,比如UDP,TCP,HTTP等,因此只能传送IP或IP层以上的数据。由于其只支持IP层以上的协议,无法支持IP层以下如IPX,NetBT,AppleTalk,Nbf,NWlink,PPP,PPPoE,MPLS等协议。

技术实现要素:
本发明的目的是为克服已有技术的不足之处,提供一种基于数据链路层进行通信的SSLVPN连接方式,通过发送向指定目的地的所有数据链路层的数据全部打包传送,实现了基于数据链路层的数据穿透,从而解决了传统的SSLVPN和IPSecVPN不能实现的两个子网络之间建立整体网络的全协议通信的需求,比如,WINS协议,VoIP协议,DHCP协议等等的穿透。本发明提出以下技术方案:一种基于数据链路层的SSLVPN通信方法,基于通过广域网连接的服务端网络和客户端实现,所述服务端网络包括SSLVPN网关,交换机和终端设备,其特征在于包括以下步骤:A客户端向服务端网关发起连接请求;B服务端网关接收到连接请求后对客户端进行标准SSL验证;C客户端和服务端网络之间建立SSLVPN加密安全通道;D服务端网络和客户端之间发送数据时,发送端的SSLVPN网关封装交换机传来的所有需要传送到客户端的数据,并通过SSLVPN通道传送至接收端;E接收端的将接收到的数据解包,并向本端传送。作为一种优选,所述步骤B的验证过程包括:B1服务端的SSLVPN网关对所述连接请求进行身份验证;B2服务端的SSLVPN网关对所述连接请求进行密码验证或者PKI证书验证。作为一种优选,所述客户端为局域网,所述局域网包括SSLVPN网关,交换机和PC。作为一种优选,所述步骤D包括:发送端的SSLVPN网关的eth1口接收到本方交换机传来的所有需要传送到接收端的数据,对这些数据进行封装后,从eth0口通过SSL隧道发送至接收端SSLVPN网关的eth0口;所述步骤E包括:接收端SSLVPN网关对接收到的数据进行解包后,通过eth1口传送至本端交换机。作为一种改进,所述局域网数量至少为一组。作为一种优选,所述客户端是终端设备。作为一种优选,所述步骤A之前还包括以下步骤:a在服务端SSLVPN网关的入口网页处嵌入一个客户端应用程序;b客户端PC通过浏览器访问服务端SSLVPN网关;c下载客户端应用程序到客户端PC中,运行该客户端应用程序即在客户端PC中安装SSLVPN客户端代理程序。作为一种优选,所述步骤D为:当服务端网络向客户端传送数据时,服务端的SSLVPN网关的eth1口接收到本方交换机传来的所有需要传送到接收端的数据,对这些数据进行封装后,从eth0口通过SSL隧道发送至客户端网卡;当客户端向服务端网络传送数据时,客户端的SSLVPN客户端代理程序将所有要发送至服务端网络的数据封装打包,通过网卡经SSL隧道传送至服务端服务端的SSLVPN网关的eth0口;所述步骤E为:当服务端网络向客户端传送数据时,客户端的SSLVPN客户端代理程序对接收到的数据进行解包;当客户端向服务端网络传送数据时,服务端SSLVPN网关对接收到的数据进行解包后,通过eth1口传送至本端交换机。作为一种优选,所述终端设备是PC、手机或PDA。通过本发明提供技术方案,为现在SSLVPN网关或应用程序增加了基于链路层的通信功能,使得SSLVPN能支持使用数据链路层协议的软件,从而使多个子网络合并成一个大的网络。子网络之间发起通信请求就像在局域网内部通信一样透明,在子网络间可以运行任何协议,包括WINS,icmp,DNS,DHCP,VoIP等数据链路层以上的局域网协议,可以真正的组成一个大的局域网。附图说明图1为实施例一中网络连接示意图;图2为本发明提供的通信方法的步骤流程图;图3为实施例一中PC之间互相访问时的数据流向图;图4为实施例一中客户端网络扩展图;图5为实施例二中网络连接示意图;图6为实施例二中PC之间互相访问时的数据流向图;具体实施方法下面将结合说明书附图对本发明的具体实施方式作进一步详述。第一实施例:如图1所示的两组局域网A和B,A网络和B网络内均设有SSLVPN网关。A网络包括SSLVPN网关A,交换机A和数台PC,其中SSLVPN网关A的eth0口与INTERNET连接,eth1口与交换机A连接,PC与交换机A2连接;B网络包括通过网线连接的SSLVPN网关B,交换机B和数台终端设备,网关B的eth0口与INTERNET连接,eth1口与交换机B连接,终端设备与交换机B连接。在本例中将网关A配置为服务端,网关B配置为客户端。在本例中,采用PC作为终端设备,除了PC之外,终端设备也可以采用手机,PDA等可以实现远程接入的终端设备。VPN建立双方是平等的,无论是从网关A发起请求到网关B设备建立隧道还是从网关B设备发起请求到网关A设备建立隧道都是平等的。如图2所示,客户端SSLVPN网关B主动向服务端SSLVPN网关A发送连接请求。服务端接收到连接请求后对客户端进行标准SSL验证,验证步骤如下:(1)服务端SSLVPN网关A首先对客户端SSLVPN网关B进行身份验证,验证不通过则向网关B发送错误信息;(2)身份验证通过后还可以进行密码验证或PKI证书验证,验证不通过则向客户端SSLVPN网关B发送错误信息。验证方式可以在服务端SSLVPN网关A配置页面上进行设置。服务端内置CA,可以生成PKI证书,也可以使用第三方根证书。服务器颁发的证书或者第三方证书应预先导入客户端SSLVPN网关B中。上述验证通过后,A网络和B网络之间建立了SSLVPN加密安全通道。当A网络向B网络传送数据时,交换机A将本方数据发送至网关A的eth1口,网关A将交换机A发送来的所有要传送到B网络的数据整体打包封装并从eth0口通过建立好的SSL隧道发送至客户端SSLVPN网关B的eth0口。由于交换机是位于数据链路层的,网关接收交换机的所有数据即为将数据链路层的数据全部接收并打包传送,从而实现了基于数据链路层的数据穿透。为了增加数据传送的安全性,所述数据打包的过程优选为经过预设的算法进行封装。网关B通过eth0口接收到数据包后将其解包,该过程优选使用预设的、与打包算法相应算法进行,网关B将解包后的数据通过eth1口传送至本方交换机B。B网络向A网络传送数据时,交换机B将本方数据发送至发送至网关B的eth1口,网关B将交换机B发送来所有发送到B网络的数据整体打包封装并从eth0口通过建立好的SSL隧道发送至网关A的eth0口,为了增加数据传送的安全性,所述数据打包的过程优选为经过预设的算法进行封装。网关A通过eth0口接收到数据包后将其解包,该过程优选使用预设的、与打包算法相应算法进行,网关A将解包后的数据通过eth1口传送至本方交换机A。为了保证A网络和B网络的SSLVPN网关的eth1口能够接收到本方交换机传送来的所有数据,eth1口应设为混杂模式。具体地说,当两个局域网之间互相访问时,例如A网络中的PC1要访问B网络中的PC3时,通常是知道PC3的机器名、域名或者IP地址,如图3所示,具体数据传送过程如下:首先解析机器名或者域名:如果知道PC3的的域名或机器名,PC1对PC3的访问请求会被发送给A网络上的域名服务器,同时也会发给B网络上的域名服务器。具体过程如下:该DNS请求会经过A网络的交换机A发送到网关A的eth1口上,由于网关A的eth1口设置成混杂模式,因此网关A能够接收到DNS请求并对其打包,随即通过已经建立好的SSL隧道发送给网关B的eth0口。网关B接收到该DNS请求后将该请求发送给客户端网络的域名服务器,客户端域名服务器接收到上述DNS请求后对其解析,并送回一条DNS应答,该应答被发送到客户端网络上。由于网关B的eth1口也是设置为混杂模式的,因此网关B3的eth1口能够接收到该应答并对其打包,然后通过SSL隧道发送给网关A的eth1口。网关A接收到应答后,将该应答发送到服务端网络上,服务端网络中的PC1收到该DNS应答后,即可知道PC3的IP地址信息。随后PC1通过PC3的IP访问PC3:当PC1和PC3的IP地址在同一个网段内时,PC1还需先解析PC3的MAC地址。具体过程如下:PC1先向网络A发送ARP请求,与DNS解析的请求类似,该ARP请求被网关A的eth1口捕获并打包发送给网关B,网关B的eth0口接收到请求后解包,并发送到B网络上,PC3收到后,会发出ARP应答,应答被网关B的eth1口捕获并打包发送给网关A,网关A的eth0将应答解包后通过eth1口发到A网络上,PC1由此获得了PC3的MAC地址。随后PC1和PC3之间可以相互发送通讯数据:当PC1向PC3发送通讯数据时,该数据被网关A的eth1口接收并打包发送给网关B,网关B的eth0口接收到数据包后解包,并发送到B网络上,PC3会接收到来自PC1的通讯数据。当PC3向PC1发送通讯数据时,该数据被网关B的eth1口接收并打包发送给网关A,网关A的eth0口接收到数据包后解包,并发送到B网络上,PC3会接收到来自PC1的通讯数据。为了进一步增强数据安全性,SSLVPN网关在进行数据打包和解包时优选经过预设的算法进行。通过使用本发明提供的通信方法,使得A网络和B网络之间数据链路层的数据能够进行完全的传送,由于局域网工作在数据链路层中,因此能够实现局域网中任何协议的穿透,相当于有一条隐形的网线从A网络的SSLVPN网关设备的eth1口连接到B网络的SSLVPN网关设备的eth1口(在图1中,该隐形网线用虚线标出),使得A网络中的PC1向B网络中的PC3发起通信请求就像在A网络内部和PC3通信一样透明。如图4所示,前述B网络可以扩展为相同结构的C网络,D网络,E网络等,根据设备型号和吞吐率的不同,可以组建不同规模的局域网之间互联的大型网络,在此网络间可以运行任何协议,包括WINS,icmp,DNS,DHCP,VoIP等2层以上的局域网协议,可以真正的组成一个规模宏大的局域网。实施例二:如图5所示,A网络为包括SSLVPN网关A,交换机A和数台PC的局域网,其中网关A的eth0口与INTERNET连接,eth1口与交换机A连接,PC机与交换机A连接。一台终端设备通过互联网连接至A网络eth0口,在这里终端设备为客户端,在本例中,终端设备为PC机。在本例中,网关A的入口网页处嵌入一个客户端应用程序,客户端PC5通过浏览器访问网关A时进入其入口网页,入口网页上提供客户端应用程序的下载链接。点击该链接,即可下载客户端应用程序到客户端PC中,运行该客户端应用程序会在客户端PC中安装SSLVPN客户端代理程序。当客户端PC需要通过浏览器访问A网络时,客户端向SSLVPN网关A发送连接请求;网关A接收到连接请求后对客户端进行标准SSL验证:(1)网关A首先对客户端进行身份验证,验证不通过则向客户端发送错误信息;(2)身份验证通过后进行密码验证或PKI证书验证,验证不通过则向客户端发送错误信息。验证方式可以在服务端SSLVPN网关A配置页面上进行设置。服务端内置CA,可以生成PKI证书,也可以使用第三方根证书。验证通过后,客户端PC和网关A之间通过浏览器建立起SSLVPN加密安全通道。A网络向客户端PC传送数据时,服务端交换机A将本方所有数据发送至网关A的eth1口,其中eth1口设为混杂模式,网关A将接收到的所有数据打包并从eth0口经SSL隧道发送至客户端PC上的网卡。客户端PC的网卡接收到数据包后,SSLVPN客户端代理程序将其解包。客户端PC向A网络传送数据时,客户端SSLVPN客户端代理程序将本方所有数据打包通过网卡,经SSL隧道发送至网关A的eth0口;网关A对数据包进行解包操作,并通过eth1口传送至本方。为了保证数据安全性,上述打包和解包的过程应经过预先设定的算法进行。具体地说,PC1要访问PC3时,如图6所示与实施例一基本相同,区别点在于,客户端没有交换机,且实施例一种的网关B的功能由PC3中的SSLVPN客户端代理程序承担。客户端PC和A网络中的其他电脑有相同的访问A网络的权限,并且任何局域网协议都能够运行,相当于有一条隐形的网线从A网络的SSLVPN网关设备的eth1口连接到B网络的SSLVPN网关设备的eth1口(在图5中,该隐形网线用虚线标出)。通过互联网接入A网络的PC可以为多台,在本实施例中,除了PC之外,客户端也可以采用手机,PDA等可以实现远程接入的终端设备。当客户端采用手机时,客户端可以通过GSM、CDMA等无线移动网络与INTERNET连接。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1