MPLS动态协议LDP配置示例

news2024/12/22 19:13:28
一、预习:

        MPLS是一种根据报文中携带的标签来转发数据的技术,两台LSR必须在它们之间转的数据 的标签使用上“达成共识”。LSR之间可以运行LDP来告知其他LSR本设备上的标签绑定信息,从而实现标签报文的正确转发。

        LSR:Label Switching Router,标签交换路由器,由LSR 构成的网络区域称为 MPLS域(MPLS Domain),在 IP 网络内进行传统的 IP 转发,在 MPLS 域内进行标签转发。
        LER:Label EdgeRouter位于 MPLS 域边缘、连接其它网络的 LSR 称为边缘路由器 ;
        Core LSR:区域内部的 LSR 称为核心 LSR。

        LDP:Label Distribution Protocol,标签分发协议是MPLS的一种控制协议,相当于传统网络中的信令协议,负责FEC的分类、标签的分配及LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息及相关处理过程。

        LDP的工作 过程主要分为两部分:
        1、LSR之间建立LDP会话
        2、LSR之间基于LDP会话动态交换标签与FEC映射信息,并根据标签信息建立 LSP

        PHP: Penultimate Hop Popping,倒数第二跳弹出

        MPLS消息类型:

Discovery Message        Hello             UDP        LDP发现机制中宣告本LSR并发现邻居
Session Message        Initialization      TCP        在LDP Session建立过程中协商参数    
                                     Keepalive          TCP        监控LDP Session的TCP连接的完整性
Advertisement Message    Address     TCP        宣告接口地址
                          Address Withdraw        TCP        撤销接口地址
                            Label Mapping            TCP        宣告FEC、Label映射信息
                            Label Request             TCP       请求FEC的标签映射
                            Label Abort Request    TCP       终止未完成的Label Request Message
                            Label Withdraw            TCP       撤销FEC/Label映射
                            Label Release              TCP       释放标签
Notication Message        Notification      TCP      通知LDP Peer错误信息

        标签的发布和管理:

        在MPLS网络中,下游LSR决定标签和FEC的绑定关系,并将这种绑定关系发布给上游LSR
        标签发布方式Label Advertisement Mode:
        DU模式Downloadstream Unsolicited:下游自主方式
            对于一个特定的FEC,LSR无需从上游获得标签请求消息即进行标签分配与分发
            LSR会主动将自己为FEC捆绑的标签通告给上游邻居,无需邻居先发起请求再通行
        DoD模式Downstream on Demand:下游按需方式
            对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发
            一般情况下,对特定FEC的访问需求会触发标签请求消息
        标签分配控制方式Label Distribution Control Mode:
            Independent独立方式:本地LSR可以自主地分配一个标签绑定到某个FEC,并通告给上游LSR,而无需等待下游的标签
            Ordered有序方式:对于LSR上某个FEC的标签映射 ,只有当该LSR已经已经具有此FEC下一跳的标签映射 消息、或者该LSR就是此FEC的出节点时,该LSR才向上游发送此标签的映射 
            配置命令:label distribution control-mode {independent | ordered}
        标签保持方式Label Retention Mode:
            Liberal自由模式:LSR收到的标签映射 可能 来自下一跳,也可能来自非下一跳;对于从邻居LSR收到的标签映射 ,无论邻居LSR是不是自己的下一跳都保留
            Conservative保守模式:对于从邻居LSR收到的标签映射 ,只有当邻居LSR是自己的下一跳时才保留

        标签操作:

Push:当IP报文进入MPLS域时,LER在报文二层头部和IP头部之间插入一个新标签;或者中间设备根据需要,要标签栈顶增加一个新标签(标签嵌套封装)
Swap:当报文在MPLS域内转发时,根据LFIB表,用下一跳分配的标签,替换MPLS的栈顶标签
Pop:当报文离开MPLS域时,将MPLS报文的标签剥掉

        标签值解析,Label,在0-19位:

        0-15:特殊标签
         值为0:IPV4 Explicit NULL Label 显式空标签,给QOS用的,LER需要看的空标签,表示里面还有EXP位要看
        值为1:Router Alert Label
        值为2:IPV6显式空标签
        值为3:隐式空标签,LER不需要看的空标签,次末跳,倒数第二跳,PHP(pemultimate hop popping)次末跳弹 出,置换给它一个3标签,让出站的LER直接剥离MPLS头部,即不再查LFIB(Label Forwarding Imformation Base)表,直接剥离LSP,直接进入IP转发或者下一层标签转发(减少最后一跳的负担,减少查表次数)
        4~13、15:保留
        14:OAM Router Alert Label,Operation Administration &Maintenance,通过发送OAM报文检测和通告LSP故障,使用MPLS承载,对于Transit LSR和Penultimate LSR是透明的
16-1023:静态LSP和静态CR-LSP(Constraint-Based Routed Label Switched Path)共享的标签空间
        1024及以上:动态信令协议的标签空间

二、拓朴图:

三、主要配置步骤:
  1. 配置IGP协议,使MPLS域内路由互通
  2. 配置MPLS lsr-id,开启mpls协议,为IGP路由触发建立标签,默认情况下,只为32位路由建立 标签,这里设置为所有非32位的路由都发标签
  3. 接口开启mpls、开启mpls ldp标签分发协议
四、主要配置命令:
#
mpls lsr-id 2.2.2.2
mpls
 lsp-trigger all 
#
int G0/0/0
 mpls
 mpls ldp
#
dis mpls lsp
dis mpls ldp peer
dis mpls ldp session

五、测试:

ping测试中抓包,可以看到mpls是在2层和3层之间的协议:

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

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

相关文章

跨进程通信 macOS XPC 创建实例

一:简介 XPC 是 macOS 里苹果官方比较推荐和安全的的进程间通信机制。 集成流程简单,但是比较绕。 主要需要集成 XPC Server 这个模块,这个模块最终会被 apple 的根进程 launchd 管理和以独立进程的方法唤起和关闭, 我们主app 进…

网络运行状况监控工具

网络运行状况是网络在其操作和环境约束范围内按预期运行的能力,但是,随着云和人工智能等技术的出现,网络变得越来越复杂,维护其 IT 基础设施是一项越来越繁琐的任务。为了确保网络可靠性,组织需要了解每个端点的运行状…

【c/c++】指针例图基础详解

文章目录 指针变量内存指针详解例1例2练习&答案解析 指针变量内存 int main(){// 各类型变量占字节数printf("char: %d\n",sizeof(char)); // 1printf("short: %d\n",sizeof(short)); // 2printf("int: %d\n",sizeof(int)); // 4pri…

详解C语言单链表接口函数

准备工作 创建一个头文件(SList.h),两个源文件(SList.c和test.c) SList.h:用于包含库函数的头文件,链表节点结构体声明,接口函数的声明等【另外两个源文件要包含SList.h这个头文件,才能使用其…

【项目管理】CMMI-项目总体计划模版

目录 1、总体目录结构 2、重点章节概要示例 2.1 第四章 项目管理 2.2 第六章 实施与交付计划 2.3 第七章 运维计划 1、总体目录结构 2、重点章节概要示例 2.1 第四章 项目管理 2.2 第六章 实施与交付计划 2.3 第七章运维计划

【2023年终总结】纵是一路仆仆风尘,也莫忘了仰头

文章目录 1. 写在前面2. 关于生活3. 关于工作4. 关于以后 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋…

vue3+ts+vite自定义组件上传npm流程

1. 创建项目 npm create vite 这里踩坑点: 运行vite生成的vue项目时报错“SyntaxError: Unexpected token ?? at “ 是因为node版本过低 电脑为windows11系统,我当时使用的版本node版本是14.21.3,如下图,后边安装了nvm版本…

Redisson依赖冲突记录

前言&#xff1a;项目使用的springboot项目为2.7.X 依赖冲突一&#xff1a;springboot 与 redisson版本冲突 项目中依赖了 Lock4j&#xff0c;此为苞米豆开源的分布式锁组件 <dependency><groupId>com.baomidou</groupId><artifactId>lock4j-redisso…

《面向复杂仿真元建模的序贯近邻探索实验设计方法》论文复现

# peaks函数热力图 from matplotlib import pyplot as plot import numpy as np import math from mpl_toolkits.mplot3d import Axes3D#python绘图显示中文 plot.rcParams[font.sans-serif][SimHei] plot.rcParams[axes.unicode_minus] False#创建画布 fig plot.figure(figs…

GPT系列概述

OPENAI做的东西 Openai老窝在爱荷华州&#xff0c;微软投资的数据中心 万物皆可GPT下咱们要失业了&#xff1f; 但是世界不仅仅是GPT GPT其实也只是冰山一角&#xff0c;2022年每4天就有一个大型模型问世 GPT历史时刻 GPT-1 带回到2018年的NLP 所有下游任务都需要微调&#x…

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set问题解决方案

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set问题解决方案 当我们使用sudo su切换权限时提示错误&#xff1a; sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set该错误出现原因&#xff1a;是因为/usr/bin/sudo的权限被…

计算机网络复习5

传输层——端到端 文章目录 传输层——端到端功能传输层的寻址与端口UDPTCPTCP连接管理TCP可靠传输TCP流量控制TCP拥塞控制网络拥塞的处理 功能 从通信和信息处理的角度看&#xff0c;传输层向它上面的应用层提供通信服务&#xff0c;它属于面向通信部分的最高层&#xff0c;同…

再升级|川石教育鸿蒙应用开发4.0教程发布

全新鸿蒙蓄势待发 HarmonyOS是一款面向未来的全场景分布式智慧操作系统。 对于消费者而言&#xff0c;HarmonyOS用一个统一的软件系统从根本上解决消费者面对大量智能终端体验割裂的问题&#xff0c;为消费者带来统一、便利、安全的智慧化全场景体验。 对于开发者而言&#xf…

现在AI那么发达,还有必要系统地学习Excel吗?

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;许多传统的工作和技能正在逐渐被自动化和取代。在这个背景下&#xff0c;一些人开始质疑学习Excel等传统技能的必要性。然而&#xff0c;我认为学习Excel仍然是非常有必要的&#xff0c;原因如下。 首先&…

.NET DevOps 接入指南 | 1. GitLab 安装

引言 容器、DevOps和微服务被称为驱动云原生快速发展的三架马车。而DevOps是其中非常重要的一环&#xff0c;DevOps 是由Developers&#xff08;Dev&#xff09;和Operations&#xff08;Ops&#xff09;两个单词简称组成&#xff0c;中文直译就是“开发运维一体化”。 DevOps…

python大于等于小于等于,python大于等于怎么写

大家好&#xff0c;小编为大家解答python中大于等于且小于等于的问题。很多人还不知道python大于号小于号如何运用&#xff0c;现在让我们一起来看看吧&#xff01; 大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python中大于并小于一个数代码&#xff0c;python 大…

STL——stack容器

1.stack基本概念 概念&#xff1a;stack是一种先进后出&#xff08;First In Last Out,FILO&#xff09;的数据结构&#xff0c;它只有一个出口。 栈中只有顶端的元素才可以被外界使用&#xff0c;因此栈不允许有遍历行为。 栈中进入数据称为——入栈&#xff08;push&#x…

大模型系列:OpenAI使用技巧_自定义文本向量化embeding

文章目录 0. Imports1. 输入2. 加载和处理输入数据3. 将数据分成训练和测试集4. 生成合成的负样本5. 计算嵌入和余弦相似度6. 绘制余弦相似度的分布图7. 使用提供的训练数据优化矩阵。8. 绘制训练期间找到的最佳矩阵的前后对比图&#xff0c;展示结果 本笔记本演示了一种将Open…

计算每个月的天数

大家好呀&#xff0c;今天的每日一题来喽。准备好了吗亲。上车上车&#xff01;&#xff01;&#xff01; 文章目录 目录 文章目录 题目重现 输⼊y和m两个整数&#xff0c;y表⽰年份&#xff0c;m表⽰⽉份&#xff0c;计算y年m⽉有多少天&#xff0c;并输出天数。 一、解法思路…

k8s之陈述式资源管理

1.kubectl命令 kubectl version 查看k8s的版本 kubectl api-resources 查看所有api的资源对象的名称 kubectl cluster-info 查看k8s的集群信息 kubectl get cs 查看master节点的状态 kubectl get pod 查看默认命名空间内的pod的信息 kubectl get ns 查看当前集群所有的命…