L2TP(Layer 2 Tunneling Protocol) VPN是一种用于承载PPP报文的隧道技术,该技术主要应用在远程办公场景中为出差员工远程访问企业内网资源提供接入服务。
L2TP VPN技术出现以后,使用L2TP VPN隧道“承载”PPP报文在Internet上传输成为了解决上述问题的一种途径。无论出差员工是通过传统拨号方式接入Internet,还是通过以太网方式接入Internet,L2TP VPN都可以向其提供远程接入服务。
身份验证机制
支持本地认证。
支持Radius服务器等认证方式
多协议传输
L2TP传输PPP数据包,PPP本身可以传输多协议,而不仅仅是IP可以在PPP数据包内封装多种协议
计费认证地址分配
可在LAC和LNS两处同时计费,即ISP处(用于产生账单)及企业网关(用于付费及审计)。L2TP能够提供数据传输的出入包数、字节数以及连接的起始、结束时间等计费数据,可根据这些数据方便地进行网络计费
LNS可放置于企业网的USG之后,对远端用户地址进行动态分配和管理,可支持私有地址应用
不受NAT限制穿越
支持远程接入
灵活的身份验证及时以及高度的安全性
L2TP协议本身并不提供连接的安全性,但它可以依赖于PPP提供的认证(CHAP、PAP等),因此具有PP所具有的所有安全特性。
L2TP隧道可以与IPSec结合,使通过L2TP所传输的数据更难被攻击。
可根据特定的网络安全要求,在L2TP之上采用通道加密技术、端对端数据加密或应用层数据加密等方案来提高数据的安全性。
可靠性
L2TP协议支持备份LNS,当一个主LNS不可达之后,LAC可以重新与备份LNS建立连接,增加了VPN服务的可靠性和容错性
LAC和LNS介绍:
LAC是附属在交换网络上的具有PPP端系统和L2TP协议处理能力的设备,主要用于为PPP类型的用户提供接入服务
LAC位于LNS和用户之间,用于在LNS和用户之间传递信息包,它把用户收到的信息包按照L2TP协议进行封装并送往LNS,同时也将从LNS收到的信息包进行解封装并送往用户。LAC与用户之间采用本地连接或PPP链路,VPDN应用中通常为PPP链路。
LNS既是PPP端系统,又是L2TP协议的服务器端,通常作为一个企业内部网的边缘设备。
LNS作为L2TP隧道的另一侧端点,是LAC的对端设备 ,是LAC进行隧道传输的PPP会话的逻辑终止端点。通过在公网中建立LAC隧道,将用户的PPP连接的另一端由原来的LAC在逻辑上延伸了企业网内部的LNS。
L2TP VPN主要有三种应用场景。分别是:
NAS-Initiated场景(拨号用户访问企业内网)
NAS(Network Access Server):是运营商用来向拨号用户提供PPP/PPPoE接入服务的服务器,拨号用户通过NAS访问外部网络。
LNS(L2TP Network Server)是企业总部的出口网关。
用户通过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 VPN场景相比:
Client-Initiated场景(移动办公用户访问企业内网)
直接由接入用户(可为支持L2TP协议的PC)发起连接。此时接入用户可直接向LNS发起隧道连接请求,无需再经过一个单独的LAC设备。接入用户地址的分配由LNS来完成。
由于LNS端需要为每个远程用户建立一条隧道,与NAS-Initiated VPN场景相比,LNS端配置更复杂一些。与其他两种场景相比,其优点在于接入用户不受地域限制。
此场景适用于出差员工使用PC、手机等移动设备接入总部服务器,实现移动办公。
在LNS和LAC对之间存在着两种类型的连接。
隧道(Tunnel)连接:它定义了互相通信的两个实体LNS和LAC。
在一对LAC和LNS之间可以建立多条隧道。隧道由一个控制连接和至少一个会话组成。
L2TP首先需要建立L2TP隧道,然后在L2TP隧道上建立会话连接,最后建立PPP连接。所有的L2TP需要承载的数据信息都是在PPP连接中进行传递的。
会话(Session)连接:它复用在隧道连接之上,用于表示承载隧道连接中的每个PPP连接过程。
隧道和会话的关系:
**控制消息:**控制消息用于隧道和会话连接的建立、维护以及传输控制;位于隧道和会话建立过程中。控制消息的传输是可靠传输,并且支持对控制消息的流量控制和拥塞控制;主要的控制消息包括控制报文、会话报文等。
控制报文用于建立和拆除、维持隧道,主要包括:
会话报文用于建立和拆除会话,主要包括:
数据消息:用于承载用户的PPP连接数据报文,并在隧道上进行传输。数据消息的传输是不可靠传输,若数据报文丢失,不予重传。不支持对数据消息的流量控制和拥塞控制。
建立PPPoE连接
LAC对用户进行认证。
建立L2TP隧道
L2TP数据以UDP报文形式发送。L2TP注册了UDP端口1701,但是这个端口仅用于初始的隧道建立过程。L2TP隧道发起方(LAC)任选一个空闲端口(未必是1701)向接收方(LNS)的1701端口发送报文;LNS收到报文后,使用1701端口给LAC的指定端口回送报文。至此,双方的端口选定,并在隧道保持连通的时间段内不再改变。
LAC检查用户的LCP协商中的认证信息(Domain、Username等),查找能够匹配的L2TP组,根据L2TP组的配置对某个LNS进行L2TP呼叫建立L2TP隧道。如果此时LAC发现L2TP隧道已经建立,则LAC发起会话连接,否则首先建立L2TP隧道。
LAC端向指定的LNS发送CHAP challenge信息,LNS回送该challenge响应消息CHAP response,并发送LNS侧的CHAP challenge,LAC返回该challenge的响应消息CHAP response。
LAC和LNS之间通过SCCRQ、SCCRP和SCCCN消息完成L2TP隧道的建立,并且双方都知道对方的Tunnel ID等信息,后续的数据报文都会添加Peer的Tunnel ID信息,这样接收者就可以知道收到的L2TP报文属于本地的哪个隧道。
建立L2TP会话
LAC和LNS使用ICRQ、ICRP和ICCN消息建立L2TP会话,这些消息都在前面建立的L2TP隧道中传递,并且都会添加隧道对端的Tunnel ID信息。
在ICCN消息中,LAC端将用户CHAP response、response identifier和PPP协商参数传送给LNS,以便后续LNS与用户建立PPP连接。
LNS根据用户名、密码等信息对用户进行认证。
LNS对用户进行二次认证(可选)
LNS对用户在此认证(可选)
用户与LNS之间建立PPP连接。
完成了L2TP会话以后,LAC会将Client的相关PPP参数通过L2TP会话转发给LNS,LNS和用户进行PPP的认证。
LNS向用户分配地址然后建立PPP连接,注意此时的PPP连接在用户和LNS之间建立,并不是在LAC和LNS之间。
此时的LAC也保持着和用户的PPP连接,用于将来自LNS的L2TP数据报文解封装以后通过PPP连接传递给Client。
用户访问内网资源。
与触发建立隧道的方式不同,LAC自动拨号场景是无需触发的永久隧道。一旦配置完毕,即可建立永久隧道,并承载唯一的一条永久会话。LAC为LNS的唯一的客户端。
Client-Initiated VPN场景下,隧道建立过程与NAS-Initiated VPN相似。与NAS-Initiated VPN场景相比,Client-Initiated VPN场景相当于将Client和LAC合为了一个整体。
NAS-Initiated VPN组网中,接入用户访问内网服务器时:
LAC自动拨号组网中,PPP封装和L2TP封装仅限于LAC和LNS之间的报文交互。
L2TP支持使用PAP和CHAP两种方式进行PPP认证。
PPP、Ethernet都是二层协议,它们之间不能直接互相承载。当用户配置PPPoE等二层协议时,这些二层协议之间需要通过虚拟访问接口VA(Virtual-Access)进行通信。前面已经提到,L2TP中会使用PPPoE协议。VT接口是用于配置虚拟访问接口的模板。在L2TP会话连接建立之后,LAC、LNS均需要创建虚拟访问接口用于和对端(即用户)交换数据。此时,系统将按照用户的配置,选择VT接口,根据该模板的配置参数(包括接口IP地址、PPP认证方式等)动态地创建虚拟访问接口。
命令行配置中,VT接口下可选择CHAP或PAP认证方式来对用户进行PPP认证。Web配置中不支持手工配置认证方式,系统优先选择CHAP方式,其次选择PAP方式。
LAC自主拨号场景中,LAC侧不对用户进行认证,只在LNS侧对LAC配置的用户进行PPP认证(PAP或CHAP)。在命令行配置中,体现在VT接口下配置的PPP认证方式。
Client-Initiated VPN场景中,在LNS侧对用户进行PPP认证(PAP或CHAP)。在命令行配置中,体现在VT接口下配置的PPP认证方式。
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根据收到的代理认证信息判断用户是否合法。
代理认证与VT接口的PPP认证方式的关系:
PPTP:
点对点隧道协议(PPTP)是由包括Microsoft和3com等公司组成的PPTP论坛开发的,一种点对点隧道协议,基于拔号使用的PPP协议使用PAP或CHAP之类的加密算法,或者使用Microsoft的点对点加密算法MPPE。
L2TP:
第二层隧道协议(L2TP)是IETF基于L2F(Cisco的2层转发协议)开发的PPTP后续版本,是一种工业标准Internet隧道协议。
两者的主要区别主要有以下几点:
L2TP什么情况下需要强制认证?
在NAS模式下。且LNS不信任LAC,配置了强制认证的情况下
参考文档:华为HedEx文档。
文章浏览阅读1.9k次。1 、据说python3就没有这个问题了2 、u'字符串' 代表是unicode格式的数据,路径最好写成这个格式,别直接跟字符串'字符串'这类数据相加,相加之后type就是str,这样就会存在解码失误的问题。别直接跟字符串'字符串'这类数据相加别直接跟字符串'字符串'这类数据相加别直接跟字符串'字符串'这类数据相加unicode类型别直接跟字符串'字符串'这类数据相加说四遍3 、有些读取的方式偏偏..._python 路径 中文
文章浏览阅读107次。最近,阿云 B 站没声音,是在憋大招!8月5日周四 19:00 是阿里云的直播首秀,给大家请来了 Forrester 评分世界第一的 Serverless 团队产品经理江昱,给大家在线...._阿里云直播b站
文章浏览阅读5.9w次,点赞103次,收藏665次。TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。_tcp/ip协议
文章浏览阅读2.5k次,点赞26次,收藏34次。Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。这个项目最早是由Google的工程师在2006年发起(主要是Paul Menage和Rohit Seth),最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名词太过广泛,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核中去。_cgroup使用
文章浏览阅读8.9k次,点赞27次,收藏166次。一、缺陷检测概述 缺陷检测是机器视觉重要的应用方向之一,由于在制造产品的过程中,表面缺陷的产生往往是不可避免的,故机器视觉的缺陷检测有较大的市场需求。熟练掌握缺陷检测是视觉工程师的必要技能。 在工业视觉检测当中,常见的工业视觉检测表面缺陷有划伤、划痕、辊印、凹坑、粗糙、波纹等外观缺陷,此外还有像一些非金属产品表面的夹杂、破损、污点,以及纸张表面的色差、压痕等。 相比于人工检测,基于机器视觉的检测有如下优点:①能24小时不间断工作②检测速度快,准确率高③检测精度高④不受外界因素的干扰,检测_工业视觉检测开发blob
文章浏览阅读634次。对于copy功能PostgreSQL从9.2.4到16devel是否有过优化?或者openGauss是否持续合并或优化PostgreSQL的copy功能,这方面我没有去考证过。单纯从测试结果上看,openGauss的copy性能要略逊于PostgreSQL。当然,可能是我水平有限,所以希望各位openGauss的专家、老师集思广益,还openGauss一个真实的COPY FROM文件导入性能。(大家可以回复优化方案,我这边去做验证)_copy to or from a file is prohibited for security concerns
文章浏览阅读1.4k次。1. SMTP 插件 URL:http://www.magentocommerce.com/magento-connect/TurboSMTP/extension/4415/aschroder_turbosmtp KEY:magento-community/Aschroder_TurboSmtp 2. Email Template Adapter..._magento extension pour ricardo.ch
文章浏览阅读161次。声明:本文为原创作品,版权归akuei2及黑金动力社区共同所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 2.5 低级建模的资源 低级建模有讲求资源的分配,目的是使用“图形”来提高建模的解读性。 图上是低级建模最基本的建模框图,估计大家在实验一和实验二已经眼熟过。功能模块(低级功能模块)是一个水平的长方形,而控制模块(低级控制模块)是矩形。组..._cyclone ep2c8q208c黑金开发板
文章浏览阅读2.2w次,点赞10次,收藏63次。在日常生活和实际应用当中,我们经常会用到统计方面的知识,比如求最大值,求平均值等等。R语言是一门统计学语言,他可以方便的完成统计相关的计算,下面我们就来看一个相关案例。1. 背景最近西安交大大数据专业二班,开设了Java和大数据技术课程,班级人数共100人。2. 需求通过R语言完成该100位同学学号的生成,同时使用R语言模拟生成Java和大数据技术成绩,成绩满分为100,需要满足正_r语言案例分析
文章浏览阅读639次,点赞11次,收藏26次。虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。一个人可以走的很快,但一群人才能走的更远。
文章浏览阅读3.9k次,点赞9次,收藏53次。受力分析直线行驶时的车轮受力如下:水平方向上,所受合力为:F=Ft+Fw+FfF=F_t+F_w+F_fF=Ft+Fw+Ff其中,FtF_tFt为牵引力,FwF_wFw为空气阻力,FfF_fFf为滚动阻力,下面我们将逐个介绍。驱动力先来说扭矩,扭矩是使物体发生旋转的一个特殊力矩,等于力和力臂的乘积,单位为N∙mN∙mN∙m:设驱动轴的扭矩为TtT_tTt,车轮半径为rrr,那么牵引力:Ft=Tt⁄rF_t=T_t⁄rFt=Tt⁄r如何求得驱动轴扭矩TtT_tTt呢?_unity 车辆动力学模型
文章浏览阅读1.8w次,点赞2次,收藏65次。前端如何使用以太坊智能合约方法这里讲的是前端与MetaMask之间的交互文中涉及到的官方文档web3.js 1.0中文手册MetaMask官方文档web3.js文件链接:https://pan.baidu.com/s/1_mPT-ZcQ9GU_U1CVhBKpLA提取码:cbey//在vue中安装web3npm install web3 --save//在main.js引入import Web3 from 'web3'Vue.prototype.Web3 = Web3一、唤起Me_如何使用web3和vue.js创建你的第一个以太坊dapp