计算机网络-LDP标签发布与管理

news2025/5/9 18:35:35

前面学习了LDP建立邻居,建立会话,今天来学习在MPLS中的标签发布与管理。

在MPLS网络中,下游LSR决定标签和FEC的绑定关系,并将这种绑定关系发布给上游LSR。LDP通过发送标签请求标签映射消息,在LDP对等体之间通告FEC和标签的绑定关系来建立LSP。标签的发布和管理由标签发布方式标签分配控制方式标签保持方式来决定。

一、标签的上游与下游

MPLS根据数据的转发方向确定上、下游关系。标签报文从上游LSR发出,被下游LSR接收并处理。

如图所示,对于到达192.168.3.0/24的LSP而言,R3是R2的下游LSR,R1是R2的上游LSR。

标签的上游与下游

二、标签发布方式

标签发布方式(Label Advertisement Mode)有DU模式和DoD模式两种。

DU模式

  • 对于一个特定的FEC,LSR无需从上游获得标签请求消息即进行标签分配与分发。
  • LSR会主动将自己为FEC捆绑的标签通告给上游邻居,无需邻居先发起请求再通告。

DU模式

这里再复习一下前面的知识:
标签空间

标签发布方式为DU时,系统默认支持LDP为所有对等体分标签,即每个节点都可以向所有的对等体发布标签映射关系,不再区分上下游关系。因为在只给上游对等体分标签情况下,发送标签映射消息的时候,要根据路由信息对会话的上下游关系进行确认。

DoD模式

  • 对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发。
  • 一般情况下,对特定FEC的访问需求会触发标签请求消息。

DoD模式

在DoD模式下,只有上游邻居向自己请求标签映射时,LSR才会通告标签映射给该邻居。

两者区别就是在DU模式下定义了FEC和标签映射关系就会向上游通告标签信息,而DoD模式下需要经过请求和回复。

三、标签分配控制方式

标签分配控制方式有独立(Independent)模式和有序(Ordered)模式。

独立(Independent)模式:本地LSR可以自主地分配一个标签绑定到某个FEC,并通告给上游LSR,而无需等待下游的标签。

独立(Independent)模式

标签分配控制方式需要与标签发布方式结合使用:

  • 在使用DU作为标签分发方式的情况下,如图所示,R2和R3对192.168.4.0/24这条FEC,可以在上游LSR无请求,且自身没有收到下游LSR的标签绑定信息的情况下,主动向上游LSR通告标签绑定信息。
  • 采用DoD作为标签发布方式时,如图所示,R2和R3对192.168.4.0/24这条FEC,只要收到上游LSR的标签请求消息,可以在自身没有收到下游LSR的标签绑定信息的情况下,向上游LSR通告标签绑定信息。

有序(Ordered)模式:对于LSR上某个FEC的标签映射,只有当该LSR已经具有此FEC下一跳的标签映射消息、或者该LSR就是此FEC的出节点时,该LSR才可以向上游发送此FEC的标签映射。

有序(Ordered)模式

当标签控制方式为Ordered,只有当LSR收到特定FEC下一跳发送的特定FEC标签映射消息或者LSR是LSP的出口节点时,LSR才可以向上游发送标签映射消息。

  • 当标签分发方式为DU时,如图所示,对于192.168.4.0/24这条FEC,不论上游LSR是否有请求,必须收到下游LSR对此FEC的标签绑定信息才向上游LSR发布标签绑定信息,所以必须由Egress LSR,也就是R4作为LSP建立的“起点”。
  • 当标签发布方式采用DoD时,如图所示,对于192.168.4.0/24这条FEC,只有收到上游LSR请求的请求,且自身已经收到下游LSR的标签绑定信息的情况下,才向上游LSR通告标签绑定信息。因此,必须由Ingress LSR(R1)发起请求,逐跳请求到Egress LSR(R4),最终由R4开始,向上游建立LSP。

概念是比较复杂,到时候通过实验来模拟会比较好理解,目前只需要知道有几种发布方式和标签控制方式即可。

四、标签保留模式

标签保留有自由(Liberal)模式和保守(Conservative)模式。

自由(Liberal)模式

  • LSR收到的标签映射可能来自下一跳,也可能来自非下一跳。
  • 对于从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都保留。

自由(Liberal)模式

当基于IP网络部署MPLS时,LSR根据IP路由表判断接收到的标签映射是否来自下一跳。
Liberal方式的最大优点在于路由发生变化时能够快速建立新的LSP进行数据转发,因为Liberal方式保留了所有的标签。缺点是需要分发和维护不必要的标签映射。

  • DU标签分发方式下,如果采用Liberal保持方式,则R3保留所有LDP邻居 R2和R5发来的关于192.168.1.0/24这个FEC的标签,无论该R2和R5是否是IP路由表中到达192.168.1.0/24的下一跳。
  • DoD标签分发方式下,如果采用Liberal保持方式, LSR会向所有LDP邻居请求标签。但通常来说,DoD分发方式都会和Conservative保持方式搭配使用。

保守(Conservative)模式:对于从邻居LSR收到的标签映射,只有当邻居LSR是自己的下一跳时才保留。

保守(Conservative)模式

Conservative方式的优点在于只需保留和维护用于转发数据的标签,以达到节约标签的目的。

  • 当使用DU标签分发方式时,LSR可能从多个LDP邻居收到到同一网段的标签映射消息,如图中R3会分别从R2和R5收到网段192.168.1.0/24的标签映射消息。如果采用Conservative保持方式,则R3只保留下一跳R2发来的标签,丢弃非下一跳R5发来的标签。
  • 当使用DoD标签分发方式时, LSR根据路由信息只向它的下一跳请求标签。

当网络拓扑变化引起下一跳邻居改变时:

  • 使用自由标签保持方式,LSR可以直接利用原来非下一跳邻居发来的标签,迅速重建LSP,但需要更多的内存和标签空间。
  • 使用保守标签保持方式,LSR只保留来自下一跳邻居的标签,节省了内存和标签空间,但LSP的重建会比较慢。
  • 保守标签保持方式通常与DoD方式一起,用于标签空间有限的LSR。

标签保留方式简单说就是LSR对于非上游通告的标签是否保留的策略,可以节省标签空间。

五、PHP(Penultimate Hop Popping,次末跳弹出)特性

PHP(Penultimate Hop Popping,次末跳弹出),如果激活了PHP特性,那么egress节点在为本地路由分配标签的时候,会分配一个特殊标签—3,该标签被称为隐式空标签(Implicit NULL Label)。当LSR转发一个标签报文时,如果发现对应的出标签值为3,则LSR会将栈顶标签弹出,并将里面所封装的数据转发给下游LSR。

PHP特性

  • 在标签发布时,R3为作为192.168.3.0/24这条FEC的Egress LSR。分配标签时,R3为该FEC分配了标签3,并将该标签绑定信息通告给R2。
  • 在数据转发时,R2作为到达192.168.3.0的次末跳(倒数第二跳),发现出标签值为3,于是将标签头部弹出,将IP报文转发给R3,而R3则仅需执行一次查询操作(查询FIB表)即可获得相应的转发信息,转发效率得到了提升。

简单说就是在倒数第二跳就弹出标签了,减轻最后一跳LSR的压力。前面在标签空间我们也学习了0-15是一些特殊的标签,一般不用于数据转发,主要用于某些特性使用。

六、空标签

缺省情况下,Egress节点向倒数第二跳分配隐式空标签(implicit-null),即特殊标签3。

但在部署QoS的场景下,标签被弹出后,其中的优先级也会一并丢失。

隐式空标签与显式空标签

显式空标签机制,Egress节点向倒数第二跳分配特殊标签0。

R3在转发标签报文时,若出标签封装为0,则不会将标签头部弹出,标签头部中的QoS信息得以保存。R4在收到带0标签的报文的时候,直接弹出标签,不用去查找ILM表项。

缺省情况下,Egress分配的是隐式空标签,通过label advertise explicit-null使能Egress节点向倒数第二跳分配显式空标签。

隐式空标签与显式空标签2

隐式空标签在QoS中可能关联了某些流量优先级特征,缺省情况下倒数第二跳弹出标签就会导致信息丢失,通过配置显式空标签可以分配标签0,然后不弹出标签,但是在最后一跳不需要查询ILM表,直接查询FIB表即可,既保证高效转发又保留了可能的QoS信息。

在MPLS视图下,执行命令label advertise { explicit-null | implicit-null | non-null },配置向倒数第二跳分配的标签。根据参数的不同,可以配置Egress向倒数第二跳分配不同的标签。

  • 缺省情况下,使用的是implicit-null,Egress向倒数第二跳节点分配隐式空标签,值为3。
  • 如果配置的是explicit-null,Egress节点向倒数第二跳分配显式空标签,值为0。当需要支持MPLS QoS属性时,可以选用explicit-null。
  • 如果配置的是non-null,Egress向倒数第二跳正常分配标签,即分配的标签值不小于16。

华为设备目前缺省模式为下游自主方式(DU)+ 有序标签分配控制方式(Ordered)+ 自由标签保持方式(Liberal)。

总结:本次学习明确了LSR的上游与下游,初步了解标签的分配方式、控制方式与保留方式,缺省的PHP特性功能等。

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

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

相关文章

云境天合水陆安全漏电监测仪—迅速确定是否存在漏电现象

云境天合水陆安全漏电监测仪是一种专为水下及潮湿环境设计的电气安全检测设备,通过高灵敏度电磁传感器探测漏电电流产生的交变磁场,基于法拉第电磁感应定律,自动区分高灵敏度信号和低灵敏度信号,精准定位泄漏电源的具体位置。一旦…

软考 系统架构设计师系列知识点之杂项集萃(54)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(53) 第87题 某银行系统采用Factory Method方法描述其不同账户之间的关系,设计出的类图如下所示。其中与Factory Method的“Creator”角色对应的类是(&#xff…

Nginx +Nginx-http-flv-module 推流拉流

这两天为了利用云服务器实现 Nginx 进行OBS Rtmp推流,Flv拉流时发生了诸多情况,记录实现过程。 环境 OS:阿里云CentOS 7.9 64位Nginx:nginx-1.28.0Nginx-http-flv-module:nginx-http-flv-module-1.2.12 安装Nginx编…

KeyPresser 一款自动化按键工具

1. 简介 KeyPresser 是一款自动化按键工具,它可以与窗口交互,并支持后台运行, 无需保持被控窗口在前台运行。用户可以选择要操作的目标窗口,并通过勾选复选框来控制要发送哪些按键消息。可以从组合框中选择所需的按键,并在编辑框中输入时间间隔以控制按键发送之间的延迟。程…

DVWA靶场保姆级通关教程--03CSRF跨站请求伪造

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、low级别的源码分析 二、medium级别源码分析 安全性分析 增加了一层 Referer 验证: 关键点是:在真实的网络环境中&a…

架构思维:构建高并发读服务_基于流量回放实现读服务的自动化测试回归方案

文章目录 引言一、升级读服务架构,为什么需要自动化测试?二、自动化回归测试系统:整体架构概览三、日志收集1. 拦截方式2. 存储与优化策略3. 架构进化 四、数据回放技术实现关键能力 五、差异对比对比方式灵活配置 六、三种回放模式详解1. 离…

Qt实现车载多媒体项目,包含天气、音乐、视频、地图、五子棋功能模块,免费下载源文件!

本文主要介绍项目,项目的结构,项目如何配置,项目如何打包。这篇文章如果对你有帮助请点赞和收藏,谢谢!源代码仅供学习使用,如果转载文章请标明出处!(免费下载源代码)&…

【PostgreSQL】超简单的主从节点部署

1. 启动数据库 启动主节点 docker run --name postgres-master -e POSTGRES_PASSWORDmysecretpassword -p 5432:5432 -d postgres启动从节点 docker run --name postgres-slave -e POSTGRES_PASSWORDmysecretpassword -p 5432:5432 -d postgres需要配置挂载的存储卷 2. 数据…

zotero pdf中英翻译插件使用

最近发现一个pdf中英翻译的神器zotero-pdf2zh,按照官方安装教程走一遍的时候,发现一些流程不清楚的问题, 此文就是整理一些安装需要的文件以及遇到的问题: 相关文件下载地址 Zotero 是一款免费的、开源的文献管理工具&#xff0…

WSL(Windows Subsystem for Linux)入门

目录 1.简介2.安装与配置3.常用命令4.进阶使用4.1 文件系统交互4.2 网络互通4.3 配置代理4.4 运行 GUI 程序4.5 Docker 集成 1.简介 WSL 是 Windows 系统内置的 Linux 兼容层,允许直接在 Windows 中运行 Linux 命令行工具和应用程序,无需虚拟机或双系统…

Python项目73:自动化文件备份系统1.0(tkinter)

主要功能说明: 1.界面组件:源文件夹和目标文件夹选择(带浏览按钮),备份间隔时间设置(分钟),立即备份按钮,自动备份切换按钮,状态栏显示备份状态。 2.进度条显…

C++:扫雷游戏

一.扫雷游戏项目设计 1.文件结构设计 首先我们要先定义三个文件 ①test.c //文件中写游戏的测试逻辑 ②game.c //文件中写游戏中函数的实现等 ③game.h //文件中写游戏需要的数据类型和函数声明等 2.扫雷游戏的主体结构 使⽤控制台实现经典的扫雷游戏 •游戏可以通过菜单…

使用xlwings将excel表中将无规律的文本型数字批量转化成真正的数字

之前我写了一篇文章excel表中将无规律的文本型数字批量转化成真正的数字-CSDN博客 是使用excel自带的操作,相对繁琐。 今天使用xlwings操作,表格如下(有真正的数字,也有文本型数字,混在在一起)&#xff1…

文件包含 任意文件读取

文件处理漏洞--文件包含 - wizard骑士 - 博客园 1,什么是文件包含 程序开发人员一般会吧重复使用的函数写道单个文件中,需要使用某个函数时直接调用此文件,无需再次编写,文件调用的过程就是文件包含,所以将包含的文件…

缓存套餐-01.Spring Cache介绍和常用注解

一.Spring Cache 要使用直接导入坐标即可。 如何选择底层的缓存实现呢?只要导入对应的缓存坐标即可。如果要使用redis作为缓存实现,那么只需要导入redis的maven坐标。 二.常用注解 Cacheable:不光往缓存中写缓存数据,而且会从缓…

C++类与对象—下:夯实面向对象编程的阶梯

9. 赋值运算符重载 9.1 运算符重载 在 C 里,运算符重载能够让自定义类型的对象像内置类型那样使用运算符,这极大地提升了代码的可读性与可维护性。运算符重载本质上是一种特殊的函数,其函数名是 operator 加上要重载的运算符。 下面是运算…

Linux中安装mysql8,转载及注意事项

一、先前往官网下载mysql8 下载地址: https://dev.mysql.com/downloads/选择Linux 二、删除Linux中的mysql(如果有的话),上传安装包 1、先查看mysql是否存在,命令如下: rpm -qa|grep -i mysql如果使用这…

SpringBoot的汽车商城后台管理系统源码开发实现

概述 汽车商城后台管理系统专为汽车4S店和经销商设计,提供全面的汽车管理系统解决方案。 主要内容 1. 核心功能模块 系统提供以下主要功能: ​​销售管理​​:记录销售信息,跟踪交易进度​​客户管理​​:维护客户…

DeepSeek实战--手搓实现Agent

1.背景 要学习AI agent,只会用agent 框架,还不够,一旦框架出现问题,没法快速的排查出问题。 学习就应该“知其然,更应该知其所以然” ,今天我们就用编码的方式实现一个简单的agent 。我们模拟一套AI学生评…

线性代数——行列式⭐

目录 一、行列式的定义⭐ 1-1、三阶行列式练习 1-2、下面介绍下三角行列式、上三角行列式、对角行列式 ​编辑 二、行列式的性质 2-1、性质1,2,3,4,5,6 ​编辑 2-2、性质7 2- 3、拉普拉斯定理、克莱姆法则 三…