HCIP之MPLS中的LDP协议

news2024/12/26 10:50:43

LDP协议

LDP协议 --- 标签分发协议

        MPLS控制层面需要完成的工作主要就是分配标签传递标签分配标签前提是本地路由表中得先存在标签,传递标签前提也是得先具备路由基础。所以,LDP想要正常工作,则需要IGP作为基础。

LDP协议主要需要完成的任务:

        1.分配标签

        2.传递标签

注意:

        因为LDP协议需要完成以上两个任务,所以,我们需要先保证MPLS域中运行IGP协议获取信息 --- IGP协议是LDP协议的基础

1.分配标签

        LDP激活后需要先在设备上为FEC分配标签 --- 如果该设备是这个FEC的出站LSR时,LDP才会主动为这个FEC分配标签。

         当然,在构成到达目标网段的LSP过程中,所有中间的LSR都需要给对应的FEC分配标签才行。则其他设备只有在收到标签和目标网段的映射关系后,才会被动的分配标签。分配标签之前需要完成检查动作,主要检查目标网段本地路由表是否可达,以及下一跳和通告者是否相同。检查通过则可以分配标签,不通过则不能分配标签。

        例如:R4是4.0网段的出站LSR,则R4会主动为4.0网段分配一个标签。但是R1,R2,R3均不是出站LSR,则都不会主动分配标签。但是构建LSP时也需要有4.0网段的标签。所以,当R4将自己的标签信息传递到R3时,R3收到后,将进行循环检查 --- 查看路由表中是否存在到达4.0网段的路由信息,且路由表中的下一跳是否和通告者相同,如果检查成功,则R3也会为4.0网段分配一个标签。以此类推 --- 这种标签分配方式我们称为有序模式 --- 华为设备默认选择的是有序模式

LDP的标签分配方式:
         有序方式 --- 华为设备默认选择的是有序方式分配标签
        独立方式 --- 不需要确认自己是出站LSR,也可以 自主的 给路由表中路由条目分配标签。

2.传递标签

        传递标签的前提条件是设备之间必须是LDP对等体关系才行,而对等体关系建立的前提条件是需要先建立LDP会话

LDP会话存在两种类型 :

        本地会话 --- 直连设备之间建立的LDP

        远程会话 --- 并不一定是直连设备,可以通过手工指定的方式去创建远程LDP会话。(LDP会话可以实现非直连建邻

        LDP会话在建立本地会话时,不需要指定邻居关系,也可以建立 --- 因为LDP协议会先以组播(224.0.0.2本地链路组播 --- 所有路由器都会监听本地链路组播地址)的形式发送hello包发现邻居关系。 --- hello包将使用UDP协议封装,源项目端口均为646号端口

本地LDP会话建立的过程:

        1.在激活了LDP之后,LSR的端口首先会周期的发送Hello包(默认5s为周期,保活时间默认为3倍周期,15s)来完成对等体的发现工作

hello包在发现邻居的过程中,会携带的一些参数,主要有两个参数,一个是传输地址,一个是LDP ID

        传输地址 --- 这个传输地址是后续需要进行TCP会话建立使用的地址。这个传输地址默认使用配置的LSR-ID,所以,我们配置设备LSR-ID时要求必须使用环回接口的IP地址,并且保证该地址可达,因为后面需要使用这个地址建立TCP会话

        LDP ID --- 如果主设备激活了LDP协议,则需要具有一个LDP ID --- 由48位二进制构成 --- 32:16 --- 前32位二进制使用的就是LSR-ID后16位一般写0

        2.双方交互完成hello包之后,则获取到对方的传输地址,之后将基于这个传输地址,建立TCP会话

                在建立TCP会话之前,也需要进入检查环节 --- 检查传输地址可达性

注意:

        双方都收到了对方的传输地址,则发起TCP会话的建立,这样造成资源浪费,因为一方发起则建立的是一个双向的通道,所以,LDP在发起TCP会话之前,会先比较传输地址,谁的传输地址大,谁就是主动方,则可以主动发起TCP会话请求

        3.完成TCP会话之后,将开始建立LDP会话。传输地址大的一方,优先发送初始化的报文,里面将包含需要协商建立LDP会话的参数。对端收到后,如果认可,可以将自己的初始化报文发送,并且同时发送一个Keeplive报文,进行确认

        LDP协议也会周期性发送Keeplive来保保活会话 --- 周期时间为15s,失效时间为3倍周期时间,默认45s

标签的传递方式

        上下游关系 --- 在标签交换中,我们将以数据流动的方向为准,区分上下游关系,数据发出设备处于上游,而接受设备处于下游。 --- 控制流量流动的方向是和数据层流动方向相反,即从下游传递到上游。---- 上游需要获取下游的标签,而下游不需要获取上游的标签

DU模式(下游自主模式)

        DU模式 --- 在分配完成标签之后,设备将主动的传递标签,因为设备本身无法分辨上下游关系,所以这个标签将传递给自己的上游和下游

DoD模式(下游按需模式)

         DoD模式 --- 就是下游在给上游传递标签之前,需要先获取上游发送的数据包,之后才可以传递标签信息

标签的保存方式

        保守模式 --- 只保留下游传递的标签

        自由模式 --- 所有标签均保存

华为默认 --- DU模式与保守模式

数据层面流动过程

        在数据传输过程中,入站LSR和出站LSR都将查看两张表(FIB和LFIB),这样将导致传输效率下降

        入站LSR的优化 --- 将LFIB表中的出站标签记录在FIB表

        出站LSR的优化 --- PHP --- 次末弹出机制 --- 需要用到一个特殊标签值 -- 3(隐式空标签),当一条条目中的出站标签为3时,则他将把标签弹出 --- 出站LSR在分配标签时,分配3号标签,之后传递给次末跳。之后,数据转发时,标签将在次末跳上弹出,在出站LSR上只需要查看FIB进行路由转发即可

华为设备默认开启PHP机制

LDP的配置

        1.先在所有LSR上启动IGP协议,保证路由基础

                配置ospf协议即可

        2.配置MPLS的LSR ID

[r1]mpls lsr-id 1.1.1.1

        3.激活MPLS和LDP

                全局激活

[r1]mpls 
Info: Mpls starting, please wait... OK!
[r1]mpls ldp

                接口激活

[r1-GigabitEthernet0/0/0]mpls 
[r1-GigabitEthernet0/0/0]mpls ldp
[r1]display mpls ldp peer --- 查看LDP对等体关系
[r1]display mpls ldp session --- 查看LDP会话
[r4]display mpls lsp --- 查看LFIB表
注意:
        华为设备默认只给32位的主机路由分配标签,因为MPLS 并没有 主要应用在 数据转
上,如果路由表中 路由条目太多 ,则将导致 生成过多LSP 造成资源浪费
[r4-mpls]lsp-trigger all -- 这个命令可以让设备给出来/32主机路由外的路由分配标签

MPLS解决路由黑洞问题

[r2]route recursive-lookup tunnel --- 在进行路由递归查找的时候,如果有隧道则递归进隧道
[r2]display fib verbose --- 查看FIB表的细节信息

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

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

相关文章

信号处理流程

1.降噪处理 我们在录制音频数据的同时,大量噪声都会掺杂进来,不同环境和情境下产生的噪声也不尽相同,噪声信号中的无规则波纹信息影响了声学信号所固有的声学特性,使得待分析的声音信号质量下降,并且噪声对声音识别系统…

02-数据库连接池+lombok工具

数据库连接池 概念: 数据库连接池是个容器,负责分配、管理数据库连接(Connection) 它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个 释放空闲时间超过最大空闲时间的连接,来避免因为没有释…

【硬件外设使用】——UART

【硬件外设使用】——UART UART基本概念UART通信协议UART使用方法pyb.uartmachine.uart UART 可用的传感器 UART基本概念 UART全称为Universal Asynchronous Receiver/Transmitter,是通过异步(Asynchronous)方式传输数据的一个串行通信协议。…

C6678开发概述与Sys/bios基本使用

C6678开发概述 参考开发环境标记及术语创建sys/bios自定义平台运行第一个sys/bios程序Clock模块使用Demo 参考 TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Datasheet TMS320C66x DSP CorePac User Guide 官方手册 创龙6678开发教程 开发环境 …

使用 ChatGPT 改善 Android 开发效率的 7 个案例~

翻译 修改自 https://proandroiddev.com/chatgpt-for-android-developers-1c3c1ecc6440,原作者:Rafa Araujo ChatGPT 是由 OpenAI 公司创造的自然语言处理工具,对那些想要提高技能的软件开发人员来说,它绝对是不容错过的重要利器…

日撸 Java 三百行day32

文章目录 说明day32 图的连通性检测1.思路1.1矩阵表示1.2.矩阵相乘1.3结合矩阵运算思考图的连通性。 2.代码 说明 闵老师的文章链接: 日撸 Java 三百行(总述)_minfanphd的博客-CSDN博客 自己也把手敲的代码放在了github上维护:ht…

Linux下安装navicat

1.在https://www.navicat.com.cn/download/navicat-premium下载navicat安装包 2.在终端执行命令 给navicat16-premium-cs.AppImage赋予可执行的权限 chmod x navicat16-premium-cs.AppImage 启动Navicat16 ./navicat16-premium-cs.AppImage 3.点击连接——mysql——输入连…

java单机秒杀扛1万并发方案和代码

我们先来看普通的加锁加事务秒杀性能, 说明: 1.这里的秒杀业务执行一次耗时100毫秒 2.电脑配置16g内存 4核8线程 cpu i7 7代,数据库连接池max20 RequestMapping("/purchase2")public ResultJson purchase2( Long productId){int userId new Random().nextInt(10…

2 常见模块库(2)

2.5 复用器与分路器模块 Mux是一种用于将多个信号组合成一个信号的模块。Mux模块的名称来源于多路复用器(Multiplexer)。 使用Mux可以将多个输入信号组合成一个向量或矩阵,以便在模型中传递和处理。Mux模块可以接受任意数量的输入信号&#x…

Visio Studio 2017利用Qt插件开发Qt应用的安装方法

Visio Studio 2017利用Qt插件开发Qt应用的安装方法 1 安装Visio Studio 20172 安装QT3 在Visio Studio 2017中安装Qt插件 本教程介绍如何利用Visio Studio 2017,开发Qt.5.14.2的Qt应用 1 安装Visio Studio 2017 链接:https://pan.baidu.com/s/1t9j1fFj3…

Linux --- 简介、安装

一、Linux简介 1.1、主流操作系统 不同领域的主流操作系统,主要分为以下这么几类: 桌面操作系统、服务器操作系统、移动设备操作 系统、嵌入式操作系统。接下来,这几个领域中,代表性的操作系统是那些? 1、桌面操作系统 2、服务…

2023年农牧行业数字化:7大CRM软件、5大场景盘点

目录 一、5大业务场景能力,解密农牧行业持续增长秘籍 1、营销获客 2、客户管理 3、商机管理 4、生态“互联”能力 5、业财一体化 二、农牧行业企业CRM选型指南 1、SaaS模式或私有部署 2、是否具有行业成功“经验” 3、可扩展性 4、以营销为主题的体系建设…

【MySQL】基础介绍及表操作

目录 1.MySQL是什么? 2.为什么要学习数据库呢? 内存和硬盘的区别 3.数据库基本操作 1.创建数据库 2.使用数据库 3.删除数据库(慎用) 4.查看警告信息 5.查询当前数据可服务使用的编码集 7.表操作 1.创建一个学生成绩表 2…

Spring Cloud微服务网关Zuul过滤链和整合OAuth2+JWT入门实战

一、Spring Cloud Zuul 过滤链 1.1 工作原理 Zuul的核心逻辑是由一系列的Filter来实现的,他们能够在进行HTTP请求或者相应的时候执行相关操作。Zuul Filter的主要特性有一下几点: Filter的类型:Filter的类型决定了它在Filter链中的执行顺序…

解决Ubunt20.04安装Sogou输入法失败进不去桌面 及 中文输入法安装

目录解决Ubunt20.04安装Sogou输入法失败进不去桌面中文输入法安装解决wps无法输入中文解决Ubunt20.04安装Sogou输入法失败进不去桌面 问题: Ubuntu20.04 安装了 fcitx 和 sogou 输入法;键盘输入法系统由 IBus 改成了 fcitx;重启后可以出现登…

文心一言 VS chatgpt (11)-- 算法导论2.3 7题 3.1 4~5题

四、2 ^ (n1)O(2 ^ n)成立吗? 2^(2n)O(2 ^ n)成立吗? 文心一言: chatgpt: 第一个式子不成立,第二个式子成立。 2 ^ (n1) O(2 ^ n) 该式不成立。按照大O符号的定义,如果存在正常数c和n0,使得n>n0时&#xf…

旋转矩阵与欧拉角

其他相关的内容网上很多&#xff0c;这里就简单记录一下不同欧拉角分解顺序时&#xff0c;对应的角度怎么计算 #include <opencv2/opencv.hpp> #include <iostream>using namespace cv; using namespace std; #define PI acos(-1)void getEulerAngles(Mat& ro…

Spring项目整合Minio分布式的对象存储系统

文章目录 安装Docker安装Docker-compose安装 SpringBoot集成引入依赖初始化客户端存储桶的CRUD存储桶的文件操作存储桶生命周期配置 安装 Docker安装 docker run -p 9000:9000 -p 9090:9090 \--nethost \--name minio \-d --restartalways \-e "MINIO_ACCESS_KEYadmin&q…

01-Linux-磁盘分区与目录配置

1. 主引导纪录和磁盘分区表 1.1 MBR分区表 启动引导程序记录区与分区表都放在磁盘的第一个扇区&#xff08;512B&#xff09; 由于分区表仅占 64B&#xff0c;因此最多能有四组记录区&#xff0c;每组记录区记录了该区段的起始与结束的柱面号码。 缺点如下&#xff1a; 操作…

设计模式-创建型模式之工厂方法模式(Factory Method Pattern)

3.工厂方法模式(Factory Method Pattern)3.1. 模式动机现在对该系统进行修改&#xff0c;不再设计一个按钮工厂类来统一负责所有产品的创建&#xff0c;而是将具体按钮的创建过程交给专门的工厂子类去完成&#xff0c;我们先定义一个抽象的按钮工厂类&#xff0c;再定义具体的工…