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

 

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

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

相关文章

单片机的内存映射和重映射

内存映射 在单片机内,不管是RAM还是ROM还是寄存器,他们都是真实存在的物理存储器,为了方便操作,单片机会给每一个存储单元分配地址,这就叫做内存映射。 单片机的内存映射是指将外部设备或外部存储器映射到单片…

【软件设计师】——5.数据库系统

目录 5.1 基本概念 5.2 三级模式两级映射 5.3 设计过程和数据模型 5.4 关系代数 5.5 完整性约束 5.6 规范化和反规范化 5.7 控制功能 5.8 SQL语言 5.9 数据库安全 5.10 数据备份 5.11 数据库故障与恢复 5.12 数据仓库、数据挖掘和大数据 5.1 基本概念 相关术语 候选…

三分钟“手撕”顺序表与ArrayList

前言: 实现顺序表的代码放开头,供大家更好的查阅,每个方法都有代码的实现。 其次我会讲解Java自带的ArrayList的实例,扩容机制ArrayList使用方法,遍历以及它的优缺点。 目录 一、自己实现的顺序表 二、Java的ArrayLi…

Python | Leetcode Python题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; class Solution:def numDistinct(self, s: str, t: str) -> int:m, n len(s), len(t)if m < n:return 0dp [[0] * (n 1) for _ in range(m 1)]for i in range(m 1):dp[i][n] 1for i in range(m - 1, -1, -1):for j in range(n …

Docker快速安装SQL Server 2022

说明&#xff1a; 系统&#xff1a;Ubuntu 24.04 LTS 拉取SQL Server Docker镜像 docker pull mcr.microsoft.com/mssql/server:2022-CU12-ubuntu-22.04创建数据目录 sudo mkdir /var/mssql_data sudo chmod 777 /var/mssql_data说明&#xff1a; 权限设置为777&#xff0…

ubuntu下vscode的安装包

1.引言 ubuntu下面安装vscode&#xff0c;编码调用接口时可以跳到接口api的位置&#xff0c;因此在ubuntu下安装vscode还是非常有意义的。 2.下载地址 链接&#xff1a;https://pan.baidu.com/s/1j3XNmvbL574p_hYeBqO6dg?pwdryr7 提取码&#xff1a;ryr7 --来自百度网盘超…

如何应对触摸一体机触摸屏失灵问题?怎么校准?

触摸一体机是一种功能强大的设备&#xff0c;集成了电脑、电视和触摸屏等多种功能。其中&#xff0c;触摸屏是其重要组成部分之一。然而&#xff0c;当触摸屏突然失灵时&#xff0c;我们该如何应对呢&#xff1f;以下是一些建议&#xff0c;以帮助您排除问题并重新获得正常触摸…

2024 年你应该选择哪个开源大模型?

自2017年发表的论文《Attention Is All You Need》发明了Transformer架构以来&#xff0c;自然语言处理&#xff08;NLP&#xff09;取得了巨大的进展。随着2022年11月ChatGPT的发布&#xff0c;大型语言模型&#xff08;LLM&#xff09;引起了广泛关注。 你是否想在自己的用例…

通过Zerossl给IP申请免费SSL证书, 实现https ip访问

参考通过Zerossl给IP申请免费SSL证书 | LogDicthttps://www.logdict.com/archives/tong-guo-zerosslgei-ipshen-qing-mian-fei-sslzheng-shu

授权调用: 介绍 Transformers 智能体 2.0

简要概述 我们推出了 Transformers 智能体 2.0&#xff01; ⇒ &#x1f381; 在现有智能体类型的基础上&#xff0c;我们新增了两种能够 根据历史观察解决复杂任务的智能体。 ⇒ &#x1f4a1; 我们致力于让代码 清晰、模块化&#xff0c;并确保最终提示和工具等通用属性透明化…

关于指针和数组的一些经典笔试题解析

前言 大家好&#xff0c;本篇博客将为大家展示一些曾经考过的关于指针的经典笔试题&#xff0c;里面有些题目的难度还是不小的&#xff0c;所以希望大家可以认真理解&#xff1b;如果你点开了本篇博客&#xff0c;麻烦各位大佬一键三连&#xff0c;多多支持&#xff0c;感谢&a…

Aws CodeCommit代码仓储库

1 创建IAM用户 IAM创建admin用户&#xff0c;增加AWSCodeCommitFullAccess权限 2 创建存储库 CodePipeline -> CodeCommit -> 存储库 创建存储库 3 SSH 1) window环境 3.1.1 上载SSH公有秘钥 生成SSH秘钥ID 3.1.2 编辑本地 ~/.ssh 目录中名为“config”的 SSH 配置文…

JRT连接希森美康出图

上一篇用JRT连设备实现了比较有难度的Sebia绘图设备和TCP模式连接。这次连接最常见的检验设备&#xff08;西森美康&#xff09;&#xff0c;读文件和图上传出图。 视频演示 结果格式 通道对应 接口设置 接口处理实现&#xff0c;JRT设备连接全部采用CMD驱动方式实现&am…

The First项目报告:解读去中心化衍生品交易所AVEO

2023 年12月8日凌晨&#xff0c;Solana 生态 MEV 基础设施开发商 Jito Labs 开放了 JTO 空投申领窗口&#xff0c;JTO 的价格在开盘短暂震荡后迅速攀高&#xff0c;一度触及 4.94 美元。 JTO 是加密社区这两日关注的热门标的&#xff0c;而在这场讨论中&#xff0c;除 Solana …

springboot 集成 es--未完结

基于es7.10.x版本 一、前提知识 常见的两种方式&#xff1a;spring boot提供的API 和 ES 官方提供的API ES官方&#xff1a; RestHighLevelClient&#xff1a; 适用于复杂、更细粒度控制的Elasticsearch 操作 spring boot&#xff1a; ElasticsearchRestTemplate&#xff1a…

AI智能体研发之路-模型篇(四):一文入门pytorch开发

博客导读&#xff1a; 《AI—工程篇》 AI智能体研发之路-工程篇&#xff08;一&#xff09;&#xff1a;Docker助力AI智能体开发提效 AI智能体研发之路-工程篇&#xff08;二&#xff09;&#xff1a;Dify智能体开发平台一键部署 AI智能体研发之路-工程篇&#xff08;三&am…

C++ | Leetcode C++题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int numDistinct(string s, string t) {int m s.length(), n t.length();if (m < n) {return 0;}vector<vector<unsigned long long>> dp(m 1, vector<unsigned long long>(n 1));for (i…

[docker] docker 安全知识 - 镜像,port registry

[docker] docker 安全知识 - 镜像&#xff0c;port & registry 这是第一篇&#xff0c;安全部分还有一篇笔记就记完了 说实话&#xff0c;看完了要学的这些东西&#xff0c;感觉大多数安全问题都可以通过验证登录的合法性去解决 镜像 镜像的问题还是比较多的&#xff0…

Mybatis——入门

新建 idea 准备 数据库 create table user(id int unsigned primary key auto_increment comment ID,name varchar(100) comment 姓名,age tinyint unsigned comment 年龄,gender tinyint unsigned comment 性别, 1:男, 2:女,phone varchar(11) comment 手机号 ) comment 用…

C语言 | Leetcode C语言题解之第116题填充每个节点的下一个右侧节点指针

题目&#xff1a; 题解&#xff1a; struct Node* connect(struct Node* root) {if (root NULL) {return root;}// 从根节点开始struct Node* leftmost root;while (leftmost->left ! NULL) {// 遍历这一层节点组织成的链表&#xff0c;为下一层的节点更新 next 指针stru…