L2TP协议笔记1---L2TP概念及协议流程分析
来源:互联网 发布:闪迪数据恢复软件 编辑:程序博客网 时间:2024/05/20 10:53
转自:http://lijt100616.blog.51cto.com/1338011/341144
L2TP协议简介
一、L2TP实现的两种方式
1、PC直接拨号到LNS,组网如图1所示
2、PC通过LAC拨号连接到LNS,组网如图2所示
二、L2TP封装位置分析
图3
三、理解L2TP几个重要的概念
1、隧道和会话的概念
在一个LNS和LAC对之间存在着两种类型的连接,一种是隧道(Tunnel)连接,一对LAC和LNS中可以有多个L2TP隧道;另一种是会话(Session)连接,它复用在隧道连接之上,用于表示承载在隧道连接中的每个PPP会话过程。
隧道由一个控制连接和一个或多个会话(Session)组成。会话连接必须在隧道建立(包括身份保护、L2TP版本、帧类型、硬件传输类型等信息的交换)成功之后进行,每个会话连接对应于LAC和LNS之间的一个PPP数据流。控制消息和PPP数据报文都在隧道上传输。
- L2TP使用Hello报文来检测隧道的连通性。LAC和LNS定时向对端发送Hello报文,若在一段时间内未收到Hello报文的应答,该隧道连接将被断开。
- L2TP报文头中包含隧道标识符(Tunnel ID)和会话标识符(Session ID)信息,用来标识不同的隧道和会话。隧道标识相同、会话标识不同的报文将被复用在一个隧道上,报文头中的隧道标识符与会话标识符由对端分配。
隧道(tunnel)和会话(session)的关系,如图4所示;可以形象的理解为会话是建立在隧道之中的,隧道想成一个有10个车道的高速公路,一台拨号PC的数据流为一个会话,相当于占用了一个车道(告诉公路有多少车道是设备规定好的),这个车道只能跑这个运载这个PC的报文的卡车。(比如某型号设备每条隧道最多支持1000个会话)。
图4
2、控制消息和数据消息的概念
- 控制消息:用于隧道和会话连接的建立、维护以及传输控制;控制消息的传输是可靠传输,并且支持对控制消息的流量控制和拥塞控制。
- 数据消息:用于封装PPP帧并在隧道上传输;数据消息的传输是不可靠传输,若数据报文丢失,不予重传,不支持对数据消息的流量控制和拥塞控制。
四、L2TP隧道的呼叫建立流程
1、L2TP隧道的呼叫建立流程
图5
(1) 用户端PC机发起呼叫连接请求;
(2) PC机和LAC端进行PPP LCP协商;
(3) LAC对PC机提供的用户信息进行PAP或CHAP认证;
(4) LAC将认证信息(用户名、密码)发送给RADIUS服务器进行认证;
(5) RADIUS服务器认证该用户,如果认证通过则返回该用户对应的LNS地址等相关信息,并且LAC准备发起Tunnel连接请求;
(6) LAC端向指定LNS发起Tunnel连接请求;
(7) LAC端向指定LNS发送CHAP challenge信息,LNS回送该challenge响应消息CHAP response,并发送LNS侧的CHAP challenge,LAC返回该challenge的响应消息CHAP response;
(8) 隧道验证通过;
(9) LAC端将用户CHAP response、response identifier和PPP协商参数传送给LNS;
(10) LNS将接入请求信息发送给RADIUS服务器进行认证;
(11) RADIUS服务器认证该请求信息,如果认证通过则返回响应信息;
(12) 若用户在LNS侧配置强制本端CHAP认证,则LNS对用户进行认证,发送CHAP challenge,用户侧回应CHAP response;
(13) LNS再次将接入请求信息发送给RADIUS服务器进行认证;
(14) RADIUS服务器认证该请求信息,如果认证通过则返回响应信息;
(15) 验证通过,用户访问企业内部资源。
注:此节如下附加内容涉及到报文协商,前面没有介绍,可以先了解L2TP笔记2中关于报文格式与协商的相关内容,再回头深入分析此节,此节放在这里是为了便于对于整体协商过程进行深入分析。
附加:2、针对流程中步骤7、步骤12的Challenge验证过程的分析
(1)LAC向LNS发SCCRQ请求消息时,会产生一个随机的字符串做为本端CHAP Challenge发给LNS。
(2)LNS收到这个Challenge后,再加上本端配置的密码及SCCRP产生一个新的字符串,用MD5算出一个16个字节的Response,在SCCRP消息中发给LAC。
同时也产生一个随机的字符串(LNS Challenge)放在SCCRP中一起发给LAC。
(3)LAC将自己的CHAP Challenge加上本端配置的密码,再加上SCCRP产生一个新字符串,用MD5算出一个16字节的字符串,并与LNS发来的SCCRP中带的LNS CHAP Response比较,相同通过,不同断掉。
(4)同理LNS也要验证LAC,LAC用在SCCRP中发现的LNS CHAP Challenge加上本端密码和SCCCN组合,再用MD5算出一个16字节的字符串做为LAC CHAP Response在SCCCN中发给LNS。
(5)LNS用自己发的Challenge+本端密码+SCCCN用MD5算出一个16字节字符串,与收到的作比较,相同通过,不同断掉。
附加:3、LAC代LNS与PC协商LCP(即认证代理)和用于认证的AVPS
参考文献:
1、H3C产品手册
2、华为培训资料
3、百度知道
4、学习笔记
- L2TP协议笔记1---L2TP概念及协议流程分析
- L2TP协议笔记1---L2TP概念及协议流程分析
- L2TP协议笔记1---基础概念及协议流程分析
- L2TP协议笔记2---L2TP主要协议报文分析
- L2TP协议笔记2---L2TP主要协议报文分析
- L2TP协议及AVP
- L2TP协议
- Cisco L2TP 协议配置命令
- GRE、PPTP、L2TP隧道协议
- GRE、PPTP、L2TP隧道协议
- VPN协议PPTP、L2TP、OpenVPN
- GRE、PPTP、L2TP隧道协议
- 配置VPN服务器使用L2TP/IPSEC协议
- SLIP、PPP、PPPoE、L2TP以及PPTP协议
- VPN隧道协议-GRE、L2TP、IPSEC
- PPTP/L2TP协议详解以及应用部署
- centos使用l2tp协议连接vpn服务器
- L2TP
- Thrift序列化和反序列化处理代码(java版)
- 通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔
- 织梦cms v6.7最新上传漏洞
- Ajax学习
- IOS 预览word文档的集中方式
- L2TP协议笔记1---L2TP概念及协议流程分析
- Objective-C语法之类和对象
- cmake 学习笔记
- pcap_loop 和 callbac
- hibernate中的简单应用
- EBS R12中打开About This Page功能
- mysql 获取刚插入行id汇总
- 图像分析 连通区标记方法
- iOS开发知识要点(双击事件。。。)