虚拟专用网之L2TP协议介绍

2023-11-15

L2TP简介

第二层隧道协议(L2TP)是一种虚拟隧道协议,是为在用户和企业的服务器之间透明传输PPP报文而设置的隧道协议。L2TP协议本身不提供加密与可靠性验证的功能,可以和安全协议搭配使用,从而实现数据的加密传输。

L2TP构建图解

在这里插入图片描述
L2TP隧道建立在LAC和LNS之间,由一条控制连接和至少一个L2TP会话组成。在一对LAC和LNS之间可以建立多条L2TP隧道。
会话连接的建立必须在隧道(控制连接)成功建立之后进行。每个会话连接对应于LAC和LNS之间的一个PPP数据流。与隧道的建立过程不同,会话连接的建立是有方向性的。
LAC请求LNS接受一个对应于“入呼叫”的会话,或者LNS请求LAC接受一个对应于“出呼叫”的请求。
L2TP报文头中包含隧道标识(TunnelID)和会话标识(Session ID)信息,用来标识不同的隧道和会话。隧道标识与会话标识是由对端分配的,只对接收端有意义,对发送端没有意义。

L2TP建立及拆除流程

L2TP的会话建立由PPP触发,隧道建立由会话触发。由于多个会话可以复用在一条隧道上,如果会话建立前隧道已经建立,则隧道不用重新建立。

L2TP隧道的建立

在这里插入图片描述
L2TP隧道的建立是一个三次握手的过程。
SCCRQ(Start-Control-Connection-Request):控制连接发启请求。由LAC或者LNS向对端发送,用来初始化LAC和LNS之间的隧道,开始隧道的建立过程。NGFW(下一代防火墙)的应用场景中,一般都是由LAC向LNS发起请求。
SCCRP(Start-Control-Connection-Reply):表示接受了对端的连接请求,隧道的建立过程可以继续。
SCCCN(Start-Control-Connection-Connected):对SCCRP的回应,完成隧道的建立。

L2TP会话的建立

在这里插入图片描述
会话的建立与隧道类似,也是一个三次握手的过程。
ICRQ(Incoming-Call-Request):当LAC检测到有用户拨入电话的时候,向LNS发送ICRQ,请求在已经建立的隧道中建立会话。
ICRP(Incoming-Call-Reply):用来回应ICRQ,表示ICRQ成功,LNS也会在ICRP中标识L2TP会话必要的参数。
ICCN(Incoming-Call-Connected):用来回应ICRP,L2TP会话建立完成。

L2TP隧道和会话维护和拆除流程

在这里插入图片描述
维护和拆除的过程比较简单,都是一方发出请求,一方确认就好了。
StopCCN(Stop-Control-Connection-Notification):由LAC或者LNS发出,通知对端隧道将要停止,控制连接将要关闭。另外,所有活动的会话都会被清除。
HELLO:隧道保活控制消息。L2TP使用Hello报文来检测隧道的连通性。LAC和LNS定时向对端发送Hello报文,如果在一段时间内未收到Hello报文的应答,隧道将被清除。
CDN(Call-Disconnect-Notify):由LAC或者LNS发出,通知对端会话将要停止。

L2TP协议栈结构及数据包的封装过程

在这里插入图片描述

L2TP隧道和会话的验证过程

在这里插入图片描述
LCP:负责链路的建立,维护以及拆除
CHAP:对客户端进行身份认证
IPCP:负责协商IP地址以及DNS等信息

L2TP和PPTP的区别

PPTP只能在两端间建立单一隧道,L2TP支持在两端点间使用多隧道,这样可以针对不同的用户创建不同的服务质量
L2TP可以提供隧道验证机制,而PPTP不能提供这样的机制,但当L2TP或PPTP与IPSec共同使用时,可以由IPSec提供隧道验证,不需要在第二层协议上提供隧道验证机制
PPTP要求互联网络为IP网络,而L2TP只要求隧道媒介提供面向数据包的点对点连接,L2TP可以在IP(使用UDP),FR,ATM,x.25网络上使用
L2TP可以提供包头压缩。当压缩包头时,系统开销(voerhead)占用4个字节,而PPTP协议下要占用6个字节

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

虚拟专用网之L2TP协议介绍 的相关文章

随机推荐

  • 查看Linux磁盘空间

    在 Linux 系统中 可以使用以下命令来查看磁盘空间的使用情况 1 df 命令 df h 该命令会列出当前系统所有挂载的文件系统以及它们的使用情况 包括总容量 已用空间 可用空间 使用百分比等信息 2 du 命令 du sh path t
  • 【金三银四】Spring Cloud面试题(2021最新版)

    目录 前言 一 什么是微服务架构 1 什么是微服务架构 2 为什么需要学习Spring Cloud 3 Spring Cloud 是什么 4 SpringCloud的优缺点 5 SpringBoot和SpringCloud的区别 6 Spr
  • WPS 配置MathType

    注 先找到 自己安装的 MathType 和 WPS 的安装目录 最简单的方式就找到快捷方式查看 目标 以我为例我的安装软件是32位 1 进入 MathType 目录 在 MathPage 和 Office Support目录下找到对应 位
  • stm32相关知识笔记

    keil公司是为51 arm芯片提供软件开发IDE的公司 2005年被ARM收购 Keil MDK ARM是美国Keil软件公司 现已被ARM公司收购 出品的支持ARM微控制器的一款IDE 集成开发环境 MDK ARM包含了工业标准的Kei
  • Python3,使用openpyxl进行excel数据对比,反手一个赞。

    openpyxl技能 1 引言 2 代码实战 2 1 安装 2 2 代码实战 2 2 1 思路 2 2 2 代码示例 3 总结 1 引言 小屌丝 鱼哥 我最近在对搞数据对比 你有什么便捷的方法 小鱼 斗胆问一句 数据量多少 小屌丝 不多不多
  • Activiti启动流程实例,runtimeService.startProcessInstanceByKey

    启动流程实例 添加进businessKey 本质 act ru execution表中的businessKey的字段要存入业务标识 public class BusinessKeyAdd public static void main St
  • oVirt 4.4.10三节点超融合集群安装配置及集群扩容(一)

    环境 oVrit版本 4 4 10 oVirt image https mirrors aliyun com ovirt ovirt 4 4 iso ovirt node ng installer 4 4 10 2022030308 el8
  • JAVA中的反射机制以及在Spring中的应用

    文章目录 一 反射机制 二 反射机制的使用 Class类 三 为什么要使用反射 3 1 静态编译 3 2 动态编译 3 3 反射的好处 3 4 反射的缺点 四 Spring IOC中的体现 4 1 Spring IOC的实现方式 4 2 代
  • linux内核知识图谱

    根据 深入linux内核架构 linux内核设计与实现 深入理解linux内核 得出linux内核的大类知识模块 进行后续主题式学习
  • 如何在react中使用websocket

    一 如何引用websocket npm install save react websocket 二 在组件中如何使用 1 先封装一个websocket组件 import React from react import Websocket
  • 在HTML页面中引用Markdown编辑器(Editor.md)

    目录 1 下载Ediotor md 2 引入Ediotor md 3 确定Ediotor md在哪里显示 最近写博客项目 用到了Markdown编辑器 这里介绍一款国内好用的Markdown编辑器 Editor md 下面介绍一下该编辑器以
  • ElementUI的表单效验问题 (一个页面两个form(数据相似))

    两个form 注意 两个表单必须绑定不同的 key key为字符串 否则 vue看两个表单数据大致相同就会将其上面的复用 导致效验不生效 rules
  • 论述GIS当前现状以及未来的发展前景

    GIS是空间技术和信息技术的交叉学科 相关领域的研究热点都有可能成为GIS的发展趋势 GIS的技术环节无外乎数据获取 数据分析 数据呈现三个方面 从近年的发展情况看 GIS可能在这三个方面都有着激动人心的前景 一 数据获取 数据是GIS的基
  • 警告:检测到时钟错误。您的创建可能是不完整的。

    问题 make 2 Warning File CMakeFiles MultiCol SLAM dir depend make has modification time 24688 s in the future make 2 警告 检测
  • 模式识别 - 名词解释整理

    模式识别 模式识别是指把对象根据其特征归到若干类别中适当的一类 模式识别也称为模式分类 模式 模式是指因素间存在确定性或随机性规律的对象 过程或事件的集合 识别 识别就是把对象分门别类地认出来 样本 sample 所研究对象的一个个体 样本
  • Python3中参数*args和**kwargs介绍

    在Python中 我们可以使用两种特殊符号将可变数量的参数传递给函数 args和 kwargs 你可以使用任何单词代替args和kwargs 但通常做法是使用args和kwargs args允许函数接受任意数量的位置参数 positiona
  • vue学习-01vue入门

    Vue官网地址 https cn vuejs org Vue介绍 Vue 读音 vju 类似于 view 是一套用于构建用户界面的渐进式框架 与其它大型框架不同的是 Vue 被设计为可以自底向上逐层应用 Vue 的核心库只关注视图层 不仅易
  • C++模拟鼠标移动及单击实现代码

    摘要 本文分享了如何通过代码实现重复点击按钮 要实现该功能有个关键点需要注意 许多软件的按钮不是一个窗口 所以无法通过枚举窗口或者查找子窗口来定位按钮 本文通过直接定位按钮位置来避免这个问题 该程序的使用方法 管理员运行程序 移动鼠标指针到
  • C++ 预处理器

    http www runoob com cplusplus cpp preprocessor html
  • 虚拟专用网之L2TP协议介绍

    目录 L2TP简介 L2TP构建图解 L2TP建立及拆除流程 L2TP隧道的建立 L2TP会话的建立 L2TP隧道和会话维护和拆除流程 L2TP协议栈结构及数据包的封装过程 L2TP隧道和会话的验证过程 L2TP和PPTP的区别 L2TP简