使用静态CRLSP配置MPLS TE隧道

正文共:1591 字 13 图,预估阅读时间:4 分钟
静态CRLSP(Constraint-based Routed Label Switched Paths,基于约束路由的LSP)是指在报文经过的每一跳设备上(包括Ingress、Transit和Egress)分别手工指定入标签、出标签、流量所需的带宽等信息,建立标签转发表项和资源预留,从而建立的CRLSP。
与静态LSP不同的是,静态CRLSP需要在每一跳设备上为流量预留一定的带宽资源,如果设备上的带宽资源不满足流量需求,则无法建立静态CRLSP。
建立静态CRLSP消耗的资源比较少,但静态建立的CRLSP不能根据网络拓扑变化动态调整。因此,静态CRLSP适用于拓扑结构简单并且稳定的小型网络。

组网需求

RT1-3均支持MPLS,在RT1到RT3之间使用静态CRLSP建立一条MPLS TE隧道,使11.1.1.0/24和33.1.1.0/24这两个网段中互访的报文能够通过MPLS进行传输,并且配置隧道最大带宽为20000kbps,隧道沿途链路的最大带宽为80000kbps,最大预留保证带宽为40000kbps。

组网图

静态CRLSP配置组网图


实验环境
VMWare ESXi 6.7.0(ProLiant DL360 Gen9,48核心,128G内存)
H3C VSR1000(Version 7.1.064, Release 0621P18,4核心,8G内存)
CentOS Linux release 7.9.2009 (Core,4核心,4G内存)

配置步骤

首先按照组网图所示配置各接口的IP地址和掩码,设备间配置IS-IS协议发布接口所在网段的路由,包括Loopback接口
IS-IS的配置主要包括配置路由器的Level级别和网络实体名称,并在指定接口(所有接口)上配置使能IS-IS功能,掌握了这两个基本操作,来直接上配置。

VSR1
#
isis 1is-level level-1network-entity 10.0000.0000.0001.00
#
interface LoopBack0ip address 1.1.1.1 255.255.255.255isis enable 1
#
interface GigabitEthernet2/0ip address 11.1.1.1 255.255.255.0isis enable 1
#
interface GigabitEthernet3/0ip address 12.1.1.1 255.255.255.0isis enable 1 
VSR2
#
isis 1is-level level-1network-entity 10.0000.0000.0002.00
#
interface LoopBack0ip address 2.2.2.2 255.255.255.255isis enable 1
#
interface GigabitEthernet2/0ip address 12.1.1.2 255.255.255.0isis enable 1
#
interface GigabitEthernet3/0ip address 23.1.1.2 255.255.255.0isis enable 1 
VSR3
#
isis 1is-level level-1network-entity 10.0000.0000.0003.00
#
interface LoopBack0ip address 3.3.3.3 255.255.255.255isis enable 1
#
interface GigabitEthernet2/0ip address 23.1.1.3 255.255.255.0isis enable 1
#
interface GigabitEthernet3/0ip address 33.1.1.3 255.255.255.0isis enable 1 配置完成之后,检查VSR3的路由学习情况。

这里和官网有点不一样,因为官网配置中并没有讲连接业务网络的接口需要开启ISIS,但如果不开启就缺少路由了。
接下来配置MPLS及静态CRLSP。

VSR1
配置LSR ID、开启MPLS能力和MPLS TE能力
#
mpls lsr-id 1.1.1.1
#
mpls te
#
interface GigabitEthernet3/0mpls enablempls te enable 配置TE链路的最大带宽和最大可预留带宽。
#
interface GigabitEthernet3/0mpls te max-link-bandwidth 80000mpls te max-reservable-bandwidth 40000 配置VSR1为静态CRLSP的Ingress节点,下一跳地址为12.1.1.2,出标签为120,隧道所需的带宽为20000kbps。
#
static-cr-lsp ingress 13 nexthop 12.1.1.2 out-label 120 bandwidth ct0 20000 配置MPLS TE隧道Tunnel13:目的地址为VSR3的LSR ID(3.3.3.3);采用静态CRLSP建立MPLS TE隧道。配置隧道Tunnel13引用名称为static-cr-lsp-1的静态CRLSP。
#
interface Tunnel13 mode mpls-teip address 13.1.1.1 255.255.255.0mpls te signaling staticmpls te static-cr-lsp 13destination 3.3.3.3 此时我们可以看到,VSR1上去往PCB的路由是从ISIS学到的,优先级是15。

所以需要配置优先级更高的静态路由,使得到达网络33.1.1.0/24的流量通过MPLS TE隧道接口Tunnel13转发。
#
ip route-static 33.1.1.0 24 Tunnel13 preference 1 

VSR2
配置LSR ID、开启MPLS能力和MPLS TE能力,并配置TE链路的最大带宽和最大可预留带宽。
#
mpls lsr-id 2.2.2.2
#
mpls te
#
interface GigabitEthernet2/0mpls enablempls te enablempls te max-link-bandwidth 80000mpls te max-reservable-bandwidth 40000
#
interface GigabitEthernet3/0mpls enablempls te enablempls te max-link-bandwidth 80000mpls te max-reservable-bandwidth 40000 配置VSR2为静态CRLSP的Transit节点,入标签为120,下一跳地址为23.2.1.3,出标签为230,隧道所需的带宽为20000kbps。
#
static-cr-lsp transit 13 in-label 120 nexthop 23.1.1.3 out-label 230 bandwidth ct0 20000 
VSR3
配置LSR ID、开启MPLS能力和MPLS TE能力,并配置TE链路的最大带宽和最大可预留带宽。
#
mpls lsr-id 3.3.3.3
#
mpls te
#
interface GigabitEthernet2/0mpls enablempls te enablempls te max-link-bandwidth 80000mpls te max-reservable-bandwidth 40000 配置VSR3为静态CRLSP的Egress节点,入标签为230。
#
static-cr-lsp egress 13 in-label 230 
验证配置

如配置过程中所讲,我先后两次测试了从PCA到PCB的带宽情况,第一次是没有配置访问流量通过MPLS TE隧道接口转发的打流,第二次是配置之后的结果。

可以看到,不经隧道转发时,带宽为4.59 Gbps,经隧道转发时,带宽为20.0 Mbps,与配置的20000kbps大体相符。
使用display interface tunnel命令,查看Tunnel接口的状态。

可以看到,隧道的接口状态为UP,协议为CR_LSP,但是接口的收发包统计为0,估计和隧道源接口未知有关。
使用display mpls te tunnel-interface命令,查看MPLS TE隧道的建立情况。

好像跟LSP不太一样,这里显示了隧道的Ingress LSR和Egress LSR信息,一般来讲Egress LSR是看不到的。
在VSR1上执行display mpls lsp和display mpls static-cr-lsp命令,查看静态CRLSP的建立情况

bandwidth指定静态CRLSP流量所属的服务类型和所需的带宽。官网介绍:如果配置时不指定bandwidth,则静态CRLSP流量所需的带宽为0。Class Type是指静态CRLSP流量所属的服务类型,取值包括CT0、CT1、CT2和CT3,如果指定了bandwidth,但没有指定任何CT,则缺省为CT0。
通过配置我们发现,bandwidth只能在Ingress节点和Transit节点配置,那如果我们在Transit节点不配置带宽会怎么样呢?

注意,调整时需要先删除之前的配置,再配置新的。

可以看到Transit节点不配置带宽,带宽以Ingress节点配置为准,那我们把Ingress节点的带宽配置也移除掉。

带宽为3.68Gbps,看来官网说的静态CRLSP流量所需的带宽为0实际上就是不限速了。
现在在Ingress节点上不配置带宽,恢复配置Transit节点带宽为20000kbps试一下。

说明带宽以沿途经过的LSR上配置的小的为限制,如果未配置,则没有限制。而且配置的链路最大带宽竟然没有生效,我们在VSR1上把它设置为10000kbps试一下。
#
interface GigabitEthernet3/0ip address 12.1.1.1 255.255.255.0isis enable 1mpls enablempls te enablempls te max-link-bandwidth 10000mpls te max-reservable-bandwidth 1000 
官网介绍该命令用来配置用于转发MPLS TE流量的链路最大带宽,设备在发布的IGP路由中携带本命令配置的链路最大带宽值,以便隧道的Ingress节点获取到该信息,并根据该信息进行CSPF计算,选择符合隧道带宽要求的路径。
看来好像用处不大啊!

长按二维码
关注我们吧


在 MPLS 隧道上执行标签交换路径 Ping (LSP Ping) 的机制
IP内的IP封装
Windows 11 可能影响工作效率的几个问题
你晓得不,VPN实例间路由还能通过路由协议动态引入呢
震惊!VRF路由泄露了!
有没有开源的虚拟路由器?有,VPP了解一下
相关文章:
使用静态CRLSP配置MPLS TE隧道
正文共:1591 字 13 图,预估阅读时间:4 分钟 静态CRLSP(Constraint-based Routed Label Switched Paths,基于约束路由的LSP)是指在报文经过的每一跳设备上(包括Ingress、Transit和Egress…...
gentoo安装笔记
最近比较闲,所以挑战一下自己,在自己的台式电脑上安装gentoo 下面记录了我亲自安装的步骤,作为以后我再次安装时参考所用。 整体步骤 一般来将一个linux发行版的安装步骤其实大体上都差不多,基本分为一下几步: 1. …...
Git如何使用 五分钟快速入门
Git如何使用 五分钟快速入门 Git是一个分布式版本控制系统,它可以帮助开发人员跟踪和管理项目的代码变更。与传统的集中式版本控制系统(如SVN)不同,Git允许开发人员在本地存储完整的代码仓库,并且可以独立地进行代码修…...
FreeRTOS学习笔记——(FreeRTOS临界段代码保护及调度器挂起与恢复)
这里写目录标题 1,临界段代码保护简介(熟悉)2,临界段代码保护函数介绍(掌握)3,任务调度器的挂起和恢复(熟悉) 1,临界段代码保护简介(熟悉…...
箱形理论在交易策略中的实战应用与优化
箱形理论,简单来说,就是将价格波动分成一段一段的方框,研究这些方框的高点和低点,来推测价格的趋势。 在上升行情中,价格每突破新高价后,由于群众惧高心理,可能会回跌一段,然后再上升…...
MinIO 和 Apache Tika:文本提取模式
Tl;dr: 在这篇文章中,我们将使用 MinIO Bucket Notifications 和 Apache Tika 进行文档文本提取,这是大型语言模型训练和检索增强生成 LLM和RAG 等关键下游任务的核心。 前提 假设我想构建一个文本数据集,然后我可以用它来微调 LLM.为了做…...
c编译器学习05:与chibicc类似的minilisp编译器(待续)
minilisp项目介绍 项目地址:https://github.com/rui314/minilisp 作者也是rui314,commits也是按照模块开发提交的。 minilisp只有一个代码文件:https://github.com/rui314/minilisp/blob/master/minilisp.c 加注释也只有996行。 代码结构&a…...
手撕qsort函数
前言 本篇主要讲解的是qsort函数细节以及运用实例。 紧跟我的脚步一起手撕qsort函数吧~ 欢迎关注个人主页:逸狼 更多优质内容: 拿捏c语言指针(上) 拿捏c语言指针(中) 拿捏c语言指针(下&…...
项目在linux上的简单部署
本文章只介绍项目的简单部署,暂时没有Docker部署。 项目部署有两种方式,一种是直接命令部署,第二种是用脚本,脚本本身也是将命令进行封装来执行。 命令 项目通过maven打包,启动命令: # 启动命令 nohup …...
MySQL安装教程(详细版)
今天分享的是Win10系统下MySQL的安装教程,打开MySQL官网,按步骤走呀~ 宝们安装MySQL后,需要简单回顾一下关系型数据库的介绍与历史(History of DataBase) 和 常见关系型数据库产品介绍 呀,后面就会进入正式…...
Linux platform tree下的单总线驱动程序设计(DHT11)
目录 概述 1 认识DHT11 1.1 DHT11特性 1.2 DHT11数据格式 1.3 DHT11与MCU通信 1.4 DHT11信号解析 1.4.1 起始信号 1.4.2 解析信号0 1.4.3 解析信号1 2 驱动开发 2.1 硬件接口 2.2 更新设备树 2.2.1 添加驱动节点 2.2.2 编译.dts 2.2.3 更新板卡中的.dtb 2.3 驱…...
自研爬虫框架的经验总结(理论及方法)
背景: 由于业务需要,承接一部分的数据采集工作。目前市场内的一些通用框架不太适合。故而进行了自研。 对比自研和目前成熟的框架,自研更灵活适配,可以自己组装核心方法;后者对于新场景的适配需要对框架本身有较高的理…...
配置基于 AWS CRT 的 HTTP 客户端
基于 AWS CRT 的 HTTP 客户端包括同步 AwsCrtHttpClient 和异步 AwsCrtAsyncHttpClient。基于 AWS CRT 的 HTTP 客户端具有以下 HTTP 客户端优势: 更快的 SDK 启动时间 更小的内存占用空间 降低的延迟时间 连接运行状况管理 DNS 负载均衡 SDK 中基于 AWS CRT …...
挑战杯 基于LSTM的天气预测 - 时间序列预测
0 前言 🔥 优质竞赛项目系列,今天要分享的是 机器学习大数据分析项目 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/po…...
我为什么不喜欢关电脑?
程序员为什么不喜欢关电脑? 你是否注意到,程序员们似乎从不关电脑?别以为他们是电脑上瘾,实则是有他们自己的原因!让我们一起揭秘背后的原因,看看程序员们真正的“英雄”本色! 一、上大学时。 …...
Unity【角色/摄像机移动控制】【1.角色移动】
本文主要总结实现角色移动的解决方案。 1. 创建脚本:PlayerController 2. 创建游戏角色Player,在Player下挂载PlayerController脚本 3. 把Camera挂载到Player的子物体中,调整视角,以实现相机跟随效果 3. PlayerController脚本代码…...
Oracle12cR2之Job定时作业调度器详解
Oracle12cR2之Job定时作业调度器详解 文章目录 Oracle12cR2之Job定时作业调度器详解1.Oracle Job1. 关于Job2. 使用方法 2. Job详细说明1. 查看Job的相关视图2.SYS.DBA_JOBS视图字段详细说明 3. 创建及查看Job1. 创建Job2. 查看运行中的Job 1.Oracle Job 1. 关于Job 在 Oracle…...
python自学...
一、稍微高级一点的。。。 1. 闭包(跟js差不多) 2. 装饰器 就是spring的aop 3. 多线程...
Message Pack 协议详解及应用
文章目录 一、Message Pack是什么二、Message Pack的语法规则三、Message Pack相关链接四、Message Pack应用场景五、MessagePack 兼容性与特点 一、Message Pack是什么 Message Pack是一种高效的二进制序列化格式,用于在不同的应用程序之间进行数据交换。它类似于J…...
智慧社区管理系统:构建未来的生活模式
在这个信息化、智能化的时代,我们期待的不再是简单的居住空间,而是一个集安全、便捷、舒适、环保于一体的智能化社区。为此,我们推出了全新的智慧社区管理系统,旨在将先进的科技力量引入社区管理,为居民提供更优质的生…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
