计算机网络-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.mzph.cn/bicheng/80284.shtml

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

相关文章

解构与重构:自动化测试框架的进阶认知之旅

目录 一、自动化测试的介绍 (一)自动化测试的起源与发展 (二)自动化测试的定义与目标 (三)自动化测试的适用场景 二、什么是自动化测试框架 (一)自动化测试框架的定义 &#x…

跑不出的循环 | LoveySelf 系列定位

最近开始陷入一轮一轮的循环状态,无奈,只能自我整理一下。23年暑假,在计算机系折腾了一年后,重新打开博客,回想在数学系摸索博客写作的日子,思绪涌上心头,我们决定拾起这份力量。当时觉得 hexo …

Redis最新入门教程

文章目录 Redis最新入门教程1.安装Redis2.连接Redis3.Redis环境变量配置4.入门Redis4.1 Redis的数据结构4.2 Redis的Key4.3 Redis-String4.4 Redis-Hash4.5 Redis-List4.6 Redis-Set4.7 Redis-Zset 5.在Java中使用Redis6.缓存雪崩、击穿、穿透6.1 缓存雪崩6.2 缓冲击穿6.3 缓冲…

一文读懂Python之requests模块(36)

一、requests模块简介 requests模块是python中原生的一款基于网络请求的模块,功能强大,简单便捷且高效 ,该模块可以模拟浏览器发送请求,主要包括指定url、发起请求、获取响应数据和持久化存储,包括 GET、POST、PUT、…

WPF之布局流程

文章目录 1. 概述2. 布局元素的边界框3. 布局系统原理3.1 布局流程时序图 4. 测量阶段(Measure Phase)4.1 测量过程4.2 MeasureOverride方法 5. 排列阶段(Arrange Phase)5.1 排列过程5.2 ArrangeOverride方法 6. 渲染阶段(Render Phase)7. 布局事件7.1 主要布局事件7.2 布局事件…

uniapp|获取当前用户定位、与系统设定位置计算相隔米数、实现打卡签到(可自定义设定位置、位置有效范围米数)

基于UniApp阐述移动应用开发中定位功能的实现全流程,涵盖实时定位获取、动态距离计算与自定义位置、有效范围设定等功能。文章提供完整的代码示例与适配方案,适用于社交签到、课堂教室打卡等场景。 目录 引言定位功能在移动应用中的价值(社交、导航、O2O等场景)UniApp跨平台…

Yii2.0 模型规则(rules)详解

一、基本语法结构 public function rules() {return [// 规则1[[attribute1, attribute2], validator, options > value, ...],// 规则2[attribute, validator, options > value, ...],// 规则3...]; }二、规则类型分类 1、核心验证器(内置验证器&#xff0…

数据结构(三)——栈和队列

一、栈和队列的定义和特点 栈:受约束的线性表,只允许栈顶元素入栈和出栈 对栈来说,表尾端称为栈顶,表头端称为栈底,不含元素的空表称为空栈 先进后出,后进先出 队列:受约束的线性表&#xff0…

SQL Server 存储过程开发三层结构规范

以下是《SQL Server 存储过程开发三层结构规范》的正式文档结构,适用于企业级数据库应用开发场景,有助于团队协作、代码审查与自动化运维: 📘 SQL Server 存储过程开发三层结构规范 一、架构设计总览 三层结构简介 层级命名约定…

接上篇,解决FramePack启动报错:“httpx.ReadError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。“的问题

#工作记录 FramePack部署(从PyCharm解释器创建和使用开始)保姆级教程-CSDN博客 上篇我们记录到FramePack从克隆到启动调试的保姆级教程,关于启动时会报以下错误的问题,已作出解决: 报错摘录: (.venv) PS F…

ping_test_parallel.sh 并行网络扫描脚本

并行网络扫描脚本分析:提高网络探测效率 引言脚本概述核心代码分析颜色定义与初始化并行处理机制并行执行与进程控制结果处理与统计 技术亮点性能分析结论附录:完整脚本 引言 在网络管理和运维过程中,快速检测网段内主机的在线状态是一项常见…

leetcode 3342. 到达最后一个房间的最少时间 II 中等

有一个地窖,地窖中有 n x m 个房间,它们呈网格状排布。 给你一个大小为 n x m 的二维数组 moveTime ,其中 moveTime[i][j] 表示在这个时刻 以后 你才可以 开始 往这个房间 移动 。你在时刻 t 0 时从房间 (0, 0) 出发,每次可以移…

关于vue-office在vue3工程中的引用报错问题

在vue3项目工程中,根据vue-office文档在vue2中的引用: //引入VueOfficeDocx组件 相关样式import VueOfficeDocx from vue-office/docx;import vue-office/docx/lib/index.css; 报错信息: [plugin:vite:import-analysis] Failed to resolve …

【macOS常用快捷键】

以下是 macOS 最常用快捷键列表,按使用频率由高到低分类整理,涵盖日常操作、效率工具及系统控制,助你快速提升使用效率: 一、基础高频操作 快捷键功能说明Command C复制选中内容Command V粘贴Command X剪切Command Z撤销上一…

mdadm 报错: buffer overflow detected

最近跑 blktest (https://github.com/osandov/blktests) 时发现 md/001 的测试失败了 单独执行,最后定位到是 mdadm 命令报错: buffer overflow detected 这个 bug 目前已经修复: https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id827e1870f3205…

查看jdk是否安装并且配置成功?(Android studio安装前的准备)

WinR输入cmd打开命令提示窗口 输入命令 java -version 回车显示如下:

STM32智能刷卡消费系统(uC/OS-III)

一、项目概述与开发背景 本系统是一款基于STM32微控制器的智能刷卡消费终端,集成RFID识别、OLED显示、Flash存储、蓝牙通信等核心模块。项目采用uC/OS-III实时操作系统实现多任务并发处理,适用于校园一卡通、企业食堂等小额支付场景。系统支持定额扣款、…

[人机交互]以用户为中心的交互设计

一.以用户为中心设计的两个特征 • 理解和指定产品的使用上下文 ,并用于指导设计 • 用户参与式开发 • 参与 评估研究 (第十 — 十四章) • 参与 设计过程 :用户作为合作设计人员 二.用户参与设计的重要性 ◦ 需求的获取主要来源…

Abaqus学习笔记

目录 Abaqus介绍 学习资源 ​编辑Abaqus/CAE abaqus下载安装 abaqus基本操作 Abaqus启动 新建模型 ​编辑 ​编辑修改界面背景 ​编辑​编辑结果信息的显示与否 ​编辑计算结果信息字体设置 ​编辑允许多绘图状态 单位量纲 视图操作 事前说明 ODB文件 本构关系…

论坛系统开发(0-1) (上 前置知识介绍)

前置知识 1. 软件的生命周期 生命周期: 对事物进行定义(描述) -> 创建 -> 使用 -> 销毁的过程 软件⽣命周期中以划分为可⾏性研究、需求分析、概要设计、详细设计、实现、组装(集成)测试、确认测试、使⽤、维护、退役10个阶段,如下图: a. 可…