使用静态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…...

智慧社区管理系统:构建未来的生活模式
在这个信息化、智能化的时代,我们期待的不再是简单的居住空间,而是一个集安全、便捷、舒适、环保于一体的智能化社区。为此,我们推出了全新的智慧社区管理系统,旨在将先进的科技力量引入社区管理,为居民提供更优质的生…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...