MPLS原理及配置

devtools/2025/1/16 4:51:15/

赶时间可以只看实验部分

由来:90年代中期,互联网流量的快速增长。传统IP报文依赖路由器查询路由表转发,但由于硬件技术存在限制导致转发性能低,查表转发成为了网络数据转发的瓶颈。
因此,旨在提高路由器转发速度的MPLS(Multi-Protocol Label switching,多协议标签交换)被提出。与传统IP路由方式相比,MPLS在数据转发时,只在网络边缘分析IP报文头,在网络内部采用更为高效的标签(Label)转发,节约了处理时间。
随着设备硬件性能不断提升,MPLS在提高数据转发速度上的优势逐渐弱化,但其支持多层标签嵌套和设备内转控分离的特点,使其在VPN(VirtualPrivate Network,虚拟私有网络)、QoS(Quality ofService,服务质量)等新兴应用中得到广泛应用。

一:MPLS基本概念:(俗称为2.5层)

在这里插入图片描述

术语介绍:
1.MPLS域(MPLS Domain):一系列连续的运行MPLS的网络设备构成了一个MPLS域。
2.LSR(Label Switching Router,标签交换路由器):支持MPLS的路由器(实际上也指支持MPLS的交换机或其他网络设备)。位于MPLS域边缘、连接其它网络的LSR称为边沿路由器LER(LabelEdge Router),区域内部的LSR称为核心LSR(Core LSR)。
3.除了根据LSR在MPLS域中的位置进行分类之外,还可以根据对数据处理方式的不同进行分类:
入站LSR(IngressLSR):通常是向IP报文中压入MPLS头部并生成MPLS报文的LSR。
中转LSR(Transit LSR):通常是将MPLS报文进行例如标签置换操作,并将报文继续在MPLS域中转发的LSR。
出站LSR(Egress LSR):通常是将MPLS报文中MPLS头部移除,还原为IP报文的LSR。
在这里插入图片描述
4.LSP(Label switched Path,标签交换路径):是标签报文穿越MPLS网络到达目的地所走的路径
5.FEC(Forwarding Equivalence Class,转发等价类)是一组具有某些共性的数据流的集合,这些数据流在转发过程中被网络节点以相同方式处理。
在MPLS网络中,FEC可以通过多种方式划分,例如基于目的IP地址及网络码、DSCP等特征来划分。
数据属于哪一个LSP,由数据进入MPLS域时的Ingress LSR决定。
MPLS标签通常是与FEC相对应的,必须有某种机制使得网络中的LSR获得关于某FEC的标签信息。

二:MPLS标签:

IP报文进入MPL域之前,会被入站LSR压入MPLS头部(又叫MPLS标签),形成一个MPLS标签报文。一个标签报文可以包含一个或多个MPLS标签。
在这里插入图片描述

标签(Label):用于携带标签值,长度20 bit。
EXP(ExperimentalUse):主要用于CoS(Class of Service),长度3 bit。
S(Bottom of stack):栈底位,用于指示该标签头部是否为最后一层标签,长度1bit。如果该字段为1,则表示当前标签头部为栈底;如果该字段为0,则表示当前标签头部之后依然还有其他标签头部。TTL(TimeTo Live):用于当网络出现环路时,防止标签报文被无限制转发,与IP报文头部中的TTL具有相同的意义 长度8 bit。

三:MPLS标签栈:

MPLS支持一层或多层标签头部,这些标签头部的有序集合被称为标签栈(Labelstack)
当标签栈中存在多个标签时:
最靠近二层头部的标签是栈顶标签,标签中的s字段为0。
最靠近IP头部的标签是栈底标签,标签中的S字段为1。

在这里插入图片描述
标签是一个短而定长的、只具有本地意义的标识符。标签空间就是指标签的取值范围。标签值的范围及规划 如下:
在这里插入图片描述

标签处理过程:

在这里插入图片描述
标签是由LDP分发的,LDP 协议即标签分发协议(也有建立邻居关系,默认自动建立完成的)
路径建立:通过邻居发现、会话建立等过程,使标签交换路由器 LSR 之间能够相互通信并交换标签信息,确定每个转发等价类 FEC 对应的标签交换路径 LSP,让数据包能沿着特定路径进行转发。
路径维护:在网络运行过程中,LDP 协议持续监测 LSP 的状态,当网络拓扑发生变化或链路出现故障时,能够及时调整标签映射关系和 LSP,保证数据的正常转发。

四:实验部分

静态部分

[R1]static-lsp ingress lto4 destination 4.4.4.4 32 nexthop 12.1.1.2 out-label 104
[R2]static-lsp transit lto4 incoming-interface g0/0/0 in-label 104 outgoing-interface g0/0/1 nexthop 23.1.1.3 out-label 204
[R3]static-lsp transit lto4 incoming-interface g0/0/0 in-label 204 outgoing-interface g0/0/1 nexthop 34.1.1.4  out-label 304
[R4]static-lsp egress lto4 incoming-interface G0/0/0 in-label 304

动态部分:

LDP先为下游设备添加标签
入栈设备收到IP包后,查FIB(即路由表),压入102号标签;到达中转设备,它查LFIB(标签转发表),进行标签交换(102->103),再到R3,进行LFIB表查询:弹出标签(103),再查FIB表,进行ip地址转发。

如果知道R3是末跳,R2是次末跳,这时候在R2的时候就弹出标签,发IP包给R3,到R3的时候直接查看FIB表(路由表),就不需要进行弹出标签了。
在这里插入图片描述

全局下:
[R1-LoopBack0]mpls lsr-id 1.1.1.1		//用环回口充当mpls的id编号
[R1]mpls
Info: Mpls starting, please wait... OK!
[R1-mpls]mpls ldp
接口下:
[R1-GigabitEthernet0/0/0]mpls
[R1-GigabitEthernet0/0/0]mpls ldp
其他也一样

抓取报文如下:对应上述内容
在这里插入图片描述

[R1]dis mpls ldp peer		//用于显示本地路由器 R1 的标签分发协议 LDP 对等体及会话信息。
[R1]dis cu co ospf			//用于显示 R1 上与 OSPF 协议相关的配置信息。
[R1-GigabitEthernet0/0/1]dis cu | include mpls		//在指定的 GigabitEthernet0/0/1 接口下,显示该接口包含 “mpls” 关键字的配置信息。
[R1]dis mpls lsp			//用于显示 R1 路由器上的 MPLS 标签交换路径 LSP 的相关信息,

假设以到达4.4.4.4的网络为例:
根据 PHP 机制,当数据包到达倒数第二跳 LSR 时,会将数据包的标签替换为一个特殊的标签(例如隐式空标签,值通常为 3)所以:
在R4上的R4的入标签为3,R3这里的出标签也为3(代表次末跳),入标签为1026(路由器根据本地的标签分配策略为其分配了 1026 作为入标签。)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/devtools/150554.html

相关文章

大语言模型的前沿探索:从理论到实践的深度剖析

预训练语言模型的发展 BERT的出现:2018年,Google的研究团队提出了BERT(Bidirectional Encoder Representations from Transformers),它通过大规模预训练学习语言的通用表示,然后在各种下游自然语言处理任务…

使用葡萄城+vue实现Excel

最终实现效果如下 包含增加复选框 设置公式 设置背景颜色等,代码实在太多 有需要可留言 第一步:创建表头 请使用官网提供的网址:在线 Excel 编辑器 | SpreadJS 在线表格编辑器 1.点击下方号,创建一个新的sheet页 默认新创建的she…

探索网络安全:浅析文件上传漏洞

前言 在数字化时代,网络安全已成为我们每个人都需要关注的重要议题。无论是个人隐私保护,还是企业数据安全,网络威胁无处不在。了解网络安全的基本知识和防护措施,对我们每个人来说都至关重要。 网络安全 网络安全并非只是对网…

iOS - Objective-C语言的动态性

Objective-C 的动态性主要由以下几个关键特性和机制支撑: 1. 动态消息传递 // 消息传递机制 id objc_msgSend(id self, SEL _cmd, ...) {// 1. 获取类信息Class cls object_getClass(self);// 2. 查找方法实现IMP imp lookUpImpOrForward(cls, _cmd);// 3. 执行…

AI时代来了,我们不再需要IDE了

大家好,我是编程乐趣。 最近在思考一个问题,那就是AI这么强大。 未来有没有可能,我们就不需要不需要开发工具了,只需一个浏览器就可以开发软件了。 一、AI带来的变化 1、代码生成与补全 AI工具如GitHub Copilot等能够根据代码…

ExplaineR:集成K-means聚类算法的SHAP可解释性分析 | 可视化混淆矩阵、决策曲线、模型评估与各类SHAP图

集成K-means聚类算法的SHAP可解释性分析 加载数据集并训练机器学习模型 SHAP 分析以提取特征对预测的影响 通过混淆矩阵可视化模型性能 决策曲线分析 模型评估(多指标和ROC曲线的目视检查) 带注释阈值的 ROC 曲线 加载 SHAP 结果以进行下游分析 与…

后端:Spring(IOC、AOP)

文章目录 1. Spring2. IOC 控制反转2-1. 通过配置文件定义Bean2-1-1. 通过set方法来注入Bean2-1-2. 通过构造方法来注入Bean2-1-3. 自动装配2-1-4. 集合注入2-1-5. 数据源对象管理(第三方Bean)2-1-6. 在xml配置文件中加载properties文件的数据(context命名空间)2-1-7. 加载容器…

【HTML+CSS+JS+VUE】web前端教程-31-css3新特性

圆角 div{width: 100px;height: 100px;background-color: saddlebrown;border-radius: 5px;}阴影 div{width: 200px;height: 100px;background-color: saddlebrown;margin: 0 auto;box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);}