网络概念-002 VPN虚拟专用网络详解

引言:由于工作中经常用到VPN,所以想详细了解一下VPN技术。下面是通过查看网络大神们的文章写下的笔记,在此非常感谢作者们的辛苦分享。具体参照的原文链接有以下:

https://jingyan.baidu.com/article/02027811886aee1bcd9ce54f.html

http://www.elecfans.com/baike/wangluo/vpn/20180115616185.html

https://wenku.baidu.com/view/b675a43a26d3240c844769eae009581b6bd9bd31.html

https://wenku.baidu.com/view/bce21c631ed9ad51f01df2df.html


一  VPN简介

      VPN,virtual private network,虚拟专用网络。虚拟指的是一种逻辑连接;专用/私有指的是一种排他性连接。

     那么,VPN的功能是什么呢?由于公网IP的资源不足,在组建局域网时通常使用保留地址作为内部IP,(比如最常用的C类保留地址:192.168.0.0-192.168.255.255)这些地址是不会被互联网分配的,因此它们在互联网上也无法被路由的,所以在正常情况下无法直接通过Internet外网访问到在局域网内的主机。为了实现这一目的,需要使用VPN隧道技术建立一个虚拟专用网络。

      比如,一个企业的总部A网络中搭建的ERP系统服务器(假设IP为192.168.1.251),总部的计算机可以通过内网地址进行直接访问,但在外地的分公司B无法通过Internet外网访问这台服务器的内网地址。那么,分公司B就需要通过VPN接入到总部A的局域网内来访问这台服务器。

1  VPN工作原理简述如下:

1)VPN网关一般会采用双网卡结构,内网卡接入公司总部A的内部局域网络,外网卡使用公共IP接入Internet。同样地,分公司B也要具有这样的VPN网关设备;

2)比如说分公司B的终端(192.168.2.2)需要访问总部A的服务器(192.168.1.252),其发出的访问数据包的目标地址为服务器的IP:192.168.1.252。

3)分公司B局域网的VPN网关在接收到终端(192.168.2.2)发出的访问数据包①时对其目标地址(192.168.1.252)进行检查,发现目标地址属于公司总部A网络的地址,于是将该数据包①根据所采用的VPN技术进行封装,同时VPN网关会构造一个新的VPN数据包②,并将封装后的原数据包①作为VPN数据包②的负载,VPN数据包的目标地址为公司总部A网络的VPN网关的公共IP地址。

4)分公司B局域网的VPN网关将VPN数据包发送到Internet外网中,由于VPN数据包的目标地址是总部A网络的VPN网关的外部地址,所以该数据包将被Internet中的路由正确地发送到总部A网络的VPN网关;

 5)总部A网络的VPN网关对接收到的数据包②进行检查,如果发现该数据包是从分公司B网络的VPN网关发出的,即可判定该数据包为VPN数据包,并对该数据包进行解包。解包的过程主要是将VPN数据包的包头剥离,将负载通VPN技术反向处理还原成原始的数据包①;

6)总部A网络的VPN网关将还原后的原始数据包发送至目标服务器(192.168.1.252)。在服务器(192.168.1.252)看来,它收到的数据包就跟从终端(192.168.2.2)直接发过来的一样。  

7)从服务器(192.168.1.252)返回终端(192.168.2.2)的数据包处理过程与上述过程原理是一样的。这样就完成了整个通过VPN的访问。

      通过上述说明可以发现,在VPN网关对数据包进行处理时,有两个参数对于VPN通讯十分重要:原始数据包的目标地址(VPN目标地址)和远程VPN网关地址。根据VPN目标地址,VPN网关能够判断对哪些数据包进行VPN处理,对于不需要处理的数据包通常情况下可直接转发到上级路由;远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址,即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的,在进行VPN通讯时,隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。

      与此同时,上述描述中没有提及用到的加密、认证和隧道等技术,详细的工作流程见下图:

2 VPN的特点

1)采用加密、认证和隧道技术,利用公共通信网络设备的一部分来发送专用网络信息;

2)为相互通信的节点建立一个相对封闭的、安全的、逻辑上的专用网络;

3)只允许特定的组织之间建立对等的连接,保证在网络中传输的数据的保密性;

4)能够提供强大的接入控制和入侵保护,保证内部信息交换的保密性

3 VPN的分类

3.1 按VPN的协议分类:

  VPN的隧道协议主要有三种,PPTP、L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议;IPSec是第三层隧道协议。

3.2 按VPN的应用分类:

  (1)Access VPN(远程接入VPN):客户端到网关,使用公网作为骨干网在设备之间传输VPN数据流量;

  (2)Intranet VPN(内联网VPN):网关到网关,通过公司的网络架构连接来自同公司的资源;

  (3)Extranet VPN(外联网VPN):与合作伙伴企业网构成Extranet,将一个公司与另一个公司的资源进行连接。

3.3 按所用的设备类型进行分类:

  网络设备提供商针对不同客户的需求,开发出不同的VPN网络设备,主要为交换机、路由器和防火墙:

  (1)路由器式VPN:路由器式VPN部署较容易,只要在路由器上添加VPN服务即可;

  (2)交换机式VPN:主要应用于连接用户较少的VPN网络;

  (3)防火墙式VPN:防火墙式VPN是最常见的一种VPN的实现方式,许多厂商都提供这种配置类型

3.4 按照实现原理划分:

  (1)重叠VPN:此VPN需要用户自己建立端节点之间的VPN链路,主要包括:GRE、L2TP、IPSec等众多技术。

  (2)对等VPN:由网络运营商在主干网上完成VPN通道的建立,主要包括MPLS、VPN技术。

4 VPN的实现方式

VPN的实现有很多种方法,常用的有以下四种:

  1)VPN服务器:在大型局域网中,可以通过在网络中心搭建VPN服务器的方法实现VPN。

  2)软件VPN:可以通过专用的软件实现VPN。

  3)硬件VPN:可以通过专用的硬件实现VPN。

  4)集成VPN:某些硬件设备,如路由器、防火墙等,都含有VPN功能,但是一般拥有VPN功能的硬件设备通常都比没有这一功能的要贵。

二 实现VPN的关键技术

1 实现VPN的关键技术简介

1)隧道化协议(Tunneling Protocol)

      隧道技术是将数据包分组封装的技术,是VPN实现以内部网地址通信与多协议通信的重要功能,PPTP、L2TP、IPSec、GRE和GTP被广泛使用

2)认证协议

      在远程访问VPN中,使用了用户名及口令,其被用来判断用户名是否有权访问。PPP采用了PAP(Password Authentication Protocol)及CHAP(Challenge Handshake Authentication Protocol)等规程进行认证。PPTP及L2TP等隧道协议采用这种PPP的认证协议。

3)加密技术

      加密技术有IPSec ESP(Encapsulating Secutity Payload)

2 隧道技术

      隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据可以是不同协议的数据帧活包。隧道协议将这些数据帧或包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网传递。

      被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径被称为隧道。一旦到达网络重点,数据将被解包并转发到最终目的地。

      简单来说,隧道技术就是指包括数据封装、传输和解包在内的全过程。

      封装化和加密方式多种多样,一般来说,只将数据加密的通信路径不能称作隧道。在一个分组上再加上一个头标蔡称作是封装化。对封装化的数据分组是否加密取决于隧道协议。例如IPSec的ESP是加密封装化的协议,L2TP则不对分组加密保持原样地进行封装。

      现有的封装协议主要包括两类:一类是二层隧道协议,由于隧道协议封装的是OSI开放系统互联模型中的第二层数据链路层的数据包,所以称之为二层隧道协议,如PPTP(点到点隧道协议),L2F,L2TP主要用于构建远程访问型的VPN;另一类是三层隧道协议,如IPSec、GRE等,它把网络层的各种协议直接封装到隧道协议中进行传输,由于被封装的是OSI第三层的网络协议,所以称为三层隧道协议。

      二层隧道协议:主要用于Access VPN

 

 

 

       三层隧道协议:

3  用户认证

      在远程访问中,只有通过认证的远程用户才能穿越Internet不受限制地利用内部网资源。这种认证机制主要由PPP功能实现,方法也有多种。主要的PPP认证方式有:

      在链路建立的第二个阶段进行用户验证,最常用的认证协议有口令验证协议PAP和挑战-握手协议CHAP。

      PAP是一种简单的明文验证方式。网络接入服务器NAS要求用户提供用户名和口令,PAP以铭文方式返回用户信息。这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。因此PAP无法提供避免受到第三方攻击的保障措施。

      CHAP安全行比PAP更好,在网上传递的不是口令而是一次性的随机数。下图为认证流程:

      PPP扩展认证协议(EAP)是一个用于PPP认证的通用协议,可以支持多种认证方法。EAP并不在链路建立阶段指定认证方法,而是把这个过程推迟到认证阶段。这样认证方就可以在得到更多信息以后再决定使用什么方法认证。这种机制还允许PPP认证方简单地把收到的认证报文透传给后方的认证服务器,由后方的认证服务器来真正实现各种认证方法。

       还有一种基于服务器的认证方式——RADIUS(Remote Authentication Dial In User Service),相当于是存放使用者的用户名及口令的数据库。

4 加密算法

      现代加密算法分为三大类:

      一,对称加密算法:加解密密钥一致,如DES、3DES、AES,三种被广泛使用的商用加密算法;

      二,非对称加密算法:加解密密钥不一致,但是相互关联,且不可互相推导,如RSA

      三,单向散列函数:一类特殊的加密算法,一般用来认证。输入变长的数据可以获得定长的输出。输入数据发生变化,输出数据立即变化。如MD5(Message Digest 5  消息摘要5,广泛使用)、SHA

      对称加密算法结构简单,运算速度快,便于使用硬件实现,适合加密大量数据。但密钥管理困难。非对称加密算法结构复杂,运算速度慢,很难用硬件实现,只适合加密少量数据,密钥管理相对简单。对称加密算法用于加密大量的实际数据,而非对称加密算法用来加密对称加密算法的密钥,从而完成对称加密算法的密钥分发。

MD5:

      密钥管理协议IKE和ISAKMP。

      本章节涉及的内容偏密码学,深度的内容不聊了。

5 常用的VPN技术

1)MPLS VPN是一种基于MPLS技术的IP VPN,是在网络路由和交换设备上应用MPLS(MulTIprotocol Label Switching,多协议标记交换)技术,简化核心路由器的路由选择方式,利用结合传统路由技术的标记交换实现的IP虚拟专用网络(IP VPN)。MPLS优势在于将二层交换和三层路由技术结合起来,在解决VPN、服务分类和流量工程这些IP网络的重大问题时具有很优异的表现。因此,MPLS VPN在解决企业互连、提供各种新业务方面也越来越被运营商看好,成为在IP网络运营商提供增值业务的重要手段。MPLS VPN又可分为二层MPLS VPN(即MPLS L2 VPN)和三层MPLS VPN(即MPLS L3 VPN)。

2)SSL VPN是以HTTPS(Secure HTTP,安全的HTTP,即支持SSL的HTTP协议)为基础的VPN技术,工作在传输层和应用层之间。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制,可以为应用层之间的通信建立安全连接。SSL VPN广泛应用于基于Web的远程安全接入,为用户远程访问公司内部网络提供了安全保证。

3)IPSec VPN是基于IPSec协议的VPN技术,由IPSec协议提供隧道安全保障。IPSec是一种由IETF设计的端到端的确保基于IP通讯的数据安全性的机制。它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。


转载请注明出处,谢谢!

猜你喜欢

转载自blog.csdn.net/qq_35550345/article/details/87877443