HUAWEI MPLS 静态配置和动态LDP配置
MPLS(Multi-Protocol Label Switching,多协议标签交换技术)技术的出现,极大地推动了互联网的发展和应用。例如:利用MPLS技术,可以有效而灵活地部署VPN(Virtual Private Network,虚拟专用网),TE(Traffic Engineering,流量工程)和Qos(Quality of Service,服务质量)。目前,MPLS技术主要应用于运营商网络之中。
在MPLS网络中,位于网络边缘的路由称为LER(Label Edge Router),网络内部路由器称为LSR(Label Switch Router),MPLS报文经过的路径称为LSP(Label Switch Path)。一条LSP总是起于一台被称为Ingress的LER,止于另一台被称为Egress的LER,中间经过若干台被被称为Transit的LSR。LSP具有单向性,且由静态LSP和动态LSP之分。静态LSP需要人工进行固定的标签分配,动态LSP需要利用诸如LDP(Label Distribution Protocol,标签分发协议)这样的协议进行动态标签分配。
传统的IP转发中,物理层从交换机的一个端口收到一个报文,上送到数据链路层。数据链路层去掉链路层封装,根据报文的协议上送给相应的网络层。网络层首先看报文是不是发送给本机的,若是,去掉网路层封装,上送给它的上层协议。若不是,则根据报文的目的地址查找路由表,若找到路由,将报文送给相应端口的数据链路层,数据链路层封装后,发送报文。若找不到路由,将报文丢弃。传统的IP转发采用的时逐条转发,数据报文经过每一台交换机,都要执行上诉过程。由于传统IP转发时面向无连接的,所以无法提供更好的Qos保证。
MPLS 基本概念
标签(Label):是一个定长的,比较短的,只有本地意义的标识,4字节(0-3)
FEC(转发等价类):是一组或一类数据,这组数据分配的标签相同
LSP(标签交换通道):一个FEC的数据流,在不同的节点被赋予确定的标签,数据转发按照这些标签进行。数据流所走的路径就是LSP
LSR (Label Switch Router) :LSR是MPLS中的网络核心交换机,它提供标签交换和标签分发功能。
LER (Label Switch Edge Router) :在MPLS的网络边缘,进入到MPLS网络的流量由LER分为不同的FEC,并且为这些FEC请求相应的标签。它提供流量分类和标签的映射、标签的移除功能。
控制平面:负责产生和维护路由信息以及标签信息。
1.路由信息RIB(Routing Information Base):由IP路由协议生产,用于选择路由
2.标签分发协议LDP(Label Distribution protocol) :负责标签的分配、标签转发信息表的建立、标签交换路径的建立、拆除等工作。
3.标签信息表LIB(Label Information Base):由标签分发协议生成,负责管理标签信息。
转发平面:即数据平面(Data Plane),负责普通IP报文的转发以及MPLS标签报文的转发
1.转达信息表FIB(Forwarding Information Base) :从RIB提取必要的路由信息生成,负责普通IP报文的转发。
2.标签转发信息表LFIB(Label Forwarding Information Base) :简称标签转发表,由表换转发协议建立LFIB,负责带MPLS标签报文的转发。
MPLS 路由器上,报文的转发过程:
1. 当收到普通IP报文时,查找FIB,如果Tunnel ID为0X0,则进行普通IP报文转发;如果查找FIB表,Tunnel ID 为非0X0 ,则进行MPLS转发。
2.当收到带标签的报文时,查找LFIB表,如果对应的出标签是普通标签,则惊醒MPLS转发;查找LFIB,如果对应的出标签是特殊标签,如标签3 ,则将报文的标签去掉,进行IP转发。
实验:
基础配置:
配置ospf协议和接口ip 略
R1 :
:配置MPLS协议:
首先配置LSR ID
[R1]mpls lsr-id 1.1.1.1
全局启用MPLS
[R1]mpls
Info: Mpls starting, please wait... OK!
在全局启用MPLS之后,还需要再转发MPLS报文的接口上使用MPLS命令使能接口的MPLS功能
[R1-mpls]int g0/0/0
[R1-GigabitEthernet0/0/0]mpls
[R1-GigabitEthernet0/0/0]qu
配置完成后,再R1上查看LSP的信息
[R1]dis mpls lsp
配置静态LSP
在R1上配置从R1到R3的静态LSP的Ingress,并进行标签的分配
[R1]static-lsp ingress 1t3 destination 10.0.3.3 32 nexthop 10.0.12.2 out-label 102
在R2上配置从R1到R3的静态LSP的Transit,并进行标签的分配
[R2]mpls lsr-id 2.2.2.2
[R2]mpls
Info: Mpls starting, please wait... OK!
[R2-mpls]int g0/0/0
[R2-GigabitEthernet0/0/0]mpls
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]mpls
[R2-GigabitEthernet0/0/1]qu
[R2]static-lsp transit 1t3 incoming-interface g0/0/0 in-label 200 nexthop 10.0.23.3 out-label 300
在R3上配置从R1到R3的静态LSP的Egress,并进行标签的分配
[R3]mpls lsr-id 3.3.3.3
[R3]mpls
Info: Mpls starting, please wait... OK!
[R3-mpls]int g0/0/1
[R3-GigabitEthernet0/0/1]mpls
[R3-GigabitEthernet0/0/1]qu
[R3]static-lsp egress 1t3 incoming-interface g0/0/0 in-label 200
配置完成后,在R1上查看LSP信息
可以看到,R1上已经拥有了去往R3(3.3.3.3/32)的静态LSP,且在本地的In标签为NULL,说明R1是该LSP的Ingress。
在R1 上 ping -a 1.1.1.1 3.3.3.3
通过抓包获取,是通过标签转发的,是单向的
配置动态LDP协议:
[R1]undo static-lsp ingress 1t3 xuyao
[R1]mpls ldp
[R1-mpls-ldp]quit
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]mpls ldp
[R2]undo static-lsp transit 1t3
[R2]mpls ldp
[R2-mpls-ldp]quit
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]mpls ldp
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]mpls ldp
[R2-GigabitEthernet0/0/1]
[R3]undo static-lsp egress 1t3
[R3]mpls ldp
[R3-mpls-ldp]int g0/0/1
[R3-GigabitEthernet0/0/1]mpls ldp
[R3-GigabitEthernet0/0/1]
R1、R2和R3的接口启动了LDP。并且标签分发方式为DU模式
R1和R2、R2和R3之间的LDP会话状态为operrational,表示会话已经建立
R1验证去往3.3.3.3 /32 的MPLS报文所经过的路径
可以看到,报文在R3上出发时被赋予标签1024,经过R2时,标签被替换为3
分别 在R1和R3上测试连通性
测试联通正常。
相关文章:

HUAWEI MPLS 静态配置和动态LDP配置
MPLS(Multi-Protocol Label Switching,多协议标签交换技术)技术的出现,极大地推动了互联网的发展和应用。例如:利用MPLS技术,可以有效而灵活地部署VPN(Virtual Private Network,虚拟专用网),TE(Traffic Eng…...
【Rust】——所有的模式语法
💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux…...

基于Python的求职招聘管理系统【附源码】
摘 要 随着互联网技术的不断发展,人类的生活已经逐渐离不开网络了,在未来的社会中,人类的生活与工作都离不开数字化、网络化、电子化与虚拟化的数字技术。从互联网的发展历史、当前的应用现状和发展趋势来看,我们完全可以肯定&…...

Python23 使用Tensorflow实现线性回归
TensorFlow 是一个开源的软件库,用于数值计算,特别适用于大规模的机器学习。它由 Google 的研究人员和工程师在 Google Brain 团队内部开发,并在 2015 年首次发布。TensorFlow 的核心是使用数据流图来组织计算,使得它可以轻松地利…...
C++:枚举类的使用案例及场景
一、使用案例 在C中,枚举类(也称为枚举类型或enum class)是C11及以后版本中引入的一种更加强大的枚举类型。与传统的枚举(enum)相比,枚举类提供了更好的类型安全性和作用域控制。下面是一个使用枚举类的案…...
中英双语介绍美国的州:明尼苏达州(Minnesota)
中文版 明尼苏达州简介 明尼苏达州位于美国中北部,以其万湖之州的美誉、丰富的自然资源和多样化的经济结构而著称。以下是对明尼苏达州的详细介绍,包括其地理位置、人口、经济、教育、文化和主要城市。 地理位置 明尼苏达州东接威斯康星州࿰…...

Python实现万花筒效果:创造炫目的动态图案
文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame定义绘制万花筒图案的函数主循环 完整代码 引言 万花筒效果通过反射和旋转图案创造出美丽的对称图案。在这篇博客中,我们将使用Python来实现一个动态的万花筒效果。通过利用Pygame库…...

JavaScript之深入对象,详细讲讲构造函数与常见内置构造函数
前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家详细讲讲构造函数与常见内置构造函数,并提供具体代码帮助大家深入理解,彻底掌握!原创不易,如果能帮助到带大家,欢迎…...

PyQt5水平布局--只需5分钟带你搞懂
PyQt5水平布局(QHBoxLayout)是一种在GUI应用程序中用于组织和排列控件的布局方式。它允许开发者将控件在水平方向上从左到右依次排列,非常适合于需要并排显示控件的场景,如工具栏、水平菜单等。 import sys from PyQt5.QtWidgets…...
telegram mini app和game实现登录功能
接上一篇文章,我们在创建好telegram机器人后,开始开发小游戏或者mini App,那就避免不了登录功能。 公开链接 bot设置教程:https://lengmo714.top/6e79860b.html 参考教程参考教程,telegram已经给我们提供非常多的api,我们在获取用…...

【Python】字典练习
python期考练习 目录 1. 首都名编辑 2. 摩斯电码 3. 登录 4. 学生的姓名和年龄编辑 5. 电商 6. 学生基本信息 7. 字母数 1. 首都名 初始字典 (可复制) : d{"China":"Beijing","America":"Washington","Norway":…...

Apache POI、EasyPoi、EasyExcel
目录 编辑 (一)Apache PoI 使用 (二)EasyPoi使用 (三)EasyExcel使用 写 读 最简单的读 最简单的读的excel示例 最简单的读的对象 (一)Apache PoI 使用 (二&…...
gcop:简化 Git 提交流程的高效助手 | 一键生成 commit message
💖 大家好,我是Zeeland。Tags: 大模型创业、LangChain Top Contributor、算法工程师、Promptulate founder、Python开发者。📣 个人说明书:Zeeland📣 个人网站:https://me.zeeland.cn/📚 Github…...

TS_类型
目录 1.类型注解 2.类型检查 3.类型推断 4.类型断言 ①尖括号(<>)语法 ②as语法 5.数据类型 ①boolean ②number ③string ④undefined 和 null ⑤数组和元组 ⑥枚举 ⑦any 和void ⑧symbol ⑨Function ⑩Object 和 object 6.高…...

Linux源码阅读笔记10-进程NICE案例分析2
set_user_nice set_user_nice函数功能:设置某一进程的NICE值,其NICE值的计算是根据进程的静态优先级(task_struct->static_prio),直接通过set_user_nice函数更改进程的静态优先级。 内核源码 void set_user_nice…...

Elasticsearch实战教程: 如何在海量级数据中进行快速搜索
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 Elasticsearch(简称ES)是一个基于Apache Lucene™的开源搜索引擎,无论在开源还是专有领…...

Python学习笔记24:进阶篇(十三)常见标准库使用之数据压缩功能模块zlib,gzip,bz2,lzma的学习使用
前言 本文是根据python官方教程中标准库模块的介绍,自己查询资料并整理,编写代码示例做出的学习笔记。 根据模块知识,一次讲解单个或者多个模块的内容。 教程链接:https://docs.python.org/zh-cn/3/tutorial/index.html 数据压缩…...
【笔记】Android Settings 应用设置菜单的界面代码介绍
简介 Settings应用中,提供多类设置菜单入口,每个菜单内又有各模块功能的实现。 那么各个模块基于Settings 基础的界面Fragment去实现UI,层层按不同业务进行封装继承实现子类: DashboardFragmentSettingsPreferenceFragment 功…...
Symfony配置管理深度解析:构建可维护项目的秘诀
Symfony是一个高度灵活且功能丰富的PHP框架,它提供了一套强大的配置管理系统,使得开发者能够轻松定制和优化应用程序的行为。本文将深入探讨Symfony中的配置管理机制,包括配置的结构、来源、加载过程以及最佳实践。 一、配置管理的重要性 在…...

视频的宣传片二维码怎么做?扫码播放视频的制作教程
现在很多的宣传片会通过扫码的方式来展示,通过将视频生成二维码之后,其他人就可以扫码来查看视频内容,从而简化获取视频的过程,提升视频传播的效率及用户查看视频的便捷性。目前,日常生活和工作中就有视频二维码的应用…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...

ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

数据分析六部曲?
引言 上一章我们说到了数据分析六部曲,何谓六部曲呢? 其实啊,数据分析没那么难,只要掌握了下面这六个步骤,也就是数据分析六部曲,就算你是个啥都不懂的小白,也能慢慢上手做数据分析啦。 第一…...

react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架
1、菜单文件treeTop.js // 顶部菜单 import { AppstoreOutlined, SettingOutlined } from ant-design/icons; // 定义菜单项数据 const treeTop [{label: Docker管理,key: 1,icon: <AppstoreOutlined />,url:"/docker/index"},{label: 权限管理,key: 2,icon:…...