Section outline

  • 弹出图片

    一家希望为其远程终端(单一用户、数据中心、分支机构)建立企业私有网络的公司可以采用两种不同的方式:

    1. 公司可以建立自己的专用基础设施(专线、拨号连接);
    2. 公司可以采用虚拟专用网络(VPN)解决方案。

    虚拟专用网络(VPN)允许公司通过公共共享基础设施(如互联网或互联网服务提供商的网络)为多个用户提供连接,同时执行自己的策略(如安全性、服务质量、私有地址),就像它拥有自己的私有网络一样。

    VPN解决方案的优点包括:

    1. 成本低廉:不再需要为远程用户建立昂贵的物理连接,VPN解决方案利用了预先存在的基础设施,因此成本可以共享;
    2. 选择性:通过防火墙,只有具有权限的用户才能访问 → 提高了安全性;
    3. 灵活性:可以轻松地添加允许的用户,用户可以轻松移动。

    VPN由一些主要组件构成:

    1. 数据通过隧道传输,因此它们与在共享基础设施上移动的其他数据分开,使用如GRE、L2TP、MPLS、PPTP和IPsec等协议;
    2. 数据被加密以提高安全性,使用如IPsec和MPPE等协议;
    3. 数据完整性受到检查,因此无法篡改,通过TCP校验和或IPsec中的AH进行检查;
    4. 在建立隧道之前,检查隧道另一端的身份,通过认证机制(例如使用数字证书)。

    分类

    VPN解决方案可以根据以下几个方面进行分类:

    • 部署方式:访问型或站点到站点型(内部网/外部网);
    • 互联网接入方式:集中式或分布式;
    • 模型:覆盖型或对等型;
    • 供应方式:客户型或供应商型;
    • 层次:第二层、第三层或第四层;
    • 虚拟拓扑:中心-分支型或网状型。

      覆盖型 对等型
    访问型 L2TP, PPTP  
    站点到站点型 IPsec, GRE MPLS

    部署场景

    VPN可以部署在两种主要场景中:

    1. 访问型VPN(也称为“远程VPN”或“虚拟拨入”):它将拨号连接虚拟化,通过ISDN、PSTN、有线调制解调器、无线局域网等连接单个用户到企业网络,使用如PPTP和L2TP等协议;
    2. 站点到站点型VPN:它将专线虚拟化,并使用如IPsec、GRE和MPLS等协议连接多个远程网络。

    站点到站点型VPN可以通过两种方式部署:

    • 内部网VPN:所有互联的网络属于同一公司;
    • 外部网VPN:互联的网络属于多家公司。

    VPN特性要求

    VPN必须满足以下一些要求:

    • 安全性:防火墙可以限制对网络资源的访问;
    • 数据加密:保护通过共享基础设施传输的信息;
    • 可靠性:保证任务关键流量能够到达目标;
    • 可扩展性:该解决方案必须适用于小型和大型网络;
    • 增量部署:随着网络的增长,解决方案仍然可以工作。

    对于访问型VPN,额外的要求包括:

    • 强认证:验证移动用户的身份(例如个人笔记本可能会被盗);
    • 用户及其账户的集中管理

    对于站点到站点型外部网VPN,额外的要求包括:

    • 选择性访问:每家公司可以允许其他公司访问某些服务,但阻止访问其私有网络的其他服务;
    • 地址冲突管理:一个私有地址可能属于两个不同的私有网络 → 需要NAT;
    • 使用开放标准解决方案:不同公司需要能够共享相同的VPN解决方案;
    • 流量控制:每家公司需要控制从其他公司网络进入的流量,并消除网络接入点的瓶颈。

    互联网接入

    连接到VPN的远程终端可以通过以下两种方式访问公共互联网:

    1. 集中式互联网接入:所有从互联网进出的流量都必须通过总部的VPN网关;
    2. 分布式互联网接入:从互联网进出的流量不涉及VPN,VPN仅用于企业流量。

    集中式互联网接入

    优点

    • 集中策略管理:公司可以为所有连接的远程终端设置互联网访问策略(例如禁止员工在工作时访问某些网站);
    • 安全性:企业防火墙可以保护主机免受来自互联网的恶意数据包的攻击。

    缺点

    • 远程终端的速度较慢:数据包需要经过更多的跳数才能到达目标,因为它们总是必须经过总部的VPN网关,而不是直接到达目的地;
    • 总部需要更高的带宽
    • 强制连接:VPN必须始终处于活动状态,用户不能临时禁用VPN并在没有企业防火墙保护的情况下上网,否则如果用户在没有防火墙的情况下感染了恶意软件,当重新连接VPN时,企业网络可能会受到感染。

    分布式互联网接入

    优点

    • 远程终端的速度较快:数据包总是直接朝互联网目的地发送;
    • 自愿连接:用户可以随时禁用VPN而不会带来额外的安全威胁。

    缺点

    • 分布式策略管理:公司需要在远程终端配置多个路由器来设置自己的策略;
    • 安全威胁:缺少企业防火墙保护。

    Overlay model.
    Peer model.

    VPN可以根据共享基础设施的角色分为两种模型:

    1. 覆盖模型(Overlay model):基础设施对VPN解决方案不了解,仅提供IP连接服务;它只传输数据包,而不识别这些数据包是否属于VPN,在VPN网关之间传输数据包,但不与基础设施进行交互 → 适用于数据隐私:基础设施的管理员无法查看私密数据或利用路由信息;
    2. 对等模型(Peer model):基础设施内部的网关参与VPN的创建并相互交互 → 提供更好的路由,更多的可扩展性。

    基于非MPLS的对等模型VPN可以是:

    • 专用路由器(Dedicated router):基础设施的管理者将一些路由器专门分配给某个客户,其他路由器分配给另一个客户,依此类推;
    • 共享路由器(Shared router):基础设施中的每个路由器由多个客户共享 → 成本较低。

    提供方式

    客户自建
    提供商提供

    VPN可以由客户或提供商提供:

    • 客户自建(Customer provision):用户自己创建并管理VPN,隧道设置在客户边缘设备(CE)之间;
    • 提供商提供(Provider provision):VPN由互联网连接提供商提供并管理,隧道设置在提供商边缘设备(PE)之间。

    客户自建的VPN不能采用对等模型,因为提供商无法了解由客户自行创建的VPN。

    层次

    VPN连接可以处于不同的层次:

    1. 第二层(Layer 2):在VPN中交换以太网帧:
      • 虚拟专用局域网服务(VPLS):将局域网虚拟化,终端看似处于同一局域网 → 允许广播数据包;
      • 虚拟专用线路服务(VPWS):在分组交换网络上虚拟化专线;
      • 仅IP局域网类似服务(IPLS):虚拟化IP网络,仅允许IP数据包(如ICMP和ARP);
    2. 第三层(Layer 3):在VPN中交换IP数据包;
    3. 第四层(Layer 4):在VPN中设置TCP连接(可能使用SSL进行安全性保护)。

    虚拟拓扑

    根据虚拟拓扑,VPN可以分为两类:

    1. 中心-分支型(Hub and spoke):每对终端只能通过总部进行通信 → 由于流量较大,可能会在总部发生瓶颈;
    2. 网状型(Mesh):每对终端可以直接通信,而无需通过总部 → 路由更好,但隧道的数量更多。

    协议

    1. PPP(点对点协议): 点对点协议(PPP)是一个第二层协议,用于点对点连接(如拨号、ISDN)来封装上层的任何协议。它是对HDLC协议的扩展。

      PPP数据包的格式如下:

      1字节    1字节    1字节    1或2字节    2或4字节    1字节
      01111110(旗帜)  地址   控制   协议   数据    CRC   01111110(旗帜)
      

      其中最重要的字段包括:

      • 起始和结束旗帜:用于数据帧定界;
      • 地址和控制字段:这些字段继承自HDLC,但在点对点连接中没有实际意义,它们的存在是为了简化HDLC设备的处理算法升级;
      • 协议字段:指定上层协议,即封装的数据包的协议类型。

      为了发送“01111110”作为数据,需要进行字节级填充:当数据中出现与定界字节相同的字节时,插入转义序列“01111101”。

      **链路控制协议(LCP)**的任务是打开和关闭PPP连接,协商一些选项(如最大帧长、认证协议)。

    2. GRE(通用路由封装): IP数据包不能直接封装第三层或以下的协议,因为IPv4头中的“协议”字段只能指定上层协议(如TCP、UDP、ICMP)。通用路由封装(GRE)是一种协议,用于将任何协议(包括IP及其他低层协议)封装到IP中。GRE头插入在封装的IP头和被封装的数据包之间,并将封装IP头中的“协议”字段设置为47。

      GRE头的格式如下:

      5    8    13    16    32
      C    R    K    S    s    Recur    Flags    Version(0)   协议类型
      校验和(可选)   偏移(可选)   键(可选)   序列号(可选)   路由(可选)  :::
      

      其中最重要的字段包括:

      • C, R, K, S标志(每个1位):指示可选字段的存在或缺失;
      • 严格源路由(s)标志(1位):如果设置为1,当源路由列表(“路由”字段)结束时,如果目标尚未到达,数据包将被丢弃(类似于TTL);
      • Recur字段(3位):指定允许的最大封装次数(目前不支持);
      • 版本字段(3位):指定GRE协议的版本(此处为0);
      • 协议类型字段(16位):指定被封装数据包的协议;
      • 路由字段:指定数据包应经过的中间路由器的IP地址序列(源路由)。
    3. 增强型GRE: 增强型GRE头的格式引入了新的“确认号”字段:

      5    8    13    16    32
      C    R    K    S    s    Recur   A   Flags   Version(1)   协议类型
      键(有效载荷长度)   键(会话ID)
      序列号(可选)   确认号(可选)
      

      其中最重要的字段包括:

      • 键字段(32位)
        • 有效载荷长度(16位):指定数据包的长度,不包括GRE头(以字节为单位);
        • 会话ID(16位):指定数据包的会话ID;
        • 确认号字段(32位):发送方在数据包中放入已接收的最后一个序列号(累积确认)。

      新的“确认号”字段与“序列号”字段结合使用,可以支持一些附加机制:

      • 流量控制:滑动窗口避免目的地泛滥,并在收到确认包时移动;
      • 乱序包检测:增强型GRE是为PPP封装设计的,而PPP用于点对点连接,因此预计数据包不会乱序 → 乱序数据包将被丢弃;
      • 丢包检测:当超时过期时,即未收到任何确认包,数据包被视为丢失,但丢失的数据包不会重新传输;
      • 拥塞控制:当检测到过多的超时时,数据包传输将减慢,以避免网络拥塞。

    L2TP(第二层隧道协议)

    L2TP的原始参考场景:提供商提供的部署模式。 客户自建

    **第二层隧道协议(L2TP)**是一种将任何第二层协议(本文讨论的是PPP)封装到IP中的协议。L2TP最初是为提供商提供的接入VPN设计的,并由IETF标准化;后来通过将LAC(L2TP访问集中器)功能实现到用户机器中,L2TP扩展到了客户自建接入VPN。

    在L2TP的原始参考场景中,一个远程用户希望通过点对点(PPP)连接向公司网络内的内部服务器发送数据包。需要建立L2TP隧道连接到目标L2TP网络服务器(LNS),并在隧道内部建立L2TP会话,以模拟通过服务提供商网络的PPP连接。

    当PPP帧到达L2TP访问集中器(LAC)时,如果尚未与LNS建立L2TP隧道,LAC必须在打开L2TP会话之前建立到LNS的隧道:LNS通过类似挑战握手认证协议(CHAP)的机制验证自身身份,并建立一个新的控制连接。

    每个L2TP会话在隧道内部使用两个通道:

    • 数据通道:用于传输数据消息,即PPP帧;
    • 控制通道:用于交换控制消息,管理通信(如验证数据包是否到达、重传丢失的数据包、检查数据包的正确顺序)。

    与数据消息不同,控制消息以可靠的方式交换:丢失的控制消息总是会被重传。

    多个会话可以共享同一个隧道,使用相同的控制连接来区分来自多个远程用户的PPP帧流:每个隧道由隧道ID标识,每个会话由会话ID标识。

    安全性

    除了在隧道建立步骤中确保身份验证外,L2TP本身并不提供任何安全机制:实际上,使用像加密这样的机制来保护L2TP数据包在隧道中传输没有意义,因为服务提供商的LAC仍然可以查看第二层帧 → 任何安全机制必须端到端实现,即在用户和公司网络内部的最终目的地之间。

    可选地,可以通过隧道使用IPsec:它提供强大的安全性,但实现起来比较复杂。

    L2TP隧道内的数据包包含多个封装的头部:

    • MAC头部
    • IP头部
    • UDP头部
    • L2TP头部
    • PPP头部
    • PPP负载

    PPP头部

    它标识远程用户与公司网络内部服务器之间的点对点连接。

    L2TP头部

    它标识L2TP隧道:

    8     16     32
    T     L     0     S     0     O     P     0     版本(2)    长度
    隧道ID    会话ID
    Ns    Nr
    偏移大小  偏移填充  :::
    

    最重要的字段包括:

    • T标志(1位):如果设置为0,数据包是数据消息;如果设置为1,则为控制消息;
    • 隧道ID字段(16位):标识L2TP隧道;
    • 会话ID字段(16位):标识L2TP会话,即隧道中的数据通道;
    • Ns字段(16位):包含数据/控制消息的序列号;
    • Nr字段(16位):包含要接收的下一个控制消息的序列号,用于可靠的控制连接。

    UDP头部

    为什么使用如UDP这样的第四层协议来传输第二层帧?这可以通过考虑一般网络中的防火墙来解释:如果数据包没有第四层封装,它更容易被防火墙丢弃。

    另一个可能的原因是,第四层可以通过套接字访问,而操作系统负责第三层。由于L2TP希望作为PPTP的解决方案(PPTP由操作系统供应商提出),L2TP设计者希望它对应用程序可用,而不是与操作系统供应商的意图绑定。

    也可以使用其他第四层协议(如ATM,帧中继)。

    IP头部

    它包含隧道端点的IP地址。在原始参考场景中,IP地址对应于LAC和LNS。


    PPTP(点对点隧道协议)

    L2TP的原始参考场景:提供商提供的部署模式。 客户自建

    PPTP原始参考场景:客户自建的部署模式。

    **点对点隧道协议(PPTP)**是一种将PPP协议封装到IP中的协议。PPTP最初是为客户自建的接入VPN设计的,并由主要的操作系统供应商开发;后来通过引入具有类似LAC功能的PPTP访问集中器(PAC),将其扩展到提供商提供的接入VPN。

    PPTP原始参考场景与L2TP的不同之处在于,PPTP隧道是在远程用户和PPTP网络服务器(PNS)之间建立的。

    与L2TP不同,PPTP提供了较弱(可选)的安全机制:标准涵盖了特定的微软专有安全协议,如用于加密的MPPE和用于认证的MS CHAP,因此没有协议协商。

    数据通道

    封装的PPP帧通过数据通道传输:

    IP头部   GRE头部   PPP头部   PPP负载
    

    PPTP使用增强型GRE协议将PPP帧封装到IP中。PPP负载可以选择性地通过MPPE进行加密。

    控制通道

    PPTP控制消息通过控制通道传输:

    IP头部   TCP头部   PPTP控制消息
    

    控制消息用于隧道数据会话的建立、管理和拆除,发送到PNS的知名TCP端口1723。


    IPsec

    互联网协议安全(IPsec)协议集在IPv4中的功能与在IPv6中的类似。主要的区别在于,在IPv6中,IPsec是作为扩展头包含在标准中,而在IPv4中,它是一个新的附加协议,封装到IP中(对于AH,"协议"字段设置为51,对于ESP设置为50):

    • 身份验证头(AH)

      IPv4头部   AH头部   TCP/UDP头部   负载
      已验证数据
      
    • 封装安全有效载荷(ESP)

      IPv4头部   ESP头部(用于加密)  TCP/UDP头部   负载   ESP头部
      加密数据   已验证数据
      

    SSL

    安全套接层(SSL),现在称为传输层安全性(TLS),是一种旨在为客户端和服务器之间提供通信安全性的加密协议:

    1. 客户端通过TCP连接到端口443并发送挑战请求进行服务器认证;
    2. 服务器向客户端发送Hello消息,包含其证书和使用服务器私钥加密的挑战响应;
    3. 客户端通过查阅信任的认证机构的证书列表来验证证书,然后使用服务器的公钥解密响应;
    4. 客户端为安全通信选择一个私钥并通过服务器公钥加密发送 → 从此之后,所有记录消息都将使用该私钥加密(该私钥应定期重新协商);
    5. 服务器通常要求用户在网页上输入用户名和密码进行客户端认证(在应用层)。

    访问VPN

    拨号连接场景

    基本上,一个远程用户,通常是公司的员工,希望通过公司网络联系一个服务器。他可以通过拨号点对点连接到公司网关,使用PPP协议将IP数据包封装:

    • 通过链路控制协议(LCP),他可以协商第二层参数(如认证协议);
    • 通过网络控制协议(NCP),他可以协商第三层参数(如公司网络内的私有IP地址、DNS等)。

    在接受拨号连接之前,公司网关会通过**远程认证拨号用户服务(RADIUS)**协议联系公司安全服务器来检查用户身份。公司安全服务器是一个集中的AAA服务器:

    • 认证:识别用户(例如通过用户名和密码);
    • 授权:检查用户可以访问哪些服务以及哪些服务被限制;
    • 计费:跟踪用户活动(例如,用于计费)。

    访问VPN可以虚拟化远程用户与公司网络之间的拨号连接,借助服务提供商的共享基础设施来降低成本。PPP协议将在VPN隧道中继续使用,避免对公司网关做出过多的更改。

    客户自建部署

    访问VPN以客户自建方式部署。

    在客户自建的访问VPN中,隧道在远程用户与公司网关之间建立:

    • 用户请求与服务提供商的NAS建立PPP拨号连接,并通过LCP和NCP协商连接配置参数;
    • NAS通过RADIUS协议通过提供商的安全服务器检查用户身份;
    • NAS为用户提供PPP拨号连接的配置参数,特别是公共IP地址;
    • 用户请求与公司网关建立VPN隧道,发送包含IP数据包的PPP帧,其中目的IP地址为公司网关的公共IP地址;
    • NAS通过服务提供商的网络将请求转发给公司网关;
    • 公司网关通过RADIUS协议通过公司安全服务器检查用户身份;
    • 公司网关为用户提供VPN隧道的配置参数,特别是公司网络内的私有IP地址;
    • NAS将公司网关的回复转发给远程用户。

    一旦VPN建立,用户将拥有两个IP地址:一个是服务提供商的公共IP地址,另一个是公司网关的公司IP地址。用户通过隧道发送的PPP帧格式如下:

    PPP头部  IP头部   PPP头部  IP头部   IP负载
    src:      用户的公共IP地址  src:      用户的公司IP地址
    dst:      公司网关的公共IP地址  dst:      最终目的地的公司/公共IP地址
    

    优点

    用户独立于服务提供商:后者仅提供用户与公司网关之间的互联网连接。

    缺点

    用户可能暂时禁用VPN连接并通过互联网连接到外部服务器 → 如果他感染了恶意软件,当他重新连接到VPN时,会感染公司网络。

    提供商自建部署

    访问VPN以提供商自建方式部署。

    在提供商自建的访问VPN中,隧道在服务提供商的NAS和公司网关之间建立:

    • 用户请求与公司网关建立PPP拨号连接,并通过LCP和NCP协商连接配置参数;
    • NAS通过RADIUS协议通过提供商安全服务器检查用户身份,特别是将用户标识为VPN用户;
    • NAS请求与公司网关建立与用户相关的VPN隧道,发送目的IP地址为公司网关公共IP地址的IP数据包;
    • 公司网关通过RADIUS协议通过公司安全服务器检查用户身份;
    • 公司网关为NAS提供VPN隧道的配置参数;
    • NAS可选择性地记录接受信息和/或流量,以便向公司收费;
    • 公司网关为用户提供PPP连接的配置参数(拨号已虚拟化),特别是公司网络内的私有IP地址;
    • NAS将公司网关的回复转发给远程用户。

    一旦VPN建立,用户只拥有公司IP地址,并且无法知道服务提供商NAS与公司网关之间的隧道。NAS通过隧道发送的IP数据包格式如下:

    IP头部   PPP头部   IP头部   IP负载
    src:      服务提供商NAS的公共IP地址  src:      用户的公司IP地址
    dst:      公司网关的公共IP地址  dst:      最终目的地的公司/公共IP地址
    

    优点

    用户无法在不经过公司网关的情况下访问互联网(集中式访问)→ 更高的安全性。

    缺点

    用户不独立于服务提供商:如果他更换服务提供商,VPN连接将无法再工作。


    站点到站点VPN

    基于IPsec的VPN

    在基于IPsec的VPN中,IPsec在隧道模式下用于VPN网关之间:两个主机之间的IP数据包被封装成一个IP数据包,具有ESP头部(可选的AH头部),在两个VPN网关之间传输,这样两个主机的IP地址也可以通过ESP进行加密。

    私有内网可以通过以下方式进行保护:

    • 防火墙:根据公司策略过滤流量,例如允许的IP地址,防火墙可以放置在不同位置相对于VPN网关:
      • 在VPN网关之前:VPN网关被保护,但防火墙无法过滤加密的VPN流量;
      • 在VPN网关之后:防火墙可以过滤解密后的VPN流量,但VPN网关没有保护;
      • 与VPN网关并行:数据包既经过VPN网关之前,也经过VPN网关之后,防火墙的工作量更大,但VPN网关和VPN流量都得到了保护;
      • 集成到VPN网关中:VPN网关和防火墙的功能集成到一个设备中 → 最大的灵活性;
    • 入侵检测系统(IDS):观察流量以尝试检测是否有攻击发生,并将两个IDS探针放置在VPN网关并行位置:
      • VPN网关之前的探针观察来自隧道的流量,保护来自共享基础设施的攻击;
      • VPN网关之后的探针观察VPN流量,保护来自公司网络的攻击(例如,安装在员工PC上的恶意软件,或如果站点到站点VPN是外联网时来自其他公司的攻击)。

    NAT(网络地址转换)的存在可能会导致IPsec的问题:

    • AH(认证头)认证整个数据包,因此它也包括IP头 → NAT需要更改IP地址,这样认证就无法继续工作;
    • ESP(封装安全有效载荷)加密负载,因此隧道中的NAT将无法查看加密的IP地址和TCP/UDP端口,从而处理不同的VPN站点。

    基于MPLS的VPN

    第二层:PWE3

    MPLS基于第二层的站点到站点VPN示例。

    伪线仿真端到端(PWE3)标准允许在MPLS网络上仿真物理线路,以便在第二层终端(如以太网交换机或电话交换机)之间交换以太网帧。这种类型的连接对以太网帧的延迟有一定要求,就像它们通过物理线路传输一样。

    流量通过LSP传输,然后需要能够到达通过入口/出口LSR连接的多个站点之一:

    • 外部标签:标识两个入口/出口LSR之间的LSP,并且它后面跟着多个内部标签之一;
    • 内部标签:标识公司VPN隧道,入口/出口LSR使用它将帧从其接口之一发送到公司站点。

    基于MPLS的第二层VPN没有充分利用MPLS的所有优势,因为流量工程的路由协议与IP非常兼容 → 通常,LSP是手动配置的。

    第三层:BGP

    MPLS/BGP基于第三层的站点到站点VPN示例。

    边界网关协议(BGP)被扩展为内部BGP和外部BGP,以支持通过MPLS部署VPN,例如公司A的站点1:

    • 公司A的CE1通过内部BGP向PE1广告站点1内的目的地址,即告诉PE1站点1内所有可以到达的IP地址;
    • PE1为CE1的每个IP地址分配一个标签,并将映射记录到特定于其端口的VPN路由和转发(VRF)表中;
    • PE1通过外部BGP将选择的标签广告到其他PEs,发送包含每个IP地址及其地址族标识符的路由分隔符的数据包,实际是指向公司A站点的端口,方便在两个不同公司网络中有相同私有地址时使用。

    此步骤需要手动执行:系统管理员必须在PE1与MPLS网络中的每个其他PE之间建立对等会话; 其他PE可以处理广告消息或忽略它们:

    • 与公司A站点连接的每个PE(如图中的PE3)将PE1的广告信息记录到其VRF表中,即记录站点1内每个IP目的地的标签,换句话说,记录与站点1地址族关联的IP地址,以及PE1的IP地址;
    • 没有连接公司A站点的每个PE(如图中的PE2)将直接忽略PE1的广告信息。

    一旦PE之间的IP目的地址被广告出去,VPN数据就可以开始沿着MPLS LSP发送,例如从公司A的CE3到公司A的CE1:

    • 作为入口LSR的PE3将两个标签压入标签栈:
      • 内部标签:先前由PE1广告的标签;
      • 外部标签:通过MPLS标签绑定、分发和映射协议为从PE3到PE1的LSP确定的标签;
    • 中间LSR不关心内部标签,而是仅在LSP沿途操作外部标签;
    • 在PE1之前的最后一个LSR去除外部标签(倒数第二个标签弹出),然后将数据包发送到PE1;
    • 作为出口LSR的PE1在其VRF表中查找内部标签,并找到将数据包发送到的端口,随后去除内部标签并将数据包发送到CE1。

    优点

    这种解决方案非常具可扩展性:

    • 每个中间LSR只需要处理与PE数量相同的LSP,而不是与IP目的地数量相同;
    • 每个PE只需要处理与其连接的站点数量相同的VRF表。

    缺点

    PE之间的对等会话需要手动配置。

    该解决方案不提供任何加密,因为它是由服务提供商提供的,企业需要信任服务提供商。

    第三层:虚拟路由器

    在使用虚拟路由器的基于MPLS的VPN中,每个PE为与其连接的每个公司运行一个(虚拟)路由器实例,因此每个实例只处理一个公司网络 → 协议更简单,因为它只处理一个VPN,但可扩展性较低,因为路由器实例需要手动配置。

    MPLS/虚拟路由器基于第三层的站点到站点VPN示例。

    SSL(伪)VPN

    SSL可用于创建站点到站点和访问VPN,但它主要用于SSL(伪)VPN,通过基于TCP/UDP的隧道为服务(如Web服务、电子邮件)提供安全访问。SSL(伪)VPN的主要优点是它们在任何网络场景中都有很好的兼容性,不会遇到穿越NAT、防火墙或路由器的问题,SSL服务还可以通过HTTPS被Web浏览器访问。

    与替代解决方案的比较

    与IPsec的比较

    优点
    SSL比IPsec在以下方面更方便:

    • 使用:IPsec有太多选项需要配置和管理,而SSL只需要将应用程序与实现SSL的库一起编译;
    • 安全性:SSL工作在应用层 → 攻击SSL只涉及应用程序,而不会影响整个操作系统;
    • 成熟度:它已经使用了很多年,经过了多个版本 → 代码中的错误很少;
    • 兼容性与NAT穿越
      • SSL位于传输层之上,因此不会认证IP头部;
      • 不像IPsec ESP那样加密端口。

    缺点
    SSL对DoS攻击很敏感:数据包总是需要处理到传输层,而IPsec在网络层就会丢弃它们。

    与PPTP的比较

    SSL克服了一些PPTP的问题:

    • 与非微软平台的互操作性差;
    • 一些网络管理员可能会配置路由器阻止GRE,PPTP就是基于GRE协议的,因为他们不喜欢源路由特性。

    SSL(伪)VPN的不同类型

    • Web代理
      Web服务器不支持HTTPS → 在公司网络边缘,‘VPN网关’通过HTTP从Web服务器下载网页,并通过HTTPS将其传输到公司网络外的用户。

    • 端口转发
      客户端运行支持应用协议(如FTP、SMTP、POP3)的应用程序 → 客户端上安装的端口转发器将发送到特定端口的应用程序协议数据包转换为HTTPS数据包并通过其他端口发送,反之亦然。

    • 应用程序翻译
      Web服务器是支持应用协议(如FTP、SMTP、POP3)的应用服务器 → ‘VPN网关’通过端口转发机制将HTTPS转换为应用协议,反之亦然。

    • SSL协议的应用
      一些应用协议可以原生集成SSL(如SMTP-over-SSL、POP-over-SSL) → 客户端和Web服务器可以直接安全通信,无需‘VPN网关’翻译。

    • 应用程序代理
      客户端使用SSL协议的应用,但Web服务器不支持 → 仍然需要‘VPN网关’进行端口转发机制。

    • 网络扩展
      客户端和Web服务器都不支持SSL → 需要两个‘VPN网关’,一个在用户端,另一个在Web服务器端,因此SSL隧道在这两个‘VPN网关’之间创建。