L2TP VPN 技术详解

简介

L2TP VPN属于二层VPN,用于远程访问C/S结构,L2TP VPN是一种用于承载PPP报文的隧道技术,主要用在远程办公场景中为出差员工远程访问企业内网资源提供接入服务。 二层隧道协议L2TP(Layer 2 Tunneling Protocol)是虚拟私有拨号网VPDN(Virtual Private Dial-up Network)隧道协议的一种,扩展了点到点协议PPP(Point-to-Point Protocol)的应用,是远程拨号用户接入企业总部网络的一种重要VPN技术。 L2TP结合了PPTP和L2F两种协议,不支持加密,采用UDP封装端口号1701。

优点

  • 灵活的身份验证机制以及高强度的安全性

    • L2TP使用PPP提供的安全特性(如PAP、CHAP),对接入用户进行身份验证

    • L2TP定义了控制消息 的加密传输方式,支持L2TP隧道的认证

    • L2TP对传输的数据不加密,但可以和IPsec结合应用,为数据传输提供高度的安全保证

  • 多协议传输:L2TP传输PPP数据包,PPP可以传输多种协议报文

  • 支持RADIUS服务器的验证

  • 支持私网地址分配:应用L2TP的企业总部网关,可以为远程用户动态分配私网地址

  • 可靠性:L2TP协议支持备份LNS,当一个LNS不可达之后,LAC可以与备份LNS建立连接,增强了VPN服务的可靠性

L2TP VPN的原理

VPDN

VPDN:承载PPP报文的VPN,可以为企业、小型ISP、移动办公人员提供接入服务。PPP终端接入拨号网络,拨号到NAS。NAS收到PPP报文后进行L2TP封装,最外层的IP报头经过公网路由转发后到达LNS。LNS收到报文后解封装,还原PPP报文,完成了PPP报文在公共网络上的透明传输,从而在PPP终端和LNS之间建立了VPDN连接。随着以太网络的普及,PPP终端不再受限于传统的拨号网络,使用PPPoE技术,即可通过以太网络接入LAC。

L2TP功能组件
  • PPP终端:L2TP应用中,PPP终端指发起拨号,将数据封装为PPP类型的设备,如远程用户PC、企业分支网关等。

  • NAS网络接入服务器( Network Access Server )主要由ISP维护,连接拨号网络,是距离PPP终端地理位置最近的接入点。NAS用于传统的拨号网络中,为远程拨号用户提供VPDN服务,和企业总部建立隧道连接。

  • LAC ( L2TP Access Concentrator)是交换网络上具有PPP和L2TP处理能力的设备。LAC根据PPP报文中所携带的用户名或者域名信息,和LNS建立L2TP隧道连接,将PPP协商延展到LNS。

  • LNS(L2TP Network Server)端是接受PPP会话的一端,一般位于私网与公网边界。通过LNS,用户就可以登录到私网上,访问私网资源。L2TP隧道端点分别位于LAC和LNS两端。

L2TP VPN的主要应用场景

NAS-Initiated场景(拨号用户访问企业内网) 用户通过PPPoE拨入LAC(L2TP Access Concentrator),出发LAC和LNS之间建立隧道。接入用户地址由LNS分配,对接入用户的认证可由LAC侧的代理完成,也可两侧都对接入用户做认证。当所有L2TP用户都下线时,隧道自动拆除以节省资源,直至再有用户接入时,重新建立隧道。 此组网适用于分支机构用户向总部发起连接,且一般用于分支机构的用户不经常访问企业总部的情况。在这里插入图片描述

LAC自动拨号 LAC与LNS之间建立一条永久性L2TP会话。客户端不用PPP拨号,而通过IP(路由)连接即可在隧道中传输数据。 用户通过配置触发建立LAC与LNS之间的永久性L2TP会话。LAC使用存储在本地的用户名和LNS建立一个永久性的L2TP隧道,此时的L2TP隧道就相当于一个物理连接。用户与LAC之间的连接就不受限于PPP连接,而只需IP连接,LAC即可将用户的IP报文转发到LNS。 这种组网也适用于分支机构接入总部,用于分支机构员工访问总部频率较高的情况。 与NAS-Initiated场景相比:

  • 分支机构员工感知不到隧道存在,不需要使用用户名接入。LAC为分支机构的多个用户提供L2TP服务,免去了每个用户使用L2TP都需要先拨号的麻烦。

  • 这种组网下,LNS只对LAC进行认证。其缺点为:分支机构用户只要能够连接LAC即可使用L2TP隧道接入总部,而不需被认证。存在一定的安全隐患。此时用户接入总部以通过设备的用户认证功能对接入总部的用户进行认证,从而提高安全性。 在这里插入图片描述

Client-Initiated场景(移动办公用户访问企业内网) 直接由接入用户(可以是支持L2TP协议的PC)发起连接。此时接入用户可直接向LNS发起隧道连接请求,无需再经过一个单独的LAC设备。接入用户地址的分配由LNS来完成。 由于LNS端需要为每个远程用户建立一条隧道,与NAS-Initiated VPN场景相比,LNS端配置更复杂一些。与其他两种场景相比,其优点在于接入用户不受地域限制。 此场景适用于出差员工使用PC、手机等移动设备接入总部服务器,实现移动办公。 在这里插入图片描述

隧道和会话建立原理

隧道和会话的概念:

在LNS和LAC之间存在着两种类型的连接:

  • 隧道连接:它定义了互相通信的两个实体LNS和LAC。

    • 在一对LAC和LNS之间可以建立多条隧道。隧道由一个控制连接和至少一个会话组成。

    • L2TP首先需要建立L2TP隧道,然后在L2TP隧道上建立会话连接,最后建立PPP连接。所有的L2TP需要承载的数据信息都是在PPP连接中进行传递的。

  • 会话连接:它复用在隧道连接之上,用于表示承载隧道连接中的每个PPP连接过程。

    • 会话是有方向的,从LAC向LNS发起的会话叫做Incoming会话,从LNS向LAC发起的会话叫做Outgoing会话。

隧道和会话的关系:
  • NAS-Initiated VPN场景中,一对LAC和LNS的连接可以存在多条隧道;一条隧道中可承载多条会话。即:多个用户可以共用一条隧道。 在这里插入图片描述

  • LAC自动拨号场景中,LAC和LNS建立永久的隧道。且仅承载一条永久的L2TP会话和PPP连接。 在这里插入图片描述

  • Client-Initiated VPN场景中,每个接入用户和LNS之间均建立一条隧道;每条隧道中仅承载一台L2TP会话和PPP连接。 在这里插入图片描述

控制消息和数据消息

控制消息:

控制消息用于隧道和会话连接的建立、维护以及传输控制;位于隧道和会话建立过程中。控制消息的传输时可靠传输,并且支持对控制消息的流量控制和拥塞控制;主要的控制消息波阔控制报文、会话报文等。 用于建立和拆除、维持隧道的控制报文,主要包括:

  • SCCRQ(Start-Control-Connection-Request):控制连接发启请求。由LAC或者LNS向对端发送,用来初始化LAC和LNS之间的隧道,开始隧道的建立过程。NGFW的应用场景中,一般都是由LAC向LNS发起请求。

  • SCCRP(Start-Control-Connection-Reply):表示接受了对端的连接请求,隧道的建立过程可以继续。

  • SCCCN(Start-Control-Connection-Connected):对SCCRP的回应,完成隧道的建立。

  • StopCCN(Stop-Control-Connection-Notification):由LAC或者LNS发出,通知对端隧道将要停止,控制连接将要关闭。另外,所有活动的会话都会被清除。

  • HELLO:隧道保活控制消息。L2TP使用Hello报文来检测隧道的连通性。LAC和LNS定时向对端发送Hello报文,如果在一段时间内未收到Hello报文的应答,隧道将被清除。

用于建立和拆除会话的会话报文,主要包括:

  • ICRQ(Incoming-Call-Request):当LAC检测到有用户拨入电话的时候,向LNS发送ICRQ,请求在已经建立的隧道中建立会话。

  • ICRP(Incoming-Call-Reply):用来回应ICRQ,表示ICRQ成功,LNS也会在ICRP中标识L2TP会话必要的参数。

  • ICCN(Incoming-Call-Connected):用来回应ICRP,L2TP会话建立完成。

  • CDN(Call-Disconnect-Notify):由LAC或者LNS发出,通知对端会话将要停止。

数据消息:

用于承载用户的PPP连接数据报文,并在隧道上进行传输。数据消息的传输是不可靠传输,若数据报文丢失,不予重传。不支持对数据消息的流量控制和拥塞控制。

NAS-Initiated VPN 隧道和会话建立过程:

在这里插入图片描述

  1. 建立PPPoE连接

  2. LAC对用户进行认证

  3. 建立L2TP隧道

    L2TP数据以UDP报文形式发送。L2TP注册了UDP端口1701,但是这个端口仅用于初始的隧道建立过程。L2TP隧道发起方(LAC)任选一个空闲端口(未必是1701)向接收方(LNS)的1701端口发送报文;LNS收到报文后,使用1701端口给LAC的指定端口回送报文。至此,双方的端口选定,并在隧道保持连通的时间段内不再改变。

    1. LAC检查用户的LCP协商中的认证信息(Domain、Username等),查找能够匹配的L2TP组,根据L2TP组的配置对某个LNS进行L2TP呼叫建立L2TP隧道。如果此时LAC发现L2TP隧道已经建立,则LAC发起会话连接,否则首先建立L2TP隧道。

    2. LAC端向指定的LNS发送CHAP challenge信息,LNS回送该challenge响应消息CHAP response,并发送LNS侧的CHAP challenge,LAC返回该challenge的相应消息CHAP response。

  4. 建立L2TP会话 LAC和LNS使用ICRQ、ICRP和ICCN消息建立L2TP会话,这些消息都在前面建立的L2TP隧道中传递,并且都会添加隧道到对端的Tunnel ID信息。 在ICCN消息中,LAC端将用户CHAP response、response identifier和PPP协商参数传送给LNS,以便后续LNS与用户建立PPP连接。

  5. LNS根据用户名、密码等信息对用户进行认证。

  6. LNS对用户进行二次认证(可选)

  7. LNS对用户在此认证(可选)

  8. 用户与LNS之间建立PPP连接。

    完成了L2TP会话以后,LAC会将Client的相关PPP参数通过L2TP会话转发给LNS,LNS和用户进行PPP的认证。

    LNS向用户分配地址然后建立PPP连接,注意此时的PPP连接在用户和LNS之间建立,并不是在LAC和LNS之间。

    此时的LAC也保持着和用户的PPP连接,用于将来自LNS的L2TP数据报文解封装以后通过PPP连接传递给Client。

  9. 用户成功访问内网资源。

LAC自动拨号隧道和会话的建立:

与触发建立隧道的方式不同,LAC自动拨号场景是无需触发的永久隧道。一旦配置完毕,即可建立永久隧道,并承载唯一的一条永久会话。LAC为LNS的唯一的客户端。 在这里插入图片描述

Client-Initiated VPN隧道和会话的建立:

Client-Initiated VPN场景下,隧道建立过程与NAS-Initiated VPN相似。与NAS-Initiated VPN场景相比,Client-Initiated VPN场景相当于将Client和LAC合为了一个整体。 在这里插入图片描述

L2TP VPN的报文封装:

NAS-Initiated VPN组网数据封装过程:

在这里插入图片描述 NAS-Initiated VPN组网中,接入用户访问内网服务器时:

  • 当隧道和会话均建立完成后,接入用户已获取LNS分配的地址,并用此地址来访问内网服务器。 接入用户向LAC发起PPPoE拨号,为数据添加私有IP、PPP报文头和PPPoE报文头,并添加太网头后,发送给LAC。

  • LAC收到报文后,依次剥离以太网头、PPPoE报文头,并对报文依次封装L2TP报文头、UDP报文头,并添加公网IP,发送给LNS。

  • LNS收到报文后,首先对报文进行L2TP解封装,依次剥离公网IP、UDP报文头、L2TP报文头。之后进行PPP解封装,剥离PPP报文头。最后添加以太网头,并根据私有IP的目的地址将报文发送给内网服务器。

  • 服务器接收报文后,获取报文数据,并将响应报文发送给LNS。

LAC自动拨号组网数据封装过程:

在这里插入图片描述 LAC自动拨号组网中,PPP封装和L2TP封装仅限于LAC和LNS之间的报文交互。

Client-Initiated VPN组网数据封装过程:

在这里插入图片描述

L2TP VPN的认证:

L2TP支持使用PAP和CHAP两种方式进行PPP认证。

VT(Virtual-Template)接口:

PPP、Ethernet都是二层协议,它们之间不能直接互相承载。当用户配置PPPoE等二层协议时,这些二层协议之间需要通过虚拟访问接口VA(Virtual-Access)进行通信。前文已经提到,L2TP中会使用PPPoE协议。VT接口是用于配置虚拟访问接口的模板。在L2TP会话连接建立之后,LAC、LNS均需要创建虚拟访问接口用于和对端(即用户)交换数据。此时,系统将按照用户的配置,选择VT接口,根据改模板的配置参数(包括接口IP地址、PPP认证方式等)动态的创建虚拟访问接口。 命令行配置中,VT接口下可选择CHAP或PAP认证方式来对用户进行PPP认证。Web配置中不支持手工配置认证方式,系统优先选择CHAP方式,其次可选择PAP方式。

LAC自主拨号场景:

LAC自主拨号场景中,LAC侧不对用户进行认证,只在LNS侧对LAC配置的用户进行PPP认证(PAP或CHAP)。在命令行配置中,体现在VT接口下配置的PPP认证方式。

Client-Initiated VPN场景:

Client-Initiated VPN场景中,在LNS侧对用户进行PPP认证(PAP或CHAP)。在命令行配置中,体现在VT接口下配置的PPP认证方式。

NAS-Initiated VPN场景:

NAS-Initiated VPN场景中,L2TP可对用户进行两次PPP认证:第一次发生在LAC侧,第二次发生在LNS侧。只有一种情况LNS侧不对接入用户进行二次认证:启用LCP重协商后,不在相应的VT接口上配置认证。这时,用户只在LAC侧接受一次认证。 另外,不论对于LAC或LNS,如果其配置的用户认证方式为“不认证”,则不论VT接口中使用何种认证方式,都不对用户进行认证。 以下对于认证方式的描述都是基于配置的用户认证方式不为“不认证”的情况。

  • LAC端认证方式 LAC端可对用户进行PAP或CHAP认证。在命令行配置中,使用VT接口下配置的PPP认证方式。

  • LNS端认证方式 LNS对用户的认证方式除由PPP认证方式决定外,还取决于配置的L2TP认证方式。L2TP认证方式有三种:代理认证、强制CHAP认证和LCP重协商。其中,LCP重协商的优先级最高,代理认证优先级最低。

    • LCP重协商 如果需要在LNS侧进行比LAC侧更严格的认证,或者LNS侧需要直接从用户获取某些信息(当LNS与LAC是不同厂商的设备时可能发生这种情况),则可以配置LNS与用户间进行LCP重协商。LCP重协商使用相应VT接口配置的认证方式。此时将忽略LAC侧的代理认证信息。

    • 强制CHAP认证 如果只配置强制CHAP认证,则LNS对用户进行CHAP认证,如果认证不通过,会话就不能建立成功。

    • 代理认证

      代理认证就是LAC将它从用户得到的所有认证信息及LAC配置的认证方式传给LNS,LNS会利用这些信息和LAC端传来的认证方式对用户进行认证。

      NAS-Initiated VPN中,在PPP会话开始时,用户先和LAC进行PPP协商。若协商通过,则由LAC初始化L2TP隧道连接,并将用户信息、认证信息等传递给LNS,由LNS根据收到的代理认证信息判断用户是否合法。

      • LNS的PPP认证方式不能比LAC复杂。例如,如果LAC端配置的认证方式为PAP,而LNS配置的PPP认证方式为CHAP,则由于LNS要求的CHAP认证级别高于LAC能够提供的PAP认证,认证将无法通过,会话也就不能正确建立。

      • 其他情况下,如果LNS与LAC的认证方式不一致,LNS将采用LAC发送过来的认证方式进行协商,忽略VT接口配置的认证方式。

三种组网模式的对比

在这里插入图片描述

  • Client-Initiated VPN:其优点在于接入用户不受地域限制。此场景适用于员工使用PC、手机等移动设备接入总部服务器,实现移动办公。

  • NAS-Initiated VPN:接入用户(PC)通过PPPoE拨入LAC,由LAC通过Internet向LNS发起建立隧道连接请求。接入用户地址由LNS分配,对接入用户的认证可由LAC侧代理完成,也可两侧都对接入用户做认证。当所有L2TP用户都下线时,隧道自动拆除以节省资源,直至再有用户接入时,重新建立隧道。此组网适用于分支机构用户向总部发起连接,且一般用于分支机构的用户不经常访问企业总部的情况。

  • LAC-Auto:分支机构员工感知不到隧道存在,不需要使用用户接入。LAC为分支机构的多个用户提供L2TP服务,免去了每个用户使用L2TP都需要先拔号的麻烦 这种组网下,LNS只对LAC进行认证。其缺点为:分支机构用户只要能够连接LAC即可使用L2TP隧道接入总部,而不需被认证。存在一定的安全隐患。此时用户接入总部以通过设备的用户认证功能对接入总部的用户进行认证,从而提高安全性

L2TP和PPTP区别:

  • L2TP:公有协议、UDP1701、支持隧道验证,支持多个协议,多个隧道,压缩字节,支持三种模式

  • PPTP:私有协议、TCP1723、不支持隧道验证,只支持IP、只支持点到点

PPTP: 点对点隧道协议(PPTP)是由包括Microsoft和3com等公司组成的PPTP论坛开发的,一种点对点隧道协议,基于拔号使用的PPP协议使用PAP或CHAP之类的加密算法,或者使用Microsoft的点对点加密算法MPPE。

L2TP: 第二层隧道协议(L2TP)是IETF基于L2F(Cisco的2层转发协议)开发的PPTP后续版本,是一种工业标准Internet隧道协议。

主要区别:

  • PPTP只能在两端间建立单一隧道,L2TP支持在两端点间使用多隧道,这样可以针对不同的用户创建不同的服务质量

  • L2TP可以提供隧道验证机制,而PPTP不能提供这样的机制,但当L2TP或PPTP与IPSec共同使用时,可以由IPSec提供隧道验证,不需要在第二层协议上提供隧道验证机制

  • PPTP要求互联网络为IP网络,而L2TP只要求隧道媒介提供面向数据包的点对点连接,L2TP可以在IP(使用UDP),FR,ATM,x.25网络上使用

  • L2TP可以提供包头压缩。当压缩包头时,系统开销(voerhead)占用4个字节,而PPTP协议下要占用6个字节

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值