0%

vpn技术简述

写在前面

无论是访问外网资源(google,youtube等),还是居家办公访问公司内网,我们都需要使用到vpn这个东东。VPN(virtual private network)是指在公用网络上建立一个私有的、专用的虚拟通信网络。本质就是建立隧道传递原有的业务流量,在隧道两端进行业务流量的封装与解封装,隧道两端则是需要互通的两个子网。

vpn技术的一些分类

有几种角度的分类方式,其一是根据建设单位(运营商还是企业自身)来分类:

  • 租用运营商VPN专线搭建企业VPN网络:主要是MPLS VPN, 相较于传统的专线(E1、SDH专线)更便宜
  • 用户企业自建VPN网络:基于internet建立企业vpn网络,具体技术包括GRE、L2TP、IPSec、SSLVPN等。

根据组网方式的不同:
本质就是隧道端点位置的不同。记住两个点:加密点/隧道点 和 通信点

  • 远程访问VPn(access VPN):适合居家办公场景,一般在PC上安装客户端即可,隧道端点位于PC上,也叫做remote access VPN。加密点/隧道点和通信点都在PC或手机等设备上。
  • 局域网到局域网的vpn(也称网关到网关的vpn):适用于异地机构的互联,隧道端点位于网络设备上,也叫做site-to-site VPN,这里有两种分类。加密点/隧道点和通信点在网关、防火墙等专门网络设备上。
    • 一种叫intranet-based site-to-site, 即两端的局域网都属于一家公司,把几个私网连接在一起
    • 一种叫extranet-based site-to-site, 即两端的局域网不属于一家公司,只分享一些固定的资源,而其它资源保持私有

按照vpn技术实现的网络层次进行分类:

  • 基于数据链路层的VPN:L2TP、L2F、PPTP。其中L2F和PPTP已经基本上被L2TP替代了
  • 基于网络层的VPN:IPSec、GRE
  • 基于应用层的VPN:SSL VPN

基于internet的VPN技术有一个共同的特点就是必须解决网络安全的问题。

VPN关键技术点

隧道技术

隧道技术是VPN的基本技术,类似于点到点的连接技术。它的基本过程就是在数据进入源VPN网关后,将数据封装后通过internet传输到目的vpn网关后再对数据进行解封装。可初略认为vpn网关之间是直连的,是一条隧道,封装的报文不关心具体传输路径。封装后的报文src ip是源vpn网关,dest ip是目的vpn网关。

认证

移动办公等场景下,需要对用户的身份进行验证。

  • GRE不支持认证
  • L2TP依赖于PPP提供的认证技术。
  • IPSec:通过IKEv2拨号时,支持进行EAP认证。接入用户的用户名和密码可以本地认证,也可以通过RADIUS服务器认证。认证通过后再给用户分配内部的IP地址,通过此IP地址对用户进行授权和管理。另外IPSec还支持数据源认证
  • SSL VPN: 支持本地认证,证书认证和服务器认证。主要是对服务器进行身份认证,确认web网页的合法性。

加密技术

internet上传输的报文如果不做加密处理,都是处于裸奔状态,比如我们通过wireshark抓包就可以直接读取到报文内容。加密对象有数据报文和协议报文之分,能够实现协议报文和数据报文都加密的协议安全系数更高。

  • GRE和L2TP本身不提供加密技术,所以通常结合IPSec协议一起使用,而IPSec只支持单播封装,很好互补
  • IPSec:支持数据报文和协议报文加密。IPSec一般采用对称密钥算法加密数据。
  • SSL VPN: 支持数据报文和协议报文加密。SSL VPN采用非对称密钥算法加密数据(公钥加密,私钥解密)。

数据验证技术

数据验证就是对收到的报文进行验货。比如常用MD5验证文件的完整性。在收发两端都对报文进行验证,只有摘要一致的报文才被认可。

  • GRE:本身只提供简单的校验和验证及关键字验证。
  • L2TP:不提供数据验证技术
  • IPSec: 支持对数据进行完整性验证和数据源验证。在IPSec中验证和加密通常一起使用,对加密后的报文HMAC(keyed-hash message authentication code)生成摘要
  • SSL VPN:支持对数据进行完整性验证和数据源验证。SSL VPN采用公钥体质,利用Hash算法生成摘要,再用私钥加密摘要生成数字签名,利用公钥进行解密。利用公钥和私钥的一一关系可以对数据源进行认证。

总结一下这几种vpn技术的应用场景:

| GRE | L2TP | IPSec | SSL VPN |
| :— | :— | :— | :— | :— |
| 作用范围 | IP层及以上数据 | IP层及以上数据 | IP层及以上数据 | 应用层特定数据 |
| 适用场景 | internet VPN | access vpn | internet vpn; accese | access vpn |
| 身份认证 | 不支持 | 支持,基于PPP的chap、pap、eap认证| 支持,采用IP或ID+口令或证书进行数据源认证;IKEv2拨号方式采用EAP认证进行用户身份认证 | 支持,用户名+口令+证书对服务器进行认证,也可进行双向认证 |
| 加密技术 | 不支持 | 不支持 | 支持 | 支持 |
| 数据验证 | 支持,校验和验证、关键字验证 | 不支持 | 支持 | 支持 |
| 如何使用 | GRE over IPSec | L2TP over IPSec | 单独使用 | SSL VPN |