VPN(虚拟专用网)攻略大全,你一定会用到!

news2024/11/19 15:28:52

你们好,我的网工朋友。

今天想和你聊聊VPN。

在VPN出现之前,企业分支之间的数据传输只能依靠现有物理网络(例如Internet)。

但由于Internet中存在多种不安全因素,报文容易被网络中的黑客窃取或篡改,最终造成数据泄密、重要数据被破坏等后果。

除了通过Internet,还可以通过搭建一条物理专网连接保证数据的安全传输,VPN应运而生。

今天就给你详细说说几类常见的VPN技术, 是什么,怎么用。

今日文章阅读福利:《VPN知识点-技术图谱》

私信我,发送暗号“VPN”,即可获取该知识点技术图谱,更简单清晰地把VPN技术梳理透。

01 VPN到底是啥?

VPN即虚拟专用网,泛指通过VPN技术在公用网络上构建的虚拟专用网络。

VPN用户在此虚拟网络中传输私网流量,在不改变网络现状的情况下实现安全、可靠的连接。

VPN和传统的数据专网相比,优势很多:

  • 安全:

在远端用户、驻外机构、合作伙伴、供应商与公司总部之间建立可靠的连接,保证数据传输的安全性。这对于实现电子商务或金融网络与通讯网络的融合特别重要。

  • 廉价:

利用公共网络进行信息通讯,企业可以用更低的成本连接远程办事机构、出差人员和业务伙伴。

  • 支持移动业务:

支持驻外VPN用户在任何时间、任何地点的移动接入,能够满足不断增长的移动业务需求。

  • 可扩展性:

由于VPN为逻辑上的网络,物理网络中增加或修改节点,不影响VPN的部署。

公共网络又经常被称为VPN骨干网(VPN Backbone),公共网络可以是Internet,也可以是企业自建专网或运营商租赁专网。

VPN分类 - 根据建设单位不同

VPN分类 - 根据组网方式不同

VPN分类 - 根据实现的网络层次

工作在网络层和数据链路层的VPN又被称为三层VPN和二层VPN。

02 VPN关键技术:隧道技术

VPN技术的基本原理是利用隧道(Tunnel)技术,对传输报文进行封装,利用VPN骨干网建立专用数据传输通道,实现报文的安全传输。

位于隧道两端的VPN网关,通过对原始报文的“封装”和“解封装”,建立一个点到点的虚拟通信隧道。

隧道的功能就是在两个网络节点之间提供一条通路,使数据能够在这个通路上透明传输。

VPN隧道一般是指在VPN骨干网的VPN节点之间建立的用来传输VPN数据的虚拟连接。

隧道是构建VPN不可或缺的部分,用于把VPN数据从一个VPN节点透明传送到另一个上。

隧道通过隧道协议实现。

目前已存在不少隧道协议,如GRE(Generic Routing Encapsulation)、L2TP(Layer 2 Tunneling Protocol)等。

隧道协议通过在隧道的一端给数据加上隧道协议头,即进行封装,使这些被封装的数据能都在某网络中传输,并且在隧道的另一端去掉该数据携带的隧道协议头,即进行解封装。

报文在隧道中传输前后都要通过封装和解封装两个过程。

部分隧道可以混合使用,如GRE Over IPSec隧道。

03 VPN关键技术:身份认证、数据加密与验证

身份认证、数据加密和认证技术可以有效保证VPN网络与数据的安全性:

  • 身份认证:

可用于部署了远程接入VPN的场景,VPN网关对用户的身份进行认证,保证接入网络的都是合法用户而非恶意用户。也可以用于VPN网关之间对对方身份的认证。

  • 数据加密:

将明文通过加密变成密文,使得数据即使被黑客截获,黑客也无法获取其中的信息。

  • 数据验证:

通过数据验证技术对报文的完整性和真伪进行检查,丢弃被伪造和被篡改的报文。

04 常见VPN技术—IPSec

01 IPSec概述

IPSec(IP Security) VPN一般部署在企业出口设备之间,通过加密与验证等方式,实现了数据来源验证、数据加密、数据完整性保证和抗重放等功能。

  • 数据来源验证:接收方验证发送方身份是否合法。
  • 数据加密:发送方对数据进行加密,以密文的形式在Internet上传送,接收方对接收的加密数据进行解密后处理或直接转发。
  • 数据完整性:接收方对接收的数据进行验证,以判定报文是否被篡改。
  • 抗重放:接收方拒绝旧的或重复的数据包,防止恶意用户通过重复发送捕获到的数据包所进行的攻击。

02 IPSec协议体系

IPSec不是一个单独的协议,它给出了IP网络上数据安全的一整套体系结构,包括AH(Authentication Header)、ESP(Encapsulating Security Payload)、IKE(Internet Key Exchange)等协议。

IPSec使用认证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两种安全协议来传输和封装数据,提供认证或加密等安全服务。

  • AH和ESP协议提供的安全功能依赖于协议采用的验证、加密算法。
  • AH仅支持认证功能,不支持加密功能。ESP支持认证和加密功能。
  • 安全协议提供认证或加密等安全服务需要有秘钥的存在。

03 秘钥交换的方式有两种

  • 带外共享密钥:

在发送、接收设备上手工配置静态的加密、验证密钥。

双方通过带外共享的方式(例如通过电话或邮件方式)保证密钥一致性。

这种方式的缺点是可扩展性差,在点到多点组网中配置密钥的工作量成倍增加。

另外,为提升网络安全性需要周期性修改密钥,这种方式下也很难实施。

  • 通过IKE协议自动协商密钥:

IKE建立在Internet安全联盟和密钥管理协议ISAKMP定义的框架上,采用DH(Diffie-Hellman)算法在不安全的网络上安全地分发密钥。

这种方式配置简单,可扩展性好,特别是在大型动态的网络环境下此优点更加突出。

同时,通信双方通过交换密钥交换材料来计算共享的密钥,即使第三方截获了双方用于计算密钥的所有交换数据,也无法计算出真正的密钥。

04 IPSec基本原理

IPSec隧道建立过程中需要协商IPSec SA(Security Association,安全联盟),IPSec SA一般通过IKE协商生成。

SA由一个三元组来唯一标识,这个三元组包括安全参数索引SPI(Security Parameter Index)、目的IP地址和使用的安全协议号(AH或ESP)。

其中,SPI是为唯一标识SA而生成的一个32位比特的数值,它在AH和ESP头中传输。在手工配置SA时,需要手工指定SPI的取值。使用IKE协商产生SA时,SPI将随机生成。

SA是单向的逻辑连接,因此两个IPSec对等体之间的双向通信,最少需要建立两个SA来分别对两个方向的数据流进行安全保护。

KE作为秘钥协商协议,存在两个版本:IKEv1和IKEv2,本课程采用IKEv1为例进行介绍,IKEv2内容可参考产品文档对应内容。

  • IKEv1协商阶段1的目的是建立IKE SA。

IKE SA建立后对等体间的所有ISAKMP消息都将通过加密和验证,这条安全通道可以保证IKEv1第二阶段的协商能够安全进行。IKE SA是一个双向的逻辑连接,两个IPSec对等体间只建立一个IKE SA。

  • IKEv1协商阶段2的目的就是建立用来安全传输数据的IPSec SA,并为数据传输衍生出密钥。

该阶段使用IKEv1协商阶段1中生成的密钥对ISAKMP消息的完整性和身份进行验证,并对ISAKMP消息进行加密,故保证了交换的安全性。

IKE协商成功意味着双向的IPSec隧道已经建立,可以通过ACL方式或者安全框架方式定义IPSec“感兴趣流”,符合感兴趣流流量特征的数据都将被送入IPSec隧道进行处理。

感兴趣流:需要被IPSec保护的数据流。

04 常见VPN技术—GRE

01 GRE概述

通用路由封装协议(General Routing Encapsulation,GRE)是一种三层VPN封装技术。

GRE可以对某些网络层协议(如IPX、IPv4、IPv6等)的报文进行封装,使封装后的报文能够在另一种网络中(如IPv4)传输,从而解决了跨越异种网络的报文传输问题。

如图所示,通过在IPv4网络上建立GRE隧道,解决了两个IPv6网络的通信问题。

GRE还具备封装组播报文的能力。

由于动态路由协议中会使用组播报文,因此更多时候GRE会在需要传递组播路由数据的场景中被用到,这也是GRE被称为通用路由封装协议的原因。

02 GRE基本原理

GRE构成要素分为3个部分:乘客协议、封装协议和运输协议。

  • 乘客协议是指用户在传输数据时所使用的原始网络协议。
  • 封装协议的作用就是用来“包装”乘客协议对应的报文,使原始报文能够在新的网络中传输。
  • 运输协议是指被封装以后的报文在新网络中传输时所使用的网络协议。

隧道接口(Tunnel Interface)是为实现报文的封装而提供的一种点对点类型的虚拟接口,与Loopback接口类似,都是一种逻辑接口。

如图所示,乘客协议为IPv6,封装协议为GRE,运输协议为IPv4。

整体转发流程如下:

  • 当R1收到IP1发来的IPv6数据包,查询设备路由表,发现出接口是隧道接口,则将此报文发给隧道接口处理。
  • 隧道接口给原始报文添加GRE头部,然后根据配置信息,给报文加上IP头。该IP头的源地址就是隧道源地址,IP头的目的地址就是隧道目的地址。
  • 封装后的报文在IPv4网络中进行普通的IPv4路由转发,最终到达目的地R2。
  • 解封装过程和封装过程相反,这里不再赘述。

03 GRE Over IPSec

GRE的主要缺点是不支持加密和认证,数据的安全传输得不到很好的保障。

IPSec的主要缺点是只支持IP协议,且不支持组播。

可通过部署GRE Over IPSec结合两种VPN技术的优点。

05 常见VPN技术—L2TP

01 L2TP概述

L2TP是虚拟私有拨号网VPDN(Virtual Private Dial-up Network)隧道协议的一种,它扩展了点到点协议PPP的应用,是一种在远程办公场景中为出差员工或企业分支远程访问企业内网资源提供接入服务的VPN。

L2TP组网架构中包括LAC(L2TP Access Concentrator,L2TP访问集中器)和LNS(L2TP Network Server,L2TP网络服务器)。

VPDN是指利用公共网络(如ISDN和PSTN)的拨号功能及接入网来实现虚拟专用网,为企业、小型ISP、移动办公人员提供接入服务。

VPDN采用专用的网络加密通信协议,在公共网络上为企业建立安全的虚拟专网。

企业驻外机构和出差人员可从远程经由公共网络,通过虚拟加密隧道实现和企业总部之间的网络连接,而公共网络上其它用户则无法穿过虚拟隧道访问企业网内部的资源。

VPDN隧道协议有多种,目前使用最广泛的是L2TP。

LAC是网络上具有PPP和L2TP协议处理能力的设备。LAC负责和LNS建立L2TP隧道连接。

在不同的组网环境中,LAC可以是不同的设备,可以是一台网关设备,也可以是一台终端设备。

LAC可以发起建立多条L2TP隧道使数据流之间相互隔离。

LNS是LAC的对端设备,即LAC和LNS建立了L2TP隧道;LNS位于企业总部私网与公网边界,通常是企业总部的网关设备。

02 L2TP消息

L2TP协议包含两种类型的消息,控制消息和数据消息,消息的传输在LAC和LNS之间进行。

  • 控制消息用于L2TP隧道和会话连接的建立、维护和拆除。
  • 数据消息用于封装PPP数据帧并在隧道上传输。

控制信息用于L2TP隧道和会话连接的建立、维护和拆除。

在控制消息的传输过程中,使用消息丢失重传和定时检测隧道连通性等机制来保证控制消息传输的可靠性,支持对控制消息的流量控制和拥塞控制。

控制消息承载在L2TP控制通道上,控制通道实现了控制消息的可靠传输,将控制消息封装在L2TP报头内,再经过IP网络传输。

数据消息用于封装PPP数据帧并在隧道上传输。

数据消息是不可靠的传输,不重传丢失的数据报文,不支持对数据消息的流量控制和拥塞控制。

数据消息携带PPP帧承载在不可靠的数据通道上,对PPP帧进行L2TP封装,再经过IP网络传输。

03 L2TP工作过程

L2TP主要可分为以下三种工作场景,其工作过程并不相同:

  • NAS-Initiated场景:拨号用户通过NAS访问企业内网
  • Client-Initiated场景:移动办公用户访问企业内网
  • Call-LNS场景:通过LAC自主拨号实现企业内网互连

1、NAS-Initiated场景

由远程拨号用户发起,远程系统通过PSTN/ISDN拨入LAC,由LAC通过Internet向LNS发起建立隧道连接请求。

拨号用户地址由LNS分配;对远程拨号用户的验证与计费既可由LAC侧的代理完成,也可在LNS完成。

  • 用户必须采用PPP的方式接入到Internet,也可以是PPPoE等协议。
  • 运营商的接入设备(主要是BAS设备)需要开通相应的VPN服务。用户需要到运营商处申请该业务。
  • L2TP隧道两端分别驻留在LAC侧和LNS侧,且一个L2TP隧道可以承载多个会话。

2、Client-Initialized场景

直接由LAC客户(指可在本地支持L2TP协议的用户)发起。

客户需要知道LNS的IP地址。LAC客户可直接向LNS发起隧道连接请求,无需再经过一个单独的LAC设备。

在LNS设备上收到了LAC客户的请求之后,根据用户名、密码进行验证,并且给LAC客户分配私有IP地址。

  • 用户需要安装L2TP的拔号软件。部分操作系统自带L2TP客户端软件。
  • 用户上网的方式和地点没有限制,不需ISP介入。L2TP隧道两端分别驻留在用户侧和LNS侧,一个L2TP隧道承载一个L2TP会话。

该场景建立过程如下:

移动办公用户与LNS建立L2TP隧道。

移动办公用户与LNS建立L2TP会话:移动办公用户在第3步会与LNS间建立PPP连接,L2TP会话用来记录和管理它们之间的PPP连接状态。

因此,在建立PPP连接以前,隧道双方需要为PPP连接预先协商出一个L2TP会话。

会话中携带了移动办公用户的LCP协商信息和用户认证信息,LNS对收到的信息认证通过后,通知移动办公用户会话建立成功。

L2TP会话连接由会话ID进行标识。

移动办公用户与LNS建立PPP连接。

移动办公用户通过与LNS建立PPP连接获取LNS分配的企业内网IP地址。

移动办公用户发送业务报文访问企业总部服务器。

3、Call-LNS场景

L2TP除了可以为出差员工提供远程接入服务以外,还可以进行企业分支与总部的内网互联,实现分支用户与总部用户的互访。

一般是由分支路由器充当LAC与LNS建立L2TP隧道,这样就可实现分支与总部网络之间的数据通过L2TP隧道互通。

04 L2TP Over IPSec

当企业对数据和网络的安全性要求较高时,L2TP无法为报文传输提供足够的保护。

这时可以和IPSec功能结合使用,保护传输的数据,有效避免数据被截取或攻击。

企业出差用户和总部通信,使用L2TP功能建立VPN连接,总部部署为LNS对接入的用户进行认证。

当出差用户需要向总部传输高机密信息时,L2TP无法为报文传输提供足够的保护,这时可以和IPSec功能结合使用,保护传输的数据。

在出差用户的PC终端上运行拨号软件,将数据报文先进行L2TP封装,再进行IPSec封装,发往总部。

在总部网关,部署IPSec策略,最终还原数据。

这种方式IPSec功能会对所有源地址为LAC、目的地址为LNS的报文进行保护。

06 常见VPN技术—MPLS

01 MPLS VPN概述

MPLS是一种利用标签(Label)进行转发的技术,最初为了提高IP报文转发速率而被提出,现主要应用于VPN和流量工程、QoS等场景。

根据部署的不同,MPLS VPN可分为MPLS L2 VPN或者MPLS L3 VPN。

企业可以自建MPLS专网也可以通过租用运营商MPLS专网的方式获得MPLS VPN接入服务。

MPLS VPN网络一般由运营商搭建,VPN用户购买VPN服务来实现用户网络之间(图中的分公司和总公司)的路由传递、数据互通等。

基本的MPLS VPN网络架构由CE(Customer Edge)、PE(Provider Edge)和P(Provider)三部分组成:

  • CE(Customer Edge)

用户网络边缘设备,有接口直接与运营商网络相连。CE可以是路由器或交换机,也可以是一台主机。通常情况下,CE“感知”不到VPN的存在,也不需要支持MPLS。

  • PE(Provider Edge)

运营商边缘路由器,是运营商网络的边缘设备,与CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求较高。

  • P(Provider)

运营商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VPN相关信息。

更多MPLS及MPLS VPN的相关内容,参考HCIP-Datacom-Advance相应课程。

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1124517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wordpress搬家后,更改固定链接404文章无法打开,找不到网页与解决办法

出现这个问题的原因可能是服务没有设置伪静态设置,需要配置nginx服务器或者apach服务器 1.问题描述 WordPress中修改固定链接,如下。 保存后再打开网页出现类似于如下404错误。 2.解决办法 打开Nginx的配置文件(如果你没有自己写过那就是默认的nginx.…

JAVA毕业设计101—基于Java+Springboot的电影购票微信小程序带后台管理(源码+数据库)

基于JavaSpringboot的电影购票微信小程序带后台管理(源码数据库)101 一、系统介绍 本系统是小程序前台,带后台管理 本系统分为管理员、用户两种角色 管理员功能: 登录、统计分析、密码修改、用户管理、广告管理、影院管理、分类管理、电影管理、场次…

找不到vcruntime140.dll,无法继续执行代码的详细解决方案

找不到vcruntime140.dll,无法继续执行代码?遇到这种问题,你知道要怎么去解决么?其实在我们开始讨论解决方案之前,需要首先了解什么是vcruntime140.dll文件。它是由Microsoft公司开发的一种DLL(动态链接库)文…

ExoPlayer架构详解与源码分析(6)——MediaPeriod

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…

Dynamic DataSource 多数据源配置【 Springboot + DataSource + MyBatis Plus + Druid】

一、前言 MybatisPlus多数据源配置主要解决的是多数据库连接和切换的问题。在一些大型应用中,由于数据量的增长或者业务模块的增多,可能需要访问多个数据库。这时,就需要配置多个数据源。 二、Springboot MyBatis Plus 数据源配置 2.1、单数…

K8S集群实践之九: Ceph

Rook is an open source cloud-native storage orchestrator, providing the platform, framework, and support for Ceph storage to natively integrate with cloud-native environments.1. 说明 因香橙派和树莓派资源所限,转移到基于VirtualBox建立的VMs继续实践…

YOLO目标检测——密集人群人头检测数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用:在公共场所,如车站、商场、景区等,可以通过人头目标检测技术来监测人群流量数据集说明:人头检测数据集,真实场景的高质量图片数据,数据场景丰富标签说明:使用lableimg标注软件标注…

Android组件化实现,理解吸收

什么是组件化? 一个大型APP版本一定会不断的迭代,APP里的功能也会随之增加,项目的业务也会变的越来越复杂,这样导致项目代码也变的越来越多,开发效率也会随之下降。并且单一工程下代码耦合严重,每修改一处…

C++:多态的内容和底层原理

文章目录 多态的概念多态的定义虚函数override和final关键字重载、覆盖、隐藏 抽象类抽象类的定义接口继承和实现继承 多态的原理解析虚函数表 本篇总结C中多态的基本内容和原理实现和一些边角内容 多态的概念 首先要清楚多态是什么,是用来做什么的? …

Windows桌面便笺 - 置顶任务TODO - 便利贴工具

效果图 一直置顶 免费 步骤 1. 打开便笺 win10找不到自带的便签怎么办-百度经验win10找不到自带的便签怎么办,很多朋友都在问wi10找不到自带的便签怎么办,今天就来给大家介绍一下wi10找不到自带的便签怎么办的方法。https://jingyan.baidu.com/article/b2c186c8…

小红书品牌账号怎么运营,如何传播规划?

其实新品牌面对的肯定都是新客户,对于新客户来说,真诚永远是最大的必杀技,所以在这告诉各位新兴品牌,少点套路,那么小红书品牌账号怎么运营,如何传播规划呢? 一、对品牌账号进行定位 定位方面一…

第一章初识Maven与Maven安装配置——尚硅谷

文章目录 Maven是什么Maven 作为构建管理工具依赖管理使用Maven的好处JAR包的规模JAR包的来源JAR包之间的依赖关系 Maven 开发环境配置Maven的下载Maven的解压配置setting.xml配置文件指定本地仓库配置镜像仓库Maven仓库的概念 配置基础 JDK 版本配置环境变量配置JDK环境配置Ma…

现在大火的低代码是怎么回事?进来聊聊低代码

一、前言 开发过程中,只是觉得前端后端合起来,有很多冗余信息,被代码一遍遍重复表达,是一件很枯燥、无聊的事情。 这些枯燥的重复工作,完全可以由机器来做,以便解放出我们的时间,来做更有价值的…

谷歌云的利润增长才刚刚开始

来源:猛兽财经 作者:猛兽财经 总结: (1)自从Google Cloud(谷歌云)今年开始盈利以来,投资者都在怀疑这种盈利能力能否持续下去。 (2)虽然微软Azure目前在全球的人工智能竞…

Python 学习(day04)

函数进阶 获得多个返回值

“微信小程序登录与用户信息获取详解“

目录 引言微信小程序微信登录介绍1. 微信登录的基本概念2. 微信小程序中的微信登录 微信小程序登录的wxLogin与getUserProfile的区别1. wx.login()2. wx.getUserProfile()3.两者区别 微信小程序登录的理论概念1. 微信登录流程2. 用户授权与登录态维护 微信小程序登录的代码演示…

【计算机网络】HTTP 协议的基本格式以及 fiddler 的用法

HTTP协议的基本格式如下: 1.请求行: 包括请求THHP协议的版本、请求URI(资源路径)和HTTP方法(如GET、POST、PUT、DELETE等) GET/example.html HTTP/1.1 GET表示请求方法,/example.html表示请求的…

视频如何批量添加水印?简单几步帮你解决问题

在如今这个短视频横行的时代,我们常常需要在短视频中添加个人logo或水印来保护知识产权和增加品牌曝光度。如果你有很多视频需要添加水印,那么手动操作将是非常耗时和繁琐的。幸运的是,我们可以使用一些软件来批量添加水印。在此,…

Kubernetes中如何使用 CNI?

一、CNI 是什么 它的全称是 Container Network Interface,即容器网络的 API 接口。 它是 K8S 中标准的一个调用网络实现的接口。Kubelet 通过这个标准的 API 来调用不同的网络插件以实现不同的网络配置方式。实现了这个接口的就是 CNI 插件,它实现了一…

MySQL查看数据库、表容量大小

1. 查看所有数据库容量大小 selecttable_schema as 数据库,sum(table_rows) as 记录数,sum(truncate(data_length/1024/1024, 2)) as 数据容量(MB),sum(truncate(index_length/1024/1024, 2)) as 索引容量(MB)from information_schema.tablesgroup by table_schemaorder by su…