虚拟专用网(VPN)工作原理
引言
在过去几十年中,世界发生了很大的变化。现在很多公司除了处理本地或地区性事务外,还要考虑全球市场和物流的问题。很多公司在全国甚至全球都设有分支机构,而这些公司都需要做的一件事情就是:找到能够与分公司进行快速、安全和可靠通信的方式,而不管这些分公司设在何处。
直到最近为止,要想实现这个目的,还只能通过利用租用线路的方式来维护广域网(WAN)。租用线路的范围从ISDN(集成服务数字网络,速度为128Kbps)到OC3(光学载波第3级,速度为155Mbps)光纤,这为公司提供了一种可以将其专用网络扩展到临近地理位置之外的方法。与互联网等公用网络相比,WAN在可靠性、性能和安全性方面都具有明显的优势。但要维护一个 WAN,尤其是通过租用线路来维护时,费用是非常昂贵的,而且成本通常还会随着分公司之间距离的增加而增加。
随着互联网的兴起,企业开始寻求利用互联网来扩展他们的网络。首先出现的是Intranet(企业内部互联网),这是一种专供公司员工使用而设计的站点,受密码保护。现在,很多公司都搭建了自己的VPN(虚拟专用网),以满足远程员工和分公司的需求。
思科系统公司供图 一个典型的VPN可能包括公司总部的主LAN、远程分公司或分支机构的其他LAN以及从网络外部连接进来的个人用户。 |
从原理上来说,VPN就是利用公用网络(通常是互联网)把远程站点或用户连接到一起的专用网络。与使用实际的专用连接(例如租用线路)不同,VPN使用的是通过互联网路由的“虚拟”连接,把公司的专用网络同远程站点或员工连接到一起。在本文中,您将了解到VPN的基础知识,以及基本的VPN组件、技术、隧道技术和安全性。
VPN由什么组成?
一个设计良好的VPN可以给公司带来很多好处。例如,它可以:
- 扩展地理连接
- 改进安全性
- 降低运营成本(同传统WAN相比)
- 降低远程用户的传输时间和传送成本
- 提高生产效率
- 简化网络拓扑
- 可与全球网络连接
- 提供远距离工作支持
- 提供宽带网络兼容性
- 提供更快的ROI(投资回报)——同传统WAN相比
一个设计良好的VPN需要什么功能?它应当集成:
- 安全性
- 可靠性
- 可伸缩性
- 网络管理
- 策略管理
VPN有三种类型。在下面几部分中,我们将详细地介绍这些类型。
远程访问VPN
常见的VPN有两种。远程访问也称为虚拟专用拨号网络(VPDN),它是一种用户到LAN的连接,通常用于员工需要从各种远程位置连接到专用网络的公司。一般来说,公司都会把搭建大型远程访问VPN的工作外包给企业服务提供商(ESP)。ESP首先建立一个网络访问服务器(NAS),并向远程用户提供用于他们计算机的桌面客户端软件。然后,远程工作者就可以通过拨打免费号码连接NAS,并使用他们的VPN客户端软件访问公司网络。
典型的需要使用远程访问VPN的公司是拥有数百个销售人员的大型公司。远程访问VPN能够通过第三方服务提供商在公司专用网络和远程用户之间实现加密的安全连接。
三种类型VPN的示例 |
站点到站点式VPN
利用专用设备和大规模加密,公司可以通过公用网络(如互联网)连接到多个固定的站点。站点到站点式VPN有以下两种类型:
- 基于Intranet——如果公司有一个或多个远程位置想要加入到一个专用网络中,他们可以建立一个Intranet VPN,以便将LAN连接到另一个LAN。
- 基于Extranet——如果公司同其他公司(例如合作伙伴、供应商或客户)的关系紧密,他们可以建立一个Extranet VPN,以便将LAN连接到另一个LAN,同时让所有公司都能在一个共享环境中工作。
三种类型VPN的示例 |
模拟演示:每个局域网都是一个孤岛
假设您生活在广袤海洋中的一个岛上。您周围还有很多其他的岛屿,有一些离得非常近,有一些则离得比较远。若要去其他岛,通常的方式应该是从您的岛乘船前往要去的地方。当然,乘船也就意味着您几乎没有什么隐私——无论您做什么别人都能看到。
现在我们把每个岛看成一个专用局域网,而海洋就是互联网。乘船旅行就像通过互联网连接到Web服务器或其他设备。您无法控制互联网的线路和路由器,就像您无法控制船上的其他人一样。显然,如果您要使用公用资源连接两个专用网络的话,这种方式是无法保障安全性的。
继续我们的模拟演示。假设您所在的岛现在决定建造一座通往另一个岛屿的桥,这样人们可以更方便、更安全地直接来往于两个岛之间。即使您要连接的两个岛离得非常近,建造和维护一座桥的成本还是很高的,但您又特别想找到一种安全可靠的方式前往其他岛,所以您不顾一切地建了这座桥。您所在的岛可能还想同另外一个离得稍远的岛建立连接,但最终发现无法承担那么高的成本。
这同使用租用线路的情况非常类似。桥(租用线路)独立于海洋(互联网),但它让您能够连接各个岛屿(局域网)。很多公司选择这种路由方式,是因为它们需要安全可靠地连接自己的远程分公司。不过,如果分公司离得非常远,那么成本会高得难以承受,这和建造跨度很大的桥的情况一样。
那么,VPN在这中间又有什么作用呢?还是使用我们的模拟演示。我们可以给两个岛上的每位居民一艘小型潜水艇。假设您的潜水艇具有一些惊人的特性:
- 它很快。
- 您到哪里都可以方便地带着它。
- 它可以让其他任何船只或潜水艇都看不到您。
- 它很可靠。
- 只要买了第一艘潜水艇,以后再买其他潜水艇时只需很少的钱。
在我们的模拟演示中,拥有潜水艇的每个人就 相当于有权访问公司专用网络的远程用户。 |
尽管这两个岛上的居民还是和其他人一样在海上航行,但他们却可以随时穿梭往返,而不会存在隐私和安全性的问题。这就是VPN的工作原理。利用互联网作为媒介连接到专用LAN,网络的每个远程成员都可以通过一种安全可靠的方式进行通信。与租用线路相比,VPN还可以更方便地扩大范围,从而适应更多用户和不同位置的需求。事实上,可伸缩性正是VPN相对于典型租用线路的主要优势。与成本随着距离的增加而增加的租用线路不同,地理位置的远近对VPN的影响是微乎其微的。
VPN安全性:防火墙
一个设计良好的VPN可以使用多种方法来保护连接和数据的安全性:
- 防火墙
- 加密技术
- IPSec
- AAA服务器
在接下来的几部分中,我们将分别介绍这些方法。首先从防火墙说起。
防火墙在专用网络和互联网之间提供了一道强大的屏障。您可以设置防火墙来限制开放端口的数量以及允许通过防火墙的数据包类型和协议。有些VPN产品,例如思科公司的1700路由器,可以通过运行相应的Cisco IOS进行升级,从而具备防火墙功能。在安装VPN之前,您应该先部署好一个功能强大的防火墙,但防火墙也可以用于终止VPN会话。
VPN安全性:加密技术
加密是指一台计算机把要发送给另一台计算机的所有数据编码为只有后者才能解码的格式的过程。大多数计算机加密系统都属于以下两种类型之一:
- 对称密钥加密
- 公钥加密
在对称密钥加密中,每台计算机都有一个密钥(代码),用于对通过网络发送到另一台计算机的信息包进行加密。对称密钥要求您知道将要进行通信的计算机是哪一台,以便在每台计算机上安装密钥。对称密钥加密实际上与密码相同,两台计算机都必须知道密码才能对信息进行解码。这个代码提供了用于对信息进行解码的密钥。下面是一个简单的例子:您创建一条经过编码的消息,并将原消息中的每个字母都替换为其在字母表中后两位的字母,然后发送给朋友。这样“A”变成了“C”,“B”变成了“D”。您告诉自己信任的朋友说代码是“后移两位”。这样您的朋友收到消息时就可以进行解码,从而得知消息的内容。任何其他看到该消息的人看见的只是无意义的内容。
发送方的计算机使用对称密钥对文档进行加密,然后又使用
接收方的计算机的公钥对对称密钥进行加密。接收方的计算机
使用其私钥来解码对称密钥,然后使用对称密钥来解码文档。
公钥加密方法结合使用了私钥和公钥。私钥只有您自己的计算机知道,而公钥则由您的计算机提供给其他任何希望进行安全通信的计算机。若要解码被加密的消息,计算机必须使用发送方的计算机提供的公钥以及它自己的私钥。Pretty Good Privacy(PGP)是一种非常流行的公钥加密实用工具,它几乎可对任何数据进行加密。
VPN安全性:IPSec
网络协议安全性协议(IPSec)提供了增强的安全功能,例如更好的加密算法和更全面的身份验证。
思科系统公司供图 利用IPSec的远程访问VPN |
IPSec具有两种加密模式:隧道和传输。隧道模式对每个数据包的标题和有效负载都加密,而传输模式仅加密有效负载。只有兼容IPSec的系统才能使用这种协议。此外,所有设备都必须使用一个公共密钥,而且每个网络的防火墙都必须具有相似的安全策略设置。IPSec可以加密各种设备之间的数据,例如:
- 路由器到路由器
- 防火墙到路由器
- 个人计算机到路由器
- 个人计算机到服务器
VPN安全性:AAA服务器
AAA服务器(验证、授权和计费)用于在远程访问VPN环境中实现更加安全的访问。当拨号客户端要求建立会话的请求传入后,该请求会被代理发送给AAA服务器。然后,AAA服务器会检查以下事项:
- 您是谁(验证)
- 您可以做什么(授权)
- 您实际做了什么(计费)
计费信息尤其适用于跟踪客户端的使用情况,以便进行安全审核、开票或报告目的。
安装VPN
根据VPN类型的不同(远程访问或站点到站点),您需要在建立VPN之前事先部署一些组件。这些组件可能包括:
- 每位远程用户的桌面软件客户端
- 专用硬件,例如VPN集中器或安全PIX防火墙
- 用于拨号服务的专用VPN服务器
- 服务提供商用于远程用户VPN访问的NAS(网络访问服务器)
- VPN网络和策略管理中心
由于安装VPN并没有一个广泛接受的标准,因此很多公司自主开发了一站式解决方案。在下面几部分中,我们将讨论思科系统公司(最著名的网络技术公司之一)提供的几种解决方案。
VPN集中器
Cisco VPN集中器融合了最先进的加密技术和身份验证技术,专门为创建远程访问VPN而设计。它们提供了高实用性、高性能和可伸缩性,并包括称为可伸缩加密处理模块(SEP)的组件,让用户可以方便地提高容量和吞吐量。集中器是以模型形式提供的,可以满足任何企业规模的需求,从最多只有100位远程访问用户的小型企业到最多10,000位并发远程用户的大型组织。
Cisco VPN3000集中器 |
专门针对VPN优化的路由器
思科公司专门针对VPN优化的路由器提供了可伸缩性、路由功能、安全性和 QoS(服务质量)。以 Cisco IOS(互联网操作系统)软件为基础,他们提供了一种路由器,可以满足从通过中心站点VPN聚合访问的小型办公室/家庭办公室到大规模企业的各种环境需求。
Cisco 1750型模块化接入路由器 |
PIX防火墙
PIX(专用互联网交换)防火墙是一项很了不起的技术,它把动态网络地址转换、代理服务器、数据包过滤、防火墙和VPN功能全部集成到单个硬件中。
思科系统公司供图 思科PIX防火墙 |
与使用Cisco IOS不同,该设备具有一个高度简化的操作系统,拥有处理各种协议的能力,从而通过跟踪IP来获得极好的稳定性和表现。
隧道技术
大多数VPN都依靠隧道技术来建立可通过互联网访问的专用网络。从实质上来说,隧道技术就是将整个数据包放入另一个数据包中,并将后者通过网络发送出去的过程。网络和数据包进出网络的入口点和出口点(我们称为隧道接口)都能够理解外部数据包的协议。
隧道技术需要使用三种不同协议:
- 运载协议——网络作为信息传输媒介的协议
- 封装协议——用于封装原始数据的协议(GRE、IPSec、L2F、PPTP、L2TP)
- 乘客协议——将要携带的原始数据(IPX、NetBeui、IP)
隧道技术对于VPN具有重要意义。例如,您可以将使用某种不受互联网支持的协议(例如NetBeui)的数据包放入IP数据包中,然后通过互联网将其安全地发送出去。您也可以将使用专有(不可路由)IP地址的数据包放入使用一个通用唯一的IP地址的数据包中,从而通过互联网扩展专有网络。
隧道技术的动画演示
隧道技术:站点到站点
在站点到站点式VPN中,通常使用GRE(通用路由封装)作为封装协议,它提供了如何封装乘客协议的框架,以便在运载协议(通常是基于IP的协议)中传输乘客协议。这包括有关要封装的数据包的类型信息,以及客户端和服务器之间的连接信息。隧道模式中的IPSec有时也用来取代GRE,充当封装协议。IPSec适用于远程访问VPN和站点到站点式VPN。但必须要两个隧道接口都支持 IPSec才能使用IPSec。
隧道技术:远程访问
在远程访问VPN时,隧道技术通常使用PPP来实现。作为TCP/IP堆栈的一部分,PPP(端对端协议)在主机通过网络同远程系统通信时会作为其他IP协议的载体。远程访问VPN隧道技术能否实现取决于PPP。
下面列出的各种协议都是使用PPP的基本结构建立的,它们都用于远程访问 VPN。
- L2F(第二层转发)——L2F由思科公司开发,它可以使用PPP支持的任何身份验证架构。
- PPTP(点对点隧道协议)——PPTP由PPTP Forum开发,PPTP Forum 是一个联盟,其成员包括US Robotics、Microsoft、3COM、Ascend和ECI Telematics。PPTP支持40位和128位加密,并可以使用PPP支持的任何身份验证架构。
- L2TP(第二层隧道协议)——L2TP是由PPTP Forum各成员、思科公司和IETF(互联网工程工作组)联手打造的产品。它结合了PPTP和L2F的功能,且完全支持IPSec。
L2TP可以用作站点到站点式VPN以及远程访问VPN的隧道协议。事实上,L2TP可以在下列设备之间建立隧道:
- 客户端和路由器
- NAS和路由器
- 路由器和路由器
卡车相当于运载协议,盒子相当于封装协议,计算机则是乘客协议。 |
您可以把隧道想像成是通过UPS把计算机递送给您的情形。供应商UPS公司用盒子(封装协议)包装好计算机(乘客协议),然后把它放到停在自己仓库(隧道入口)中的一辆UPS卡车(运载协议)上。这辆卡车(运载协议)通过高速公路(互联网)驶达您家(隧道出口),并把计算机交付给您。您打开盒子(封装协议),并取出计算机(乘客协议)。隧道技术的原理就是这么简单!
可以看出,VPN是公司用于连接各地员工和合作伙伴的很好的方式。