当前位置: 首页 > news >正文

MPLS 多协议标签交换

前言:

  1. 多协议标签交换MPLS(Multiprotocol Label Switching)是一种IP(Internet Protocol)骨干网技术。MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三层路由技术和第二层交换技术相结合,充分发挥了IP路由的灵活性和二层交换的简捷性
  2. MPLS实际上是一种隧道技术。这种技术不仅支持多种高层协议与业务,而且在一定程度上可以保证信息传输的安全性

基本概念

传统的IP转发采用的是逐跳转发,数据报文经过每一台路由器,都要被解封装查看报文网络层信息,然后根据路由最长匹配原则查找路由表指导报文转发。各路由器重复进行解封装查找路由表和再封装的过程,所以转发慢

MPLS是基于MPLS头部实现数据快速转发,节约了时间,所以转发速度快

定义:

        MPLS(Multiprotocol Label Switching)是一种结合了第三层(网络层)路由第二层(数据链路层)交换的高效转发技术。其核心思想是通过在数据包前添加标签(Label),实现基于标签的快速转发,从而提升网络性能并支持多种高级功能(如VPN、流量工程等)

组成:

  • MPLS域(MPLS Domain):一系列连续的运行MPLS的网络设备构成了一个MPLS域

  • LSR(Label Switching Router,标签交换路由器):进行MPLS标签交换和报文转发的网络设备。位于MPLS域边缘、连接其它网络的LSR称为边沿路由器LER(Label Edge Router),区域内部的LSR称为核心LSR(Core LSR)

LSR分类:

  • 入站LSR(Ingress LSR):是向IP报文中压入MPLS头部并生成MPLS报文的的入口路由器

  • 中转LSR(Transit LSR):是将MPLS报文进行标签置换等操作,并将该报文继续在MPLS域中转发的中间路由器

  • 出站LSR(Egress LSR):是将MPLS报文中MPLS头部移除,还原为IP报文的出口路由器

FEC和LSP:

FEC:

概念: 将具有相同特征的报文归为一类,称为转发等价类FEC(Forwarding Equivalence Class),属于相同FEC的报文在转发过程中被LSR以相同方式处理

FEC可以根据源地址、目的地址、源端口、目的端口、VPN等要素进行划分。例如,在传统的采用最长匹配算法的IP转发中,到同一条路由的所有报文就是一个转发等价类

最常见的 FEC 就是目的 IP 地址前缀(由 IGP 路由决定),LSR 会为每个 FEC 分配标签

LSP:

IP报文在MPLS网络中经过的入站,中转,出站路径称为标签交换路径LSP(Label Switched Path)。LSP是一个单向路径,与数据流的方向一致

同一个FEC的报文通常采用相同的LSP穿越MPLS域 , 所以对同一个FEC,LSR用相同的标签转发

一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点

标签:

IP报文进入MPLS域之前,会被入站LSR压入MPLS头部(又叫MPLS标签),形成一个MPLS标签报文,
一个标签报文可以包含一个或多个MPLS标签

标签(Label)是一个短而定长的、只具有本地意义的标识符,用于唯一标识一个分组所属的FEC。在某些情况下,例如要进行负载分担,对应一个FEC可能会有多个入标签,但是一台设备上,一个标签只能代表一个FEC

标签的4个字段:

  • Label:20bit,标签值域

  • Exp:3bit,用于扩展

  • S:1bit,栈底标识。S值为1时表明为最底层标签头部,为0就代表下面还有标签头部

  • TTL:8bit,用于当网络出现环路时 , 防止标签报被无限制转发 

标签栈:

标签栈(Label Stack)是指标签的排序集合(同时存在多个标签头部)

当标签栈存在多个标签时:

  • 最靠近二层头部的标签是栈顶标签,标签中的s字段为0

  • 最靠近IP头部的标签是栈底标签,标签中的s字段为1

 MPLS标签的处理:

标签操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作

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

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

  • Pop:当报文离开MPLS域时,将MPLS报文的标签剥掉

问题:当MPLS报文到达最后一跳(Egress LER)时,标签已完成使命(下一步需转发原始IP包)。若Egress LER仍需执行撕标签+查IP路由表两步操作,效率较低

解决方案:让倒数第二跳(Penultimate Hop)提前撕掉标签,使Egress LER直接收到原始IP包,省去撕标签动作,最后一跳节点直接进行IP转发或者下一层标签转发,转发速度更快

注释:华为设备默认开启PHP,支持PHP的Egress节点分配给倒数第二跳节点的标签值为3。标签3,代表 "直接撕掉我的标签,不用替换新标签"

MPLS的转发:

MPLS转发的本质就是将数据归到对应的FEC并按照提前建立好的LSP进行转发

  • 对于整个MPLS域,LSP是某一特定的FEC进入域和离开域的路径,可以看成是LSR的有序集合
  • 对于单台LSR,需要建立标签转发表,用标签来标识FEC,并绑定相应的标签处理和转发等行为

http://www.dtcms.com/a/267412.html

相关文章:

  • Python实例题:基于 Python 的简单聊天机器人
  • springsecurity5配置之后启动项目报错:authenticationManager cannot be null
  • LangChain4j 框架模仿豆包实现智能对话系统:架构与功能详解
  • windows 安装 wsl
  • 基于matlab卡尔曼滤波器消除噪声
  • 点击方块挑战小游戏流量主微信小程序开源
  • Java+Vue开发的进销存ERP系统,集采购、销售、库存管理,助力企业数字化运营
  • 浏览器与服务器的交互
  • 深度学习图像分类数据集—百种鸟类识别分类
  • STM32中实现shell控制台(shell窗口输入实现)
  • 结构型智能科技的关键可行性——信息型智能向结构型智能的转变(修改提纲)
  • rk3128 emmc显示剩余容量为0
  • kubectl exec 遇到 unable to upgrade connection Forbidden 的解决办法
  • 浅度解读-(未完成版)浅层神经网络-多个隐层神经元
  • 解决el-select数据类型相同但是显示数字的问题
  • Python-函数、参数及参数解构-返回值作用域-递归函数-匿名函数-生成器-学习笔记
  • 从数据洞察到设计创新:UI前端如何利用数字孪生提升用户体验?
  • 【算法笔记】4.LeetCode-Hot100-数组专项
  • 操作系统---I/O核心子系统与磁盘
  • Linux操作系统之文件(四):文件系统(上)
  • pyspark大规模数据加解密优化实践
  • NVMe高速传输之摆脱XDMA设计13:PCIe初始化状态机设计
  • 2025 Centos 安装PostgreSQL
  • Java类变量(静态变量)
  • LangChain:向量存储和检索器(入门篇三)
  • 【Qt】qml组件对象怎么传递给c++
  • appnium-巨量测试
  • LVGL移植(外部SRAM)
  • ESP32-S3开发板播放wav音频
  • 应急响应靶机-linux1-知攻善防实验室