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

计算机网络-LDP工作过程详解

前面我们已经学习了LDP的基础概念,了解了LDP会话的建立、LDP的标签控制等知识,今天来整体过一遍LDP的一个工作过程,后面我们再通过实验深入学习。

一、LDP标签分发

标签分发需要基于基础的路由协议建立LDP会话,激活MPLS和LDP。以下面的拓扑进行说明:所有LSR均采用DU + Independent +Liberal方式,目的网段为R4的192.168.4.0/24。

拓扑

因为采用DU的标签发布模式,因此R4会为直连路由192.168.4.0/24分配标签,这里以1041表示,并主动通过LDP协议报文将标签映射通告给LDP对等体R2和R3。

R4通告标签

以R2为例,在其路由表中,192.168.4.0/24路由的下一跳为R4,当它从R4收到关于192.168.4.0/24的标签映射通告时,由于该通告来自下游LDP邻居,因此这将触发它自己为该路由分配标签1021,并将标签映射通告给LDP邻居(如R1)。R3同理。

Transit LSR标签发布

R1收到LDP邻居R2及R3通告过来的关于192.168.4.0/24路由的标签映射后,将这两个标签都存储起来,但是由于在自己的路由表中,到达192.168.4.0/24的下一跳是R2,因此当前它只会使用R2所通告的标签1021。

Ingress LSR标签分发

经过上面的几个步骤,从R4向上游通告标签,后R1、R2、R3都知道了去往192.168.4.0/24网段的标签转发路径。

注:当R2发生故障时,OSPF路由将会重新收敛,此时R1的路由表中192.168.4.0/24路由的下一跳将会切换至R3,此时R1将启用R3所通告的、关于192.168.4.0/24的标签。

二、LDP标签转发

这个拓扑从R1去往R4的192.168.4.0/24,使用MPLS LDP标签转发。

R1作为Ingress LSR,需要对接收的IP报文执行Push操作压入标签,并进行标签转发。

当R1收到发往192.168.4.1的IP报文时,首先在其FIB表中查询该目的IP地址,它发现所匹配的表项的Tunnel ID为非0,因此继续在NHLFE中查询该Tunnel ID,然后意识到需要将对该IP报文压入标签并进行标签转发,出接口为GE0/0/0、下一跳为R2、出站标签为1021,于是为报文插入标签头部并转发出去。

标签转发 - Ingress LSR

R2作为Transit LSR,需要对接收的IP报文执行Swap操作交换标签,并进行标签转发。当R2收到携带1021标签的标签报文时,查询ILM,根据ILM对应到NHLFE中的表项。于是,R2对该标签报文通过swap操作将标签更换为1041,并从相应的接口转发出去。

标签转发 - Transit LSR

R4作为Egress LSR,需要对接收的IP报文执行Pop操作交换标签,并进行IP转发。

标签转发 - Egress LSR

当R4收到携带1041标签的标签报文时,查询ILM,根据ILM查询到操作为Pop。于是,R4对该标签报文通过Pop操作将最外层标签剥离,此时该报文已经变成了标准IP报文,R4将对该IP报文执行标准的IP转发流程。

在这里需要考虑PHP特性会在倒数第二跳弹出标签的现象。

三、工作过程简单总结

  • LSR首先通过运行IGP协议(例如OSPF、IS-IS等)来构建路由表、FIB表;
  • LDP根据相应的模式,为路由表中的路由前缀(FEC)分配标签;
  • LDP根据相应的模式,将自己为路由前缀分配的标签,通过LDP标签映射报文通告给LDP邻居;
  • LSR将自己为路由前缀分配的标签,以及LDP邻居为该路由前缀通告的标签存储起来,并与出接口、下一跳地址等信息形成关联(标签转发表项);
  • 当LSR转发到达目的网络的标签报文时,所使用的出站标签总是下游LDP邻居所通告的标签,此处所指的下游邻居,是设备的路由表中到达该目的网络的下一跳设备。

总结:这里就大概过了一遍LDP标签的分发和转发过程,下节通过一些实验来进行模拟。

http://www.xdnf.cn/news/347185.html

相关文章:

  • 代码随想录算法训练营第60期第三十天打卡
  • C++之set和map的运用
  • MySQL 数据库
  • AI人工智能在交通物流领域的应用
  • web 自动化之 Selenium 元素定位和浏览器操作
  • 探索 C++ 在行业应用与技术融合中的核心价值
  • Baklib构建AI就绪知识管理体系
  • 湖北理元理律师事务所的企业债务重组实践:挽救实体经济的法律处方
  • B站pwn教程笔记-8
  • 验证码(笔记)
  • IndoorLink 新一代旗舰电子讲解器,四大革新技术开启破冰之旅
  • Spring AI 入门(持续更新)
  • RDD实现单词计数
  • mybatis-plus-join-boot-starter依赖解决 Join 联表查询
  • Linux复习笔记(二) 网络服务配置(samba /DNS)
  • DeepSeek+Kimi实战:PPT制作教程
  • 多智能体学习CAMEL-调用api
  • 阀门产业发展方向报告(石油化工阀门应用技术交流大会)
  • Linux 常用命令 - tftp【简单文件传输协议】
  • 超大规模SoC后仿真流程与优化
  • python 接收c++的.so传的jsoncpp字符串
  • springBoot2集成mybatis (手敲学习版)java入门友好
  • 网络原理初识
  • 海外版“咸鱼”——Vinted跨境店铺防封攻略
  • DeepSeek 赋能法律行业:从文书撰写到风险预警的智能实践
  • window 显示驱动开发-处理内存段(一)
  • mysql的访问IP被禁 locked because of many connection errors
  • vue-grid-layout实现拖拽修改工作台布局
  • lumpy:基因组结构变异SV的检测
  • C++代码随想录刷题知识分享-----数组交集—LeetCode 349