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

MPLS转发

文章目录

    • MPLS转发

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖Datacom专栏:点击!

⏰️创作时间:2025年07月20日09点26分

在这里插入图片描述

MPLS转发

MPLS转发过程中包括Push、Swap、Pop。基本的标签转发动作

  • Push:IP报文进入MPLS域。MPLS边界设备在报文二层首部和IP首部之间插入新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新标签
  • Swap:报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签替换MPLS报文的栈顶标签
  • Pop:报文离开MPLS域时,将MPLS报文的标签剥离
    • 最后一个节点,标签已经没有价值,利用次末跳弹出机制,在第倒数第二跳设备上将标签弹出,减少最后一条的负担,直接进入IP转发或者是下一层标签转发
    • 默认次末跳弹出标签是3(Php就是倒数第二跳弹出)

基本转发过程

MPLS转发过程中包括Push、Swap、Pop。基本的标签转发动作

  • Push:IP报文进入MPLS域。MPLS边界设备在报文二层首部和IP首部之间插入新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新标签
  • Swap:报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签替换MPLS报文的栈顶标签
  • Pop:报文离开MPLS域时,将MPLS报文的标签剥离
    • 最后一个节点,标签已经没有价值,利用次末跳弹出机制,在第倒数第二跳设备上将标签弹出,减少最后一条的负担,直接进入IP转发或者是下一层标签转发
    • 默认次末跳弹出标签是3(Php就是倒数第二跳弹出)

基本转发过程

在这里插入图片描述

Tunnel ID:长度为32位比特,只是本地有效,本地

NHLFE:下一跳标签转发表项,指导MPLS报文的转发(类似于FIB)

ILM:入标签到下一组标签转发表项的映射(ILM在Transit节点将标签和NHLFE绑定,通过标签索引 ILM)(相当于目的IP地址查询FIB,得到所有标签转发信息)

详细转发过程

  • 如果Tunnel-ID的值是0x0,则正常进入IP转发流程
  • 如果Tunenl-ID的是不为0x0,则进入MPLS转发流程

MPLS转发流程中,FIB、ILM和NHLFE表项都是通过Tunnel ID关联的

  • Ingress的处理,通过查询FIB和NHLFE表指导报文的转发

    1. 查看FIB表,根据目的地址找对对应的Tunnel ID

      dis fib
      
    2. 根据FIB表的Tunnel ID,找到对应的 NHLFE 表项,将FIB和NHLFE表项关联

    3. 查看NHLFE表,得出出接口、下一跳、出标签和标签操作类型

    4. IP报文中压入标签,处理TTL将封装好的MPLS报文发送给下一跳

  • Tansit的处理:查询 ILM 表和 NHLFE 指导MPLS报文转发

    1. 根据MPLS标签值查看对应的 ILM 表,得到tunnel ID

    2. 根据 ILM表的Tunnel ID,找到对应的 NHLFE 表项

    3. 查看 NHLFE 表项,得到出接口、下一跳、出标签和标签操作类型等

    4. MPLS报文处理方式根据不同标签值而不同

      • 标签值大于等于16,用新标签替换 MPLS 报文中的旧标签,同时处理 TTL ,将替换完的MPLS报文交给下一跳
      • 标签值为3,直接弹出标签,同时处理TTL,进行IP转发或者下一层标签转发
  • Egress的处理:查询 ILM 指导MPLS报文的转发和查询路由表指导IP报文转发

    • 如果Egress收到IP报文,则查看路由表,进行IP转发
    • 如果Egress收到MPLS报文,则查看 ILM 表获得标签操作类型,同时处理TTL
      • 标签中栈底标识 s=1,表明该标签是栈底标签,直接进行IP转发
      • 标签中栈底标识 s=0,表明还有一层标签,继续进行下一层标签转发

Tunnel ID:长度为32位比特,只是本地有效,本地

NHLFE:下一跳标签转发表项,指导MPLS报文的转发(类似于FIB)

ILM:入标签到下一组标签转发表项的映射(ILM在Transit节点将标签和NHLFE绑定,通过标签索引 ILM)(相当于目的IP地址查询FIB,得到所有标签转发信息)

详细转发过程

  • 如果Tunnel-ID的值是0x0,则正常进入IP转发流程
  • 如果Tunenl-ID的是不为0x0,则进入MPLS转发流程

MPLS转发流程中,FIB、ILM和NHLFE表项都是通过Tunnel ID关联的

  • Ingress的处理,通过查询FIB和NHLFE表指导报文的转发

    1. 查看FIB表,根据目的地址找对对应的Tunnel ID

      dis fib
      
    2. 根据FIB表的Tunnel ID,找到对应的 NHLFE 表项,将FIB和NHLFE表项关联

    3. 查看NHLFE表,得出出接口、下一跳、出标签和标签操作类型

    4. IP报文中压入标签,处理TTL将封装好的MPLS报文发送给下一跳

  • Tansit的处理:查询 ILM 表和 NHLFE 指导MPLS报文转发

    1. 根据MPLS标签值查看对应的 ILM 表,得到tunnel ID

    2. 根据 ILM表的Tunnel ID,找到对应的 NHLFE 表项

    3. 查看 NHLFE 表项,得到出接口、下一跳、出标签和标签操作类型等

    4. MPLS报文处理方式根据不同标签值而不同

      • 标签值大于等于16,用新标签替换 MPLS 报文中的旧标签,同时处理 TTL ,将替换完的MPLS报文交给下一跳
      • 标签值为3,直接弹出标签,同时处理TTL,进行IP转发或者下一层标签转发
  • Egress的处理:查询 ILM 指导MPLS报文的转发和查询路由表指导IP报文转发

    • 如果Egress收到IP报文,则查看路由表,进行IP转发
    • 如果Egress收到MPLS报文,则查看 ILM 表获得标签操作类型,同时处理TTL
      • 标签中栈底标识 s=1,表明该标签是栈底标签,直接进行IP转发
      • 标签中栈底标识 s=0,表明还有一层标签,继续进行下一层标签转发
http://www.dtcms.com/a/289143.html

相关文章:

  • windows C#-本地函数
  • Docker Compose 配置
  • docker compose 编排容器 mysql Springboot应用
  • 使用pytorch创建模型时,nn.BatchNorm1d(128)的作用是什么?
  • gradle关于dependency-management的使用
  • SpringBoot 整合 Langchain4j 实现会话记忆存储深度解析
  • OpenCV 入门知识:图片展示、摄像头捕获、控制鼠标及其 Trackbar(滑动条)生成!
  • 【LeetCode刷题指南】--反转链表,链表的中间结点,合并两个有序链表
  • Day25| 491.递增子序列、46.全排列
  • SQL Server(2022)安装教程及使用_sqlserver下载安装图文
  • redis-plus-plus安装与使用
  • [BUG]关于UE5.6编译时出现“Microsoft.MakeFile.Targets(44,5): Error MSB3073”问题的解决
  • 30天打牢数模基础-SVM讲解
  • Facebook 开源多季节性时间序列数据预测工具:Prophet 快速入门 Quick Start
  • UE5多人MOBA+GAS 26、为角色添加每秒回血回蓝(番外:添加到UI上)
  • Go并发聊天室:从零构建实战
  • Mysql(事务)
  • 30个常用的Linux命令汇总和实战场景示例
  • 30天打牢数模基础-粒子群算法讲解
  • 详解Mysql索引合并
  • Jetpack - ViewModel、LiveData、DataBinding(数据绑定、双向数据绑定)
  • langchain调用本地ollama语言模型和嵌入模型
  • 梯度提升之原理
  • COGNEX康耐视IS5403-01智能相机加Navitar 18R00 LR1010WM52镜头
  • React 英语打地鼠游戏——一个寓教于乐的英语学习游戏
  • [Windows] Bili视频转图文笔记 v1.7.5
  • 网鼎杯2020青龙组notes复现
  • 7. 命令模式
  • Modbus Slave 使用教程:快速搭建模拟从站进行测试与开发
  • Ribbon轮询实现原理