MPLS原理与配置

1.MPLS概述
(1)传统IP路由转发

(2)MPLS基本概念

⦁    MPLS起源于IPv4(Internet Protocol version 4),其核心技术可扩展到多种网络协议,包括IPv6(Internet Protocol version 6)、IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。MPLS中的“Multiprotocol”指的就是支持多种网络协议。
⦁    MPLS以标签交换替代IP转发。标签是一个短而定长的、只具有本地意义的标识符。

2.MPLS术语
(1)MPLS术语介绍-LSR与MPLS域

(2)MPLS术语介绍-LSR分类

(3)MPLS术语介绍-FEC

⦁    在传统的采用最长匹配算法的IP转发中,匹配到同一条路由的所有报文就是一个转发等价类。
⦁    在MPLS中,关于FEC最常见的例子是:目的IP地址匹配同一条IP路由的报文被认为属于同一个FEC。

(4)MPLS术语介绍-LSP

⦁    一条LSP包含一台入站LSR、一台出站LSR以及数量可变的中转LSR,因此LSP也可以看做是这些LSR的有序集合。
⦁    LSP需要在数据转发开始前建立完成,只有这样报文才能顺利穿越MPLS域。
⦁    LSP可通过静态和动态两种方式建立。
⦁    需要注意的是,LSP是一个从“起点”到“终点”的单向路径,若需要双向数据互通,则需要在双方之间建立双向的LSP。

3.MPLS标签
(1)MPLS标签

⦁    EXP字段在早期的MPLS标准中被定义,意为试验性的字段,但实际上该字段主要被用于CoS。为了避免歧义,RFC5462重新定义了该字段,命名为流分类(Traffic Class)。

(2)MPLS标签栈

当上层为MPLS标签栈时,以太网头部中的Type字段为0x8847,PPP头部中的Protocol字段为0x8281

(3)MPLS标签的处理

只具有本地意义说明每一台LSR之间的标签空间是相互独立的,即每台路由器都可以使用完整的标签空间。

(4)MPLS标签的处理

4.MPLS转发
(1)MPLS转发概述

⦁    同一个FEC,若进入MPLS域的Ingress LSR(入站LSR)不同,转发时的LSP也不相同。
⦁    同一个FEC,LSR的处理方式相同,不论这个FEC来自哪里(进入设备的接口)。
⦁    LSR的转发动作决定了LSP,而标签转发表确定转发动作,所以建立标签转发表也可以理解为建立LSP。
⦁    如图所示,因为有着相同的目的地,所以这三份数据属于同一个转发等价类FEC1。同时由于入站LSR不同,这些数据将分别在LSP1、LSP2和LSP3上被转发。因为标签仅具有本地意义,所以每台LSR上给同一FEC分配的标签,可以相同,也可以不同。

(2)MPLS体系结构

⦁    控制平面:
⦁    控制平面是无连接的,主要功能是负责产生和维护路由信息以及标签信息。
⦁    控制平面包括:
⦁    路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)、静态路由和直连路由共同生成,用于选择路由。
⦁    标签信息表LIB(Label Information Base):用于管理标签信息,LIB中的表项可由标签交换协议(LDP、RSVP等协议)或静态配置生成。
⦁    转发平面:
⦁    转发平面也称为数据平面,是面向连接的, 主要功能是负责普通IP报文的转发以及带MPLS标签报文的转发。
⦁    转发平面包括:
⦁    转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
⦁    标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,负责带MPLS标签报文的转发。

(3)控制平面与转发平面

(4)LSP建立原则

(5)LSP建立方式

⦁    静态LSP:
⦁    由于静态LSP各节点上不能相互感知到整个LSP的情况,因此静态LSP是一个本地的概念。
⦁    动态LSP:
⦁    其他标签分布协议:
⦁    RSVP-TE:Resource Reservation Protocol Traffic Engineering,它是对RSVP的扩展,用于建立基于约束的LSP。它拥有普通LDP LSP没有的功能,如发布带宽预留请求、带宽约束、链路颜色和显式路径等。
⦁    MP-BGP:Multiprotocol Border Gateway Protocol,MP-BGP是在BGP协议基础上扩展的协议。MP-BGP支持为MPLS VPN业务中私网路由和跨域VPN的标签路由分配标签。

(6)MPLS标签转发

⦁    Tunnel ID:为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也称为Tunnel ID。该Tunnel ID的长度为32比特,只是本地有效。在MPLS转发过程中,FIB、ILM和NHLFE表项是通过Tunnel ID关联的。

(7)Ingress LSR的处理

⦁    在Ingress LSR,通过查询FIB表(得到FTN信息)和NHLFE表指导报文的转发。
⦁    当IP报文进入MPLS域时,首先查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0。
⦁    如果Tunnel ID值为0x0,则进入正常的IP转发流程。
⦁    如果Tunnel ID值不为0x0,则进入MPLS转发流程。

(8)Transit LSR的处理

⦁    在Transit LSR,通过查询ILM表和NHLFE表指导MPLS报文的转发。

(9)Egress LSR的处理

⦁    在Egress LSR,通过查询ILM表指导MPLS报文的转发。

(10)MPLS详细转发过程

5.静态LSP配置
(1)MPLS基本配置命令

(2)静态LSP配置命令(1)

⦁    out-label占用的是下游LSR的标签空间,而下游空间采用的标签分发方式不确定,所以out-label的标签空间为16~1048575。
⦁    in-label占用的是当前LSR的标签空间,采用静态LSP时,标签空间为16~1023。

(3)静态LSP配置命令(2)

(4)案例

案例介绍:R1、R2和R3 R4之间已经部署了IGP协议,故1.1.1.0/24与4.4.4.0/24网络之间已经能够互访。现要求通过配置静态LSP,使得这两个网络之间能基于MPLS进行互访,标签分配如图。
配置思路:在设备和接口上使能MPLS功能按照规划配置静态LSP

配置如下:

[czyAR1]mpls lsr-id 1.1.1.1
[czyAR1]inter g0/0/0
[czyAR1-GigabitEthernet0/0/0]mpls
[czyAR1]static-lsp ingress 1to4 destination 4.4.4.0 24 nexthop 10.0.12.2 out-lab
el 200

[czyAR2]mpls lsr-id 2.2.2.2
[czyAR2]mpls
[czyAR2]inter g0/0/0
[czyAR2-GigabitEthernet0/[czyAR3]mpls lsr-id 3.3.3.3


[czyAR3]mpls
[czyAR3]inter g0/0/0
[czyAR3-GigabitEthernet0/0/0]mpls
[czyAR2]static-lsp transit 1to4 incoming-interface g0/0/0 in-label 200 nexthop 1
0.0.23.3 out-label 300


[czyAR4]mpls lsr-id 4.4.4.4
[czyAR4]mpls
[czyAR4]inter g0/0/0
[czyAR4-GigabitEthernet0/0/0]mpls
[czyAR4]static-lsp egress 1to4 incoming-interface g0/0/0 in-label 400

查看配置

此时可以发现我们的AR1的链路状态是down的

当我们去traffic的时候显示我们的lsp不存在

那么是什么原因导致的呢?

因为OSPF协议默认会把环回口looback地址认为是主机地址/32,本质是因为默认情况下OSPF中loopback的OSPF网络类型为P2P,默认只为非物理接口主机路由建立LSP,确定loopback接口地址是否为32位。

你说是24位的但是我学到的是32位的,路由器认为这是不正常的所以down了

那么该如何解决呢

1.可以将ospf network-type改为broadcast

2.looback的地址改为32位的

以AR1为例子,其他路由器类似

[czyAR1]inter LoopBack 1
[czyAR1-LoopBack1]ospf network-type broadcast

改完之后立马发现状态为up

进行tracert测试

经过测试,1.1.1.0/24网段的主机到3.3.3.0/24主机的ping测试没有问题。

仅配置了1.1.1.0/24到3.3.3.0/24的单向静态LSP,为何可以实现双向通信呢

因为1.1.1.0/24网段的主机到3.3.3.0/24主机的报文基于MPLS标签转发。

3.3.3.0/24网段的主机到1.1.1.0/24主机的报文基于IP包头转发。

双向都通过MPLS标签进行通信

[czyAR1]static-lsp egress 4to1 incoming-interface g0/0/0 in-label 700

[czyAR2]static-lsp transit 4to1 incoming-interface g0/0/1 in-label 600 nexthop 1
0.0.12.1 out-label 700

[czyAR3]static-lsp transit 4to1 incoming-interface g0/0/1 in-label 500 nexthop 1
0.0.23.3 out-label 600

[czyAR4]static-lsp ingress 4to1 destination 1.1.1.0 24 nexthop 10.0.34.4 out-lab
el 500

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LFSR线性反馈移位寄存器及Verilog实现

一、LFSR LFSR线性反馈移位寄存器,通常由移位寄存器和异或门组成,主要用于产生伪随机序列等。 线性反馈的含义是各个寄存器的输出通过一个反馈函数连接到第一级触发器的输入;LFSR中的寄存器的个数被称为LFSR的级数。 LFSR分为两类&#xff…

【机器学习】K-近邻算法(KNN)全面解析

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 K-近邻算法(KNN)全面解析概述1. 基本概念与原理1.1 KNN算…

【Vue学习记录】如何通过Vue-cli创建并启动一个项目}}}}}}

1.安装node.js 略 2.安装npm.js 略 3.安装Vue 略 4.安装Vue.cli 略 步骤1-4 参考: 最详细的vue安装教程 5.在Vue.cli里创建一个新项目 略 6.启动这个新项目 略 步骤5-6 参考: 五分钟教你使用vue-cli3创建项目(三种创建方式&#…

卢文岩博士受邀参与中国科学院大学校友论坛 解码DPU核心价值

近日,第五届中国科学院大学校友创新论坛正式举行,本次论坛聚焦科技前沿领域,旨在搭建高端对话平台,促进产学研深度融合。在大算力时代——AI技术前沿沙龙上,中科驭数高级副总裁、CTO卢文岩博士受邀分享《DPU——连接算…

【马蹄集】— 百度之星 2023

BD202301公园 可以先 b f s bfs bfs统计一下 t , f t,f t,f到达每个点的距离&#xff0c;还有 n n n到达其他点的距离即其他点到达 n n n的距离 然后枚举每个点 直接计算得到最小值即可 注意特判有人无法到达 n n n的情况 code: #include<bits/stdc.h> #define endl \n…

MaxKB,基于 LLM 大语言模型的知识库问答系统,开箱即用,支持快速嵌入到第三方业务系统。

MaxKB 是一款基于 LLM 大语言模型的知识库问答系统。MaxKB Max Knowledge Base&#xff0c;旨在成为企业的最强大脑。开箱即用&#xff0c;支持快速嵌入到第三方业务系统。 项目链接 github.com/1Panel-dev/MaxKB 项目介绍 MaxKB 是一款基于 LLM 大语言模型的知识库问答系统…

C++代码使用ClangCL编译注意事项

遇到cmake指定模板类工程使用msvc的clang编译器编译代码&#xff0c;代码变量出现与预期不符的问题&#xff1b; 如下&#xff1a; clangcl将实现放到头文件里则不会出现这样的情况&#xff1b; 最后按照pcl的模板类写法则解决这个问题&#xff1b;

WPF之TextBlock文本标签

TextBlock: 用于显示文本内容 常用属性 Text设置展示的文本fontsize设置字体大小FontWeight设置字体粗细FontFamily设置字体样式 实例 <Grid><TextBlock Text"显示文本"FontSize"10"FontWeight"Bold"Foreground"red">&l…

【博客20】缤果Matlab串口调试助手V1.0(中级篇)

超级好用的Matlab串口调试助手 开发工具: MATLAB 2024a中文版 (编程语言matlab) 目录 前言 一、软件概要&#xff1a; 二、软件界面&#xff1a; 1.App演示 ​ ​---- ◇♣♡♠ ---- 2.其他扩展App展示 ​编辑 三、获取 >> 源码以及Git记录&#xff1a; 总结 前…

[STM32+HAL]LD-1501MG舵机二次开发指南

一、准备材料 核心板&#xff1a;STM32F407ZGT6 舵机&#xff1a;LD-1501MG数字舵机 控制器&#xff1a;24路PWM舵机控制器 二、HAL库配置 开启串口与控制器通信 三、Keil填写代码 1、Servo.c #include "Servo.h" #include "usart.h"uint8_t Message…

计算机毕业设计 | springboot养老院管理系统 老人社区管理(附源码)

1&#xff0c;绪论 1.1 背景调研 养老院是集医疗、护理、康复、膳食、社工等服务服务于一体的综合行养老院&#xff0c;经过我们前期的调查&#xff0c;院方大部分工作采用手工操作方式,会带来工作效率过低&#xff0c;运营成本过大的问题。 院方可用合理的较少投入取得更好…

微前端探秘:初识微前端

微前端探秘&#xff1a;初识微前端 什么是微前端微前端的好处现有的微前端方案 什么是微前端 微前端是指存在于浏览器中的服务&#xff0c;其借鉴了微服务的架构理念&#xff0c;将微服务的概念扩展到了前端。 如果对微服务的概念比较陌生的话&#xff0c;可以简单的理解为微前…

媒体发布会怎么邀请媒体,到场采访报道?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体发布会的邀请和组织是一个需要精心策划的过程&#xff0c;以下是一些基本步骤和建议&#xff0c;以确保媒体发布会能够吸引媒体到场并进行有效的采访报道&#xff1a; 明确宣传目的和…

K-独立钻石(dfs),G-邪恶铭刻(贪心)

这两题&#xff0c;都是应该赛场上A出来的。 K.独立钻石 当时一直关注点在 I. Path Planning&#xff0c;没关注榜单&#xff0c;K,也能写&#xff0c;也就是dfs,从数据范围可以看出&#xff0c;直接暴力搜索。 代码 #include<bits/stdc.h> #define int long long #d…

5 分钟快速上手图形验证码,防止接口被恶意刷量!

5 分钟快速上手图形验证码&#xff0c;防止接口被恶意刷量&#xff01; 大家好&#xff0c;我是程序员小白条&#xff0c;今天来给大家介绍一个快速实现图形验证码的优秀框架 AJ-Captcha。 需求分析 如果注册接口没有验证码这种类型的限制&#xff0c;很容易会被刷量&#x…

java第十八课 —— 重载、可变参数

方法重载 基本介绍 java 中允许同一个类中&#xff0c;多个同名方法的存在&#xff0c;但要求形参列表不一致&#xff01; 比如&#xff1a;System.out.println(); out 是 PrintStream 类型 重载的好处 减轻了起名的麻烦减轻了记名的麻烦 注意事项和使用细节 方法名&…

26计算机操作系统408考研--操作系统处理机调度篇章(五)

文章目录 一、调度简介死锁一、调度简介 计算机系统中,处理器和内存资源会出现供不应求的情况,特别是多个I/O设备与主机交互,作业不断进入系统,或者是多个批处理作业在磁盘的后备队列中等待进入内存的情况。操作系统在管理有限的资源的同时,需要考虑如何选取进入内存的作…

Python-3.12.0文档解读-内置函数map()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 map(function, iterable, *iterables) 参数 返回值 示例 注意事项 参考…

数据结构初阶 栈

一. 栈的基本介绍 1. 基本概念 栈是一种线性表 是一种特殊的数据结构 栈顶&#xff1a;进行数据插入和删除操作的一端 另一端叫做栈底 压栈&#xff1a;插入数据叫做压栈 压栈的数据在栈顶 出栈&#xff1a; 栈的删除操作叫做出栈 出栈操作也是在栈顶 栈遵循一个原则 叫做…

NXP i.MX8系列平台开发讲解 - 3.13 Linux 之Audio子系统(二)

专栏文章目录传送门&#xff1a;返回专栏目录 目录 1. Linux ALSA 内核框架 2. Linux ALSA 代码分析 2.1 声卡驱动初始化 2.2 声卡创建注册 2.3 PCM设备创建 3. ALSA ASoC 3.1 Machine 3.2 Platform 3.3 Codec 上一章节&#xff0c;对于Linux Audio子系统有了大概的了解…