MPLS 原理概述

MPLS 概念

MPLS 是一种在 IP 骨干网上利用标签来指导数据报文高速转发的协议,由 IETF (Internet Engineering Task Force,因特网工程服务组)提出。相对于传统的 IP 路由方式,MPLS 提供了一种新的网络交换方式,它将 IP 地址映射为简短且长度固定、只具有本地意义的标签,以标签交换替代 IP 查表,从而显著提升转发效率。同时,MPLS 的标签机制可以在 IP 网络中构筑一条逻辑上的隧道,而且 MPLS 兼容不同的网络层和链路层协议,因此,MPLS 可以很好的为各种 L2VPN、L3VPN 以及 EVPN 业务提供公网隧道服务。

MPLS 需求场景

在 20 世纪 90 年代中期,随着 IP 网络的快速发展,Internet 数据量急剧增长。由于当时的硬件技术存在限制,基于最长匹配算法的 IP 技术必须使用软件方法查找路由,转发性能低下,所以 IP 的转发性能成为当时限制网络发展的瓶颈。在这种背景下,IETF 提出了 MPLS 协议。MPLS 最初的目的就是为了提升 IP 网络中路由设备的转发速率。

在这里插入图片描述

IP 路由与 MPLS 转发方式对比

与传统的 IP 路由方式相比,MPLS 通过以下两种方式提升转发速率:

  • 将查找庞大的 IP 路由表转化为简洁的标签交换,显著减少指导报文转发的时间。
  • 当报文进入 MPLS 区域之后,只需在位于边缘的入、出节点解析 IP 报文头,封装或解封装标签,而在中间的所有节点上都无需解析 IP 报文头,只进行标签交换,进一步节约了转发报文的处理时间。
    后来,随着 ASIC(Application Specific Integrated Circuit,专用集成电路)技术的迅速发展,IP 路由表查找逐步改用硬件方法,处理速度大大提高,这使得 MPLS 在提高 IP 网络转发速率方面不再具备明显的优势。
    但是,MPLS 的标签转发本质上是一种隧道技术,它还支持封装多层标签,并且 MPLS 天然兼容多种网络层和链路层协议,因此,MPLS 非常适合在各种 VPN 业务中充当公网隧道。此外,由于 MPLS 的报文转发依靠一条固定的标签交换路径,所以 MPLS 是一种面向连接的转发技术,这使得 MPLS 在流量工程(Traffic Engineering,TE)、QoS 等领域也有着广泛的应用。

MPLS 特征

MPLS 基本概念

FEC

MPLS 是一种分类转发技术,它将具有相同转发处理方式的数据分组归为一类,称为 FEC(Forwarding Equivalence Class,转发等价类)。MPLS 对相同 FEC 的数据分组采取完全相同的处理方式。
FEC 的划分方式非常灵活,可以是源地址、目的地址、源端口、目的端口、协议种类、业务类型等要素的任意组合。例如,在采用最长匹配算法的 IP 路由转发中,去往同一个目的地址的所有报文就是一个 FEC。

MPLS 标签

MPLS 标签是一个简短且长度固定的标识符,它只具有本地意义,用于唯一标识一个分组所属的 FEC。在某些情况下(例如,进行负载分担)对应一个 FEC 可能会有多个 MPLS 标签,但是在一台设备上,一个 MPLS 标签只能代表一个 FEC。
MPLS 标签长度为 4 个字节,封装结构如下图所示。

在这里插入图片描述
MPLS 标签封装结构

MPLS 标签共有 4 个域:

  • Label:20bit,标签值域。
  • Exp:3bit,用于扩展。现在通常用做 CoS(Class of Service,服务分类)。
  • BoS:1bit,栈底标识。MPLS 支持多层标签,即标签嵌套。BoS 值为 1 时表明为最底层标签。
  • TTL:8bit,和 IP 分组中的 TTL(Time To Live)意义相同。
    MPLS 标签封装在链路层和网络层之间,它在报文分组中的封装位置如下图所示。MPLS 标签能够被任意的链路层协议所支持。

在这里插入图片描述
MPLS 标签的封装位置

MPLS 标签栈(Label stack)也称为 MPLS 多层标签,是指 MPLS 标签的排序集合,如下图所示。靠近二层首部的标签称为栈顶标签或外层标签;靠近 IP 首部的标签称为栈底标签,或内层标签。MPLS 标签栈按后进先出(Last In First Out)方式组织标签,从栈顶开始处理标签。

在这里插入图片描述
MPLS 标签栈

标签操作

MPLS 标签的基本操作包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作,是标签转发信息表的组成部分。

在这里插入图片描述
标签基本操作

MPLS 标签的基本操作详解如下:

  • Push:指当 IP 报文进入 MPLS 域时,MPLS 边界设备在报文二层首部和 IP 首部之间插入一个新标签;或者 MPLS 中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。

  • Swap:当报文在 MPLS 域内转发时,根据标签转发表,用下一跳分配的标签,替换 MPLS 报文的栈顶标签。

  • Pop:当报文离开 MPLS 域时,将 MPLS 报文的标签去掉;或者 MPLS 倒数第二跳的节点处去掉栈顶标签,减少标签栈中的标签数目。
    在最后一跳的节点上,MPLS 标签实际已没有使用价值。这种情况下,可以利用 PHP(Penultimate Hop Popping,倒数第二跳弹出)特性,在倒数第二跳的节点上就将标签弹出,这样最后一跳的节点可直接进行 IP 转发或者下一层标签转发,从而减少最后一跳的处理负担。

    PHP 特性是通过分配特殊的标签值 3 来实现的。标签值 3 表示隐式空标签(implicit-null),这个值不会出现在标签栈中。当倒数第二跳节点发现自己被分配了标签值 3 时,它并不用这个值替代栈顶原来的标签,而是直接执行 Pop 操作,使最后一跳节点直接进行 IP 转发或下一层标签转发。

LSP

LSP(Label Switched Path,标签交换路径)是指属于同一 FEC 的报文(即封装了 MPLS 标签的报文)在 MPLS 域内转发所经过的路径,如下图所示。

在这里插入图片描述

LSP 示意图

LSP 是一条从入口到出口的单向通道,包含以下角色:

  • LSP 的起始节点称为入节点(Ingress),一条 LSP 只能有一个 Ingress。Ingress 的主要功能是给 IP 报文压入一个新的 MPLS 标签,将其封装成 MPLS 报文。
  • 位于 LSP 中间的节点称为中间节点(Transit),一条 LSP 可能有 0 个或多个 Transit。Transit 的主要功能是查找标签转发信息表,通过标签交换完成 MPLS 报文的转发。
  • LSP 的末尾节点称为出节点(Egress),一条 LSP 只能有一个 Egress。Egress 的主要功能是弹出标签,恢复成原来的报文进行相应的转发。

MPLS 网络结构

MPLS 网络的典型结构如下图所示。

在这里插入图片描述
MPLS 网络结构示意图

MPLS 网络主要包含以下要素:

  • 支持 MPLS 功能的网络设备称为 LSR(Label Switching Router,标签交换路由器),它是 MPLS 网络的基本组成单元。由一系列连续的 LSR 构成的网络区域称为 MPLS 域。
  • MPLS 域内部的 LSR 称为 Core LSR,如果一个 LSR 的相邻节点都运行 MPLS,则该 LSR 就是 Core LSR。
  • 位于 MPLS 域边缘、连接其它网络的 LSR 称为 LER(Label Edge Router,标签边缘路由器),如果一个 LSR 有一个或多个不运行 MPLS 的相邻节点,那么该 LSR 就是 LER。
    在 MPLS 网络中,任何两个 LER 之间都可以建立 LSP,用来转发进入 MPLS 域的报文,中间可途径若干个 Core LSR。因此,一条 LSP 的 Ingress 和 Egress 都是 LER,而 Transit 是 Core LSR。

MPLS 价值

MPLS 在当前的 IP 网络中得到了广泛的应用,其主要价值体现在以下几方面:

  • MPLS 完全兼容 IP 网络,相当于在 IP 网络的基础上进行改进,建设成本低,易于推广。
  • MPLS 的控制平面和转发平面是分开的,在控制平面依靠 IP 路由来建立 LSP,MPLS 可以借用 IP 路由的各种灵活性、可靠性机制;在转发平面通过 LSP 来传输报文,是面向连接的,MPLS 可以有效的实施流量工程和 QoS。
  • MPLS 是一种与链路层协议无关的技术,它同时支持帧中继、ATM、PPP 和 SDH 等协议,保证了多种网络的互通,兼容性非常好。
  • MPLS 网络支持层次化的拓扑结构,适合在 IP 骨干网中部署。
  • MPLS 标签栈在理论上可支持标签的无限嵌套,正好契合了 VPN 业务对公、私网标签多层封装的要求,因此 MPLS 为 VPN 业务的蓬勃发展提供了强有力的支持。

MPLS 工作过程

简单来说,MPLS 的工作就是将进入 MPLS 域的报文正确地转发到目的地。MPLS 的工作可以概括为两个过程:建立 LSP、报文通过 LSP 转发。

MPLS 建立 LSP

MPLS 是一种依靠标签交换来指导转发的技术,因此,LSP 的建立过程实际上就是沿途 LSR 为特定 FEC 确定标签的过程。
MPLS 标签由下游分配,按照从下游到上游的方向进行分发。如下图所示,下游 LSR 根据 IP 路由的目的地址进行 FEC 划分,并将标签分配给对应指定目的地址的 FEC,再将标签发送给上游 LSR,触发上游 LSR 建立标签转发信息表,最终使一系列 LSR 形成一条 LSP。

在这里插入图片描述

LSP 的建立过程示意图

LSP 按建立方式可以分为静态 LSP 和动态 LSP 两种:

  • 静态 LSP 是管理员通过手工为各个 FEC 分配标签而建立的 LSP。手工分配标签需要遵循的原则是:上游 LSR 出方向的标签的值等于下游 LSR 入方向的标签值。
  • 动态 LSP 是各 LSR 通过标签发布协议动态的生成和发布标签而建立的 LSP,下游 LSR 向上游 LSR 发送标签时需要依赖 IP 路由。MPLS 支持多种标签发布协议,例如:LDP(Label Distribution Protocol)、RSVP-TE(Resource Reservation Protocol Traffic Engineering)和 MP-BGP(Multiprotocol Border Gateway Protocol)。

报文 LSP 转发

以支持 PHP 特性的 LSP 为例,MPLS 报文在该 LSP 中的基本转发过程描述如下:

  1. Ingress 收到目的地址为 192.168.1.1/24 的 IP 报文,压入标签 Y(Push),封装为 MPLS 报文并继续转发。
  2. Transit 收到该 MPLS 报文,进行标签交换(Swap),将标签 Y 换成标签 X。
  3. 倒数第二跳的 Transit 收到该 MPLS 报文,因为 Egress 分给它的标签值为 3,所以进行 PHP 操作,弹出标签 X 并继续将 IP 报文转发给 Egress。
  4. Egress 节点收到该 IP 报文,将其转发给目的地 192.168.1.1/24。

在这里插入图片描述

报文通过 LSP 转发的示意图

MPLS VPN

MPLS VPN 是指利用 MPLS 在 IP 骨干网络上构建 VPN 的技术。VPN 的实质就是在公网上像私有专用网一样传输业务数据,这就需要在公网上建立一条隧道,让数据报文通过隧道直达目的地,从而达到私有专用网络的效果。概括地讲,MPLS VPN 就是采用 MPLS 建立的 LSP 作为公网隧道来传输私网业务数据的。
MPLS VPN 的基本模型主要由以下三种角色构成:

  • CE(Customer Edge):用户网络边缘设备,有接口直接与服务提供商 SP(Service Provider)网络相连,用户的 VPN 站点(Site)通过 CE 连接到 SP 网络。CE 可以是网络设备,也可以是一台主机。通常情况下,CE “感知” 不到 VPN 的存在,也不需要支持 MPLS。
  • PE(Provider Edge):是服务提供商网络的边缘设备,与 CE 直接相连。在 MPLS 网络中,PE 设备作为 LSR,对 MPLS 和 VPN 的所有处理都发生在 PE 上,对 PE 性能要求较高。
  • P(Provider):服务提供商网络中的骨干设备,不与 CE 直接相连。在 MPLS 网络中,P 设备作为 LSR,只需要处理 MPLS,不维护 VPN 信息。

在这里插入图片描述

MPLS VPN 的基本模型

MPLS VPN 充分利用了 MPLS 的技术优势,是目前应用最广泛的 VPN 技术。从用户角度来看,MPLS VPN 具有如下价值:

  • 一个 MPLS 标签对应一个指定业务的数据流(特定 FEC),非常有利于不同用户业务的隔离。
  • MPLS 可以提供流量工程和 QoS 能力,用户可以借助 MPLS 最大限度地优化 VPN 网络的资源配置。
  • MPLS VPN 还能提供灵活的策略控制,满足不同用户的特殊要求,快速实现增值服务。

via: huawei

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/367381.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【热部署】✈️Springboot 项目的热部署实现方式

目录 🍸前言 🍻一、热部署和手动重启 🍺二、热部署的实现 2.1 手动启动热部署 2.2 自动检测热部署 2.3 关闭热部署 💞️三、章末 🍸前言 小伙伴们大家好,书接上文,通过Springboot 中的 actu…

进程和计划任务

AUTHOR:闫小雨 TIME:2024-04-24 目录 一、进程管理 1.1、查看进程 1、ps 查看静态进程信息 2、top 查看动态进程信息 3、pgrep 查询进程信息 4、pstree 查询进程树 二、控制进程 1、前台进程 1、手工启动进程 2、调度启动进程 2、改变进程运行…

什么是Web3D交互展示?有什么优势?

在智能互联网蓬勃发展的时代,传统的图片、文字及视频等展示手段因缺乏互动性,正逐渐在吸引用户注意力和提升宣传效果上显得力不从心。而Web3D交互展示技术的横空出世,则为众多品牌与企业开启了一扇全新的展示之门,让线上产品体验从…

企业短视频-直播运营团队打造课,手把手带你从0-1 搭建运营团队-15节

如何获取精准客户? 一套抖音营销系统打造课 能定位 懂运营 建团队 持续获客 课程目录 1-01、每个老板都应该学习博商团队的打造方法1.mp4 2-02、如何从0-1快速搭建运营团队1.mp4 3-03、怎么才能招聘到运营人才?1.mp4 4-04、怎么才能快速筛选简历招到符合要求…

一篇文章入门主成分分析PCA

文章目录 基本概念事件随机变量独立同分布离散型随机变量伯努利分布(两点分布)二项分布几何分布泊松分布 连续型随机变量正态分布 期望方差标准化协方差相关系数线性组合特征值和特征向量特征值分解对称矩阵的特征值分解 齐次线性方程组单位向量基向量矩…

人工智能-NLP简单知识汇总01

人工智能-NLP简单知识汇总01 1.1自然语言处理的基本概念 自然语言处理难点: 语音歧义句子切分歧义词义歧义结构歧义代指歧义省略歧义语用歧义 总而言之:!!语言无处不歧义 1.2自然语言处理的基本范式 1.2.1基于规则的方法 通…

【YOLOv5进阶】——引入注意力机制-以SE为例

声明:笔记是做项目时根据B站博主视频学习时自己编写,请勿随意转载! 一、站在巨人的肩膀上 SE模块即Squeeze-and-Excitation 模块,这是一种常用于卷积神经网络中的注意力机制!! 借鉴代码的代码链接如下&a…

MLLM QLoRA微调实战:基于最新的袖珍Mini-InternVL模型

引言 大型语言模型(LLM)的世界正在不断发展,新的进步正在迅速出现。一个令人兴奋的领域是多模态LLM(MLLMs)的发展,这种模型既能够理解文本又能够理解图像,并与之进行交互。因此,这种…

Apache IoTDB 监控详解 | 分布式系统监控基础

IoTDB 分布式系统监控的基础“须知”! 我这个环境的系统性能一直无法提升,能否帮我找到系统的瓶颈在哪里? 系统优化后,虽然写入性能有所提升,但查询延迟却增加了,下一步我该如何排查和优化呢? 请…

DEPTHAI 2.27.0 发布!

小伙伴们大家好,我们发布了DepthAI 2.27.0版本,本次对DepthAI库有了一些小更新,以下是更新内容。 功能 设置DEPTHAI_ENABLE_FEEDBACK_CRASHDUMP时自动故障转储收集; 漏洞修补 修复深度超出ImageAlign节点时生成PointCloud的问…

文华财经macd-kdj-ZIGZAG顶底买卖点-大资金活动指标公式源码

VAR3:(CLOSE-MA(CLOSE,6))/MA(CLOSE,6)*100; VAR4:(CLOSE-MA(CLOSE,24))/MA(CLOSE,24)*100; VAR5:(CLOSE-MA(CLOSE,32))/MA(CLOSE,32)*100; VAR6:(VAR3VAR4VAR5)/3; VAR7:EMA(VAR6,5); 指标: EMA(EMA(VAR3,5),5)*3, COLORSTICK; VAR8:IF(VAR6<-20,10,0); VAR9:HHV(VA…

AI是在帮助开发者还是取代他们

目录 1.概述 1.1.AI助力开发者 1.2.AI对开发者的挑战 2.AI工具现状 2.1. GitHub Copilot 2.2. TabNine 2.3.小结 3.AI对开发者的影响 3.1.对开发者的影响 3.2.开发者需要掌握的新技能 3.3.在AI辅助的环境中保持竞争力的策略 4.AI开发的未来 5.总结 1.概述 生成式…

第十四章 Qt绘图

目录 一、Qt绘图基础 1、主要的类 2、paintEvent 事件 二、坐标体系 三、画笔 1、画笔的常用接口 2、画笔样式 3、画笔画线时的端点样式 4、画笔画线时,连接点的样式 5、实例 四、画刷 1、画刷的填充样式 2、实例 五、基本图形的绘制 1、画矩形 drawRect 2、画…

YOLO在目标检测与视频轨迹追踪中的应用

YOLO在目标检测与视频轨迹追踪中的应用 引言 在计算机视觉领域&#xff0c;目标检测与视频轨迹追踪是两个至关重要的研究方向。随着深度学习技术的飞速发展&#xff0c;尤其是卷积神经网络&#xff08;CNN&#xff09;的广泛应用&#xff0c;目标检测与视频轨迹追踪的性能得到…

GAMES104:04游戏引擎中的渲染系统1:游戏渲染基础-学习笔记

文章目录 概览&#xff1a;游戏引擎中的渲染系统四个课时概览 一&#xff0c;渲染管线流程二&#xff0c;了解GPUSIMD 和 SIMTGPU 架构CPU到GPU的数据传输GPU性能限制 三&#xff0c;可见性Renderable可渲染对象提高渲染效率Visibility Culling 可见性裁剪 四&#xff0c;纹理压…

分析逆向案例九——奥鹏教育教师登录密码加密

网址&#xff1a;aHR0cHM6Ly9wYXNzcG9ydC5vdXJ0ZWFjaGVyLmNvbS5jbi9BY2NvdW50L1BvcnRhbExvZ2luSW5kZXg 登陆接口分析 发现密码和用户名都进行了加密 跟栈进行分析&#xff0c;找加密位置 熟悉的ajax,打上断点&#xff0c;重复登录 加密函数为encrypt() 进入函数&#xff0c;发…

使用目标检测模型YOLO V10 OBB进行旋转目标的检测:训练自己的数据集(基于卫星和无人机的农业大棚数据集)

这个是在YOLO V10源码的基础上实现的。我只是在源码的基础上做了些许的改动。 YOLO V10源码&#xff1a;YOLO V10源码 YOLOv10是清华大学的研究人员在Ultralytics Python包的基础上&#xff0c;引入了一种新的实时目标检测方法&#xff0c;解决了YOLO 以前版本在后处理和模型架…

ubuntu 系统中 使用docker 制作 Windows 系统,从此告别 vmware虚拟机

我的系统是 ubuntu 24 前期准备工作&#xff1a; 安装dockerdocker pull 或者 手动制作镜像 docker build 的话 必须要 科学上网&#xff0c; 好像阿里镜像都下不下来。需要 知道 docker 和docker compose 命令的使用方式 我是给docker 挂了 http代理 如果你能pull下来镜像 …

React+TS前台项目实战(二十一)-- Search业务组件封装实现全局搜索

文章目录 前言一、Search组件封装1. 效果展示2. 功能分析3. 代码详细注释4. 使用方式 二、搜索结果展示组件封装1. 功能分析2. 代码详细注释 三、引用到文件&#xff0c;自行取用总结 前言 今天&#xff0c;我们来封装一个业务灵巧的组件&#xff0c;它集成了全局搜索和展示搜…

JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测

JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测 目录 JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现BO-Transformer-LSTM多变量回归预测&#xff0c;贝叶斯优化Transformer结合LSTM长…