VPN工作原理
引言
在过去几十年中,世界发生了很大的变化。现在很多公司除了处理本地或地区性事务外,还要考虑全球市场和物流的问题。很多公司在全国甚至全球都设有分支机构,而这些公司都需要做的一件事情就是:找到能够与分公司进行快速、安全和可靠通信的方式,而不管这些分公司设在何处。
直到最近为止,要想实现这个目的,还只能通过利用租用线路的方式来维护广域网(WAN)。租用线路的范围从ISDN(集成服务数字网络,速度为128Kbps)到OC3(光学载波第3级,速度为155Mbps)光纤,这为公司提供了一种可以将其专用网络扩展到临近地理位置之外的方法。与互联网等公用网络相比,WAN在可靠性、性能和安全性方面都具有明显的优势。但要维护一个 WAN,尤其是通过租用线路来维护时,费用是非常昂贵的,而且成本通常还会随着分公司之间距离的增加而增加。
虚拟专用网(VPN)工作原理
随着互联网的兴起,企业开始寻求利用互联网来扩展他们的网络。首先出现的是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,同时让所有公司都能在一个共享环境中工作。
模拟演示:每个局域网都是一个孤岛
假设您生活在广袤海洋中的一个岛上。您周围还有很多其他的岛屿,有一些离得非常近,有一些则离得比较远。若要去其他岛,通常的方式应该是从您的岛乘船前往要去的地方。当然,乘船也就意味着您几乎没有什么隐私——无论您做什么别人都能看到。
现在我们把每个岛看成一个专用局域网,而海洋就是互联网。乘船旅行就像通过互联网连接到Web服务器或其他设备。您无法控制互联网的线路和路由器,就像您无法控制船上的其他人一样。显然,如果您要使用公用资源连接两个专用网络的话,这种方式是无法保障安全性的。
继续我们的模拟演示。假设您所在的岛现在决定建造一座通往另一个岛屿的桥,这样人们可以更方便、更安全地直接来往于两个岛之间。即使您要连接的两个岛离得非常近,建造和维护一座桥的成本还是很高的,但您又特别想找到一种安全可靠的方式前往其他岛,所以您不顾一切地建了这座桥。您所在的岛可能还想同另外一个离得稍远的岛建立连接,但最终发现无法承担那么高的成本。
这同使用租用线路的情况非常类似。桥(租用线路)独立于海洋(互联网),但它让您能够连接各个岛屿(局域网)。很多公司选择这种路由方式,是因为它们需要安全可靠地连接自己的远程分公司。不过,如果分公司离得非常远,那么成本会高得难以承受,这和建造跨度很大的桥的情况一样。
那么,VPN在这中间又有什么作用呢?还是使用我们的模拟演示。我们可以给两个岛上的每位居民一艘小型潜水艇。假设您的潜水艇具有一些惊人的特性:
它很快。
您到哪里都可以方便地带着它。
它可以让其他任何船只或潜水艇都看不到您。
它很可靠。
只要买了第一艘潜水艇,以后再买其他潜水艇时只需很少的钱。
在我们的模拟演示中,拥有潜水艇的每个人就
相当于有权访问公司专用网络的远程用户。
尽管这两个岛上的居民还是和其他人一样在海上航行,但他们却可以随时穿梭往返,而不会存在隐私和安全性的问题。这就是VPN的工作原理。利用互联网作为媒介连接到专用LAN,网络的每个远程成员都可以通过一种安全可靠的方式进行通信。与租用线路相比,VPN还可以更方便地扩大范围,从而适应更多用户和不同位置的需求。事实上,可伸缩性正是VPN相对于典型租用线路的主要优势。与成本随着距离的增加而增加的租用线路不同,地理位置的远近对VPN的影响是微乎其微的。
VPN安全性:防火墙一个设计良好的VPN可以使用多种方法来保护连接和数据的安全性:
防火墙
加密技术
IPSec
AAA服务器 在接下来的几部分中,我们将分别介绍这些方法。首先从防火墙说起。
防火墙在专用网络和互联网之间提供了一道强大的屏障。您可以设置防火墙来限制开放端口的数量以及允许通过防火墙的数据包类型和协议。有些VPN产品,例如思科公司的1700路由器,可以通过运行相应的Cisco IOS进行升级,从而具备防火墙功能。在安装VPN之前,您应该先部署好一个功能强大的防火墙,但防火墙也可以用于终止VPN会话。
VPN安全性:加密技术加密是指一台计算机把要发送给另一台计算机的所有数据编码为只有后者才能解码的格式的过程。大多数计算机加密系统都属于以下两种类型之一:
对称密钥加密
公钥加密
在对称密钥加密中,每台计算机都有一个密钥(代码),用于对通过网络发送到另一台计算机的信息包进行加密。对称密钥要求您知道将要进行通信的计算机是哪一台,以便在每台计算机上安装密钥。对称密钥加密实际上与密码相同,两台计算机都必须知道密码才能对信息进行解码。这个代码提供了用于对信息进行解码的密钥。下面是一个简单的例子:您创建一条经过编码的消息,并将原消息中的每个字母都替换为其在字母表中后两位的字母,然后发送给朋友。这样“A”变成了“C”,“B”变成了“D”。您告诉自己信任的朋友说代码是“后移两位”。这样您的朋友收到消息时就可以进行解码,从而得知消息的内容。任何其他看到该消息的人看见的只是无意义的内容。
Flash: http://static.bowenwang.com.cn/flash/encryption-animation.swf
公钥加密方法结合使用了私钥和公钥。私钥只有您自己的计算机知道,而公钥则由您的计算机提供给其他任何希望进行安全通信的计算机。若要解码被加密的消息,计算机必须使用发送方的计算机提供的公钥以及它自己的私钥。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工作原理的更多相关文章
- <转>VPN技术原理
原文地址:VPN技术原理 VPN,Virtual Private Network(虚拟专用 网络),被定义为通过一个公用网络(通常是因特网)建立一个临时的.安全的连接,是一条穿过公用网络的安全.稳定的 ...
- 【转】Github轻松上手1-Git的工作原理与设置
转自:http://blog.sina.com.cn/s/blog_4b55f6860100zzgp.html 作为一个程序猿,如果没有接触过stack overflow和Github,就如同在江湖中 ...
- Git的思想和基本工作原理
Git的思想和基本工作原理 Chapter: 开始了解Git 1. 先谈谈版本控制的一些事 2. Git诞生背后的一些故事 3. 版本控制:集中式VS分布式 4. Git的思想和基本工作原理 5. G ...
- LVS集群之工作原理和调度算法(2)
LVS的工作机制 LVS里Director本身不响应请求,只是接受转发请求到后方,Realservers才是后台真正响应请求. LVS 工作原理基本类似DNAT,又不完全相像,它是一种四层交换,默 ...
- Git的思想和基本工作原理2
那么,简单地说,Git 究竟是怎样的一个系统呢?请注意,接下来的内容非常重要,若是理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 Git 的时候,请不要尝试把各种概 ...
- lvs、nginx、HAProxy、keepalive工作原理
1. lvs.nginx.HAProxy.keepalive工作原理 1.1. 前言 遇到了负载均衡和高可用选型问题,我觉的有必要好好理解下lvs,nginx,haproxy和keepalive的区别 ...
- TLB的作用及工作原理
TLB的作用及工作过程 以下内容摘自<步步惊芯——软核处理器内部设计分析>一书 页表一般都很大,并且存放在内存中,所以处理器引入MMU后,读取指令.数据需要访问两次内存:首先通过查询页表得 ...
- php面试题五之nginx如何调用php和php-fpm的作用和工作原理
nginx如何调用php 采用nginx+php作为webserver的架构模式,在现如今运用相当广泛.然而第一步需要实现的是如何让nginx正确的调用php.由于nginx调用php并不是如同调用一 ...
- 路由及路由器工作原理深入解析3:路由与port
日志"路由及路由器工作原理深入解析1"http://user.qzone.qq.com/2756567163/blog/1438322342介绍了"为什么要使用路 ...
随机推荐
- NSBundle的用法
bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBu ...
- JSP精华知识点总结
本文转自:http://blog.csdn.net/qy1387/article/details/8050239 JSP精华知识点总结 Servlet三个要素 1.必须继承自HttpServlet 2 ...
- Inno Setup入门(二十二)——Inno Setup类参考(8)
: Install Setup 2013-02-02 11:31 477人阅读 评论(0) 收藏 举报 列表框 列表框(ListBox)是Windows应用程序中重要的输入手段,其中包括多个选项用户可 ...
- UITextfield的一些属性
//设置左视图 不用设置frame UIImageView *imageV = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@&quo ...
- Shell学习笔记 ——第一天
1.程序第一行 指定执行Shell的程序 #!/bin/sh #!用来告诉系统它后面的参数是用来执行该文件的程序 2.在控制台输出信息 echo "Hello Shell" #! ...
- xmlHTTP技术资料
一.数据库远程管理技术 基于互联网的广域网现代应用中的一个重要环节是数据库远程监控.首先简单回顾一下互联网上的数据库远程管理技术的发展过程和方式: 早期通过编写CGI-BIN程序模块进行数据库远程管理 ...
- springAOP 的pointcut
<bean id="amqFilter" class="com.xxx.hotel.base.aspectj.AmQConsumerFilter"/> ...
- gpg XXX NO_PUBKEY XXX
手动添加PPA源遇到找不到公钥的情况 1. gpg --keyserver keyserver.ubuntu.com --recv-keys XXX gpg --armor --export XXX ...
- [转]Android 导入v7包常见错误,以及项目引用v7包错误解决
android下v4 v7 v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理. android的扩展包主要是用来兼容低版本的,比如android3.0以后出现 ...
- jenkins tags
List Subversion tags (and more) 参数设置 Tags filter ^((?!_ta_).)*$ 表示不含_ta_ Tags filtertrunk|(tags|bran ...