使用静态CRLSP配置MPLS TE隧道

news2024/11/22 19:47:28

23475bcb4ae7a1570fc9e24560d96f6b.gif

正文共:1591 字 13 图,预估阅读时间:4 分钟

静态CRLSP(Constraint-based Routed Label Switched Paths,基于约束路由的LSP)是指在报文经过的每一跳设备上(包括Ingress、Transit和Egress)分别手工指定入标签、出标签、流量所需的带宽等信息,建立标签转发表项和资源预留,从而建立的CRLSP。

与静态LSP不同的是,静态CRLSP需要在每一跳设备上为流量预留一定的带宽资源,如果设备上的带宽资源不满足流量需求,则无法建立静态CRLSP。

建立静态CRLSP消耗的资源比较少,但静态建立的CRLSP不能根据网络拓扑变化动态调整。因此,静态CRLSP适用于拓扑结构简单并且稳定的小型网络。

ab81e61314e1a01f94418f27e746eb70.png

组网需求

5e4f85f648040764c0a685ef0bc9264b.png

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

dfeeb821bc315cb61e143156df6246c1.png

组网图

9edca307a79e2cb594c85b5faa0724f4.png

静态CRLSP配置组网图

fbbe8a98417c5c2aa0d0b94685cc24b5.png

3998837a5f6314943769375818eb65d4.png

实验环境

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内存)

b6eae48c2586eb4ceeb5b2ca9d350d99.png

配置步骤

b2549b6016903a69870a5e365b5d0d4c.png

首先按照组网图所示配置各接口的IP地址和掩码,设备间配置IS-IS协议发布接口所在网段的路由,包括Loopback接口

IS-IS的配置主要包括配置路由器的Level级别和网络实体名称,并在指定接口(所有接口)上配置使能IS-IS功能,掌握了这两个基本操作,来直接上配置。

47bb10424c4e0708fe9aa624ac3b456c.png

VSR1

#
isis 1
 is-level level-1
 network-entity 10.0000.0000.0001.00
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255
 isis enable 1
#
interface GigabitEthernet2/0
 ip address 11.1.1.1 255.255.255.0
 isis enable 1
#
interface GigabitEthernet3/0
 ip address 12.1.1.1 255.255.255.0
 isis enable 1

b97f114ed5319196999a2e9fc8543eb7.png

VSR2

#
isis 1
 is-level level-1
 network-entity 10.0000.0000.0002.00
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
 isis enable 1
#
interface GigabitEthernet2/0
 ip address 12.1.1.2 255.255.255.0
 isis enable 1
#
interface GigabitEthernet3/0
 ip address 23.1.1.2 255.255.255.0
 isis enable 1

a395cf5f783d3cb51da99714cd6f5998.png

VSR3

#
isis 1
 is-level level-1
 network-entity 10.0000.0000.0003.00
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
 isis enable 1
#
interface GigabitEthernet2/0
 ip address 23.1.1.3 255.255.255.0
 isis enable 1
#
interface GigabitEthernet3/0
 ip address 33.1.1.3 255.255.255.0
 isis enable 1

配置完成之后,检查VSR3的路由学习情况。

2bdce13fc04549437e971662d9e93b2d.png

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

接下来配置MPLS及静态CRLSP。

4873e92d07f3a0e5357d173a93b0ff35.png

VSR1

配置LSR ID、开启MPLS能力和MPLS TE能力

#
mpls lsr-id 1.1.1.1
#
mpls te
#
interface GigabitEthernet3/0
 mpls enable
 mpls te enable

配置TE链路的最大带宽和最大可预留带宽。

#
interface GigabitEthernet3/0
 mpls te max-link-bandwidth 80000
 mpls 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-te
 ip address 13.1.1.1 255.255.255.0
 mpls te signaling static
 mpls te static-cr-lsp 13
 destination 3.3.3.3

此时我们可以看到,VSR1上去往PCB的路由是从ISIS学到的,优先级是15。

b10a6e2d64beea40667ef1ff7def0d7a.png

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

#
ip route-static 33.1.1.0 24 Tunnel13 preference 1

5f063d2d7d65d6de6f774323e8918838.png

89ddc12247fa8a8d89ed48a990321a21.png

VSR2

配置LSR ID、开启MPLS能力和MPLS TE能力,并配置TE链路的最大带宽和最大可预留带宽。

#
mpls lsr-id 2.2.2.2
#
mpls te
#
interface GigabitEthernet2/0
 mpls enable
 mpls te enable
 mpls te max-link-bandwidth 80000
 mpls te max-reservable-bandwidth 40000
#
interface GigabitEthernet3/0
 mpls enable
 mpls te enable
 mpls te max-link-bandwidth 80000
 mpls 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

9a3e04b8c996bb4c9d4474cca4b00990.png

VSR3

配置LSR ID、开启MPLS能力和MPLS TE能力,并配置TE链路的最大带宽和最大可预留带宽。

#
mpls lsr-id 3.3.3.3
#
mpls te
#
interface GigabitEthernet2/0
 mpls enable
 mpls te enable
 mpls te max-link-bandwidth 80000
 mpls te max-reservable-bandwidth 40000

配置VSR3为静态CRLSP的Egress节点,入标签为230。

#
static-cr-lsp egress 13 in-label 230

34750c18558687d2317407b136a3382e.png

验证配置

6ce0ec74273ab52dc36e78dea7d23a67.png

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

1107508a86a1dc839427db464af2f55e.png

可以看到,不经隧道转发时,带宽为4.59 Gbps,经隧道转发时,带宽为20.0 Mbps,与配置的20000kbps大体相符。

使用display interface tunnel命令,查看Tunnel接口的状态。

b0ba146ac65961d5b59fa5c6e708c512.png

可以看到,隧道的接口状态为UP,协议为CR_LSP,但是接口的收发包统计为0,估计和隧道源接口未知有关。

使用display mpls te tunnel-interface命令,查看MPLS TE隧道的建立情况。

114fea75aa91446e5611c6de57bf7f3f.png

好像跟LSP不太一样,这里显示了隧道的Ingress LSR和Egress LSR信息,一般来讲Egress LSR是看不到的。

在VSR1上执行display mpls lsp和display mpls static-cr-lsp命令,查看静态CRLSP的建立情况

a765017b295f1a2683f6236e519028d8.png

bandwidth指定静态CRLSP流量所属的服务类型和所需的带宽。官网介绍:如果配置时不指定bandwidth,则静态CRLSP流量所需的带宽为0。Class Type是指静态CRLSP流量所属的服务类型,取值包括CT0、CT1、CT2和CT3,如果指定了bandwidth,但没有指定任何CT,则缺省为CT0。

通过配置我们发现,bandwidth只能在Ingress节点和Transit节点配置,那如果我们在Transit节点不配置带宽会怎么样呢?

725ea1a26e34d83dedba704d4228cde2.png

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

fbb0d44226d58999bfea94fcc13a755d.png

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

18862031ca70471dd32a6006a608fda7.png

带宽为3.68Gbps,看来官网说的静态CRLSP流量所需的带宽为0实际上就是不限速了。

现在在Ingress节点上不配置带宽,恢复配置Transit节点带宽为20000kbps试一下。

18d3be68cf14863be4c3580829d8b60b.png

说明带宽以沿途经过的LSR上配置的小的为限制,如果未配置,则没有限制。而且配置的链路最大带宽竟然没有生效,我们在VSR1上把它设置为10000kbps试一下。

#
interface GigabitEthernet3/0
 ip address 12.1.1.1 255.255.255.0
 isis enable 1
 mpls enable
 mpls te enable
 mpls te max-link-bandwidth 10000
 mpls te max-reservable-bandwidth 1000

336b6962c611323a8edd7a5142973049.png

官网介绍该命令用来配置用于转发MPLS TE流量的链路最大带宽,设备在发布的IGP路由中携带本命令配置的链路最大带宽值,以便隧道的Ingress节点获取到该信息,并根据该信息进行CSPF计算,选择符合隧道带宽要求的路径。

看来好像用处不大啊!

ad89a448951e3c03c0f2688fb50cc6e8.gif

长按二维码
关注我们吧

62620f29a0a76a1878d4fb66c2b51e62.jpeg

91dee782858744c1a69e6461b20b14e2.png

在 MPLS 隧道上执行标签交换路径 Ping (LSP Ping) 的机制

IP内的IP封装

Windows 11 可能影响工作效率的几个问题

你晓得不,VPN实例间路由还能通过路由协议动态引入呢

震惊!VRF路由泄露了!

有没有开源的虚拟路由器?有,VPP了解一下

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

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

相关文章

DBeaver通用数据库管理 连接DM8 数据库及其配置

一.工具版本说明 DBeaver版本: 21.0.202106012023, 推荐官网下载。 DM8/达梦数据库: DM 8 Windows 官网安装手册 如果想深入了解DM8 数据库操作请参考:DM8/达梦 数据库管理员使用手册详解 二.DM8/达梦驱动下载 下载渠道/官方文档 DM 8/达梦技术…

LeetCode JS专栏刷题笔记(一)

一、前言 LeetCode 在前不久出了一个 JavaScript 专栏,这个专栏一个目的是为了非前端工程师学习 JS,另一个是为了前端工程师提升 JS 能力。 因此在这个专栏中,基本不涉及什么具体算法问题,都是一些 JS 的入门语法与常见的 JS 面…

Maven(基础)、MyBatis

简介 Apache Maven是一个项目管理和构建工具,它基于项目对象模型 (POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档 官网: http://maven.apache.org/ Maven作用 Maven是专门用于管理和构建Java项目的工具,它的主要功能有&#x…

Elasticsearch查询报错 Result window is too large

一现象: es数据分页查询前端提示系统异常,后端报错日志 二根本原因: 默认情况下,Elasticsearch 限制了 from size 参数的组合不能超过 10,000 条记录,用于防止查询大数据集时对系统资源的过度消耗 三解决办法&#…

JavaSE——面向对象基础(1/4)-面向对象编程、程序中的对象、对象的产生、对象的执行原理、类和对象的一些注意事项

目录 面向对象编程 程序中的对象 对象的产生 对象的执行原理 类和对象的一些注意事项 面向对象编程 开发一个一个的对象,把数据交给对象,再调用对象的方法来完成对数据的处理。 例如设计一个学生的对象,其中有姓名和成绩等&#xff0c…

可视化视频监控平台EasyCVR如何配置服务参数以免getbaseconfig接口信息泄露?

可视化云监控平台/安防视频监控系统EasyCVR视频综合管理平台,采用了开放式的网络结构,平台支持高清视频的接入和传输、分发,可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集…

【.NET Core】C#编程规范

【.NET Core】C#编程规范 文章目录 【.NET Core】C#编程规范一、概述1.1 结构清晰第一1.2 简洁之风1.3 代码风格保持一致性 二、命名约定三、类型参数命名指南3.1 请使用描述性名称命名泛型类型参数,除非单个字面名称完全具有自我说明性且描述性名称不会增加任何作用…

Redis(03)——发布订阅

基础命令 基于频道 publish channel message:将信号发送到指定的频道pubsub subcommand [argument [argyment]]:查看订阅或发布系统状态subscribe channel [channel]:订阅一个或多个频道的信息unsubscribe [channel [channel]]:退…

CSS:BFC

BFC,Block Formatting Context,块级格式化上下文,是一个独立的渲染区域或隔离的独立容器,它决定了其子元素如何布局,并且与这个区域外部的元素无关。 形成 BFC 的条件 float 的值不为 none(left、right&a…

【Node.js和Appium server的下载安装步骤】

Node.js 是JavaScript的运行环境,是 JS 语言的解释器,之中集成了npm库。 npm 是世界上最大软件包仓库,可用于Appium server安装。 1、Node.js官方安装包及源码下载地址:Node.js 选择相应系统的安装包进行下载(.msi用…

c编译器学习02:chibicc文档翻译

目的 先粗略地看一遍作者的书籍。 原文档地址 https://www.sigbus.info/compilerbook# “低レイヤを知りたい人のためのCコンパイラ作成入門” 为想了解底层的人准备的C编译器制作入门 Rui Ueyama ruiucs.stanford.edu 2020-03-16 作者简介 https://www.sigbus.info/ 植山…

知识蒸馏实战代码教学二(代码实战部分)

一、上章原理回顾 具体过程: (1)首先我们要先训练出较大模型既teacher模型。(在图中没有出现) (2)再对teacher模型进行蒸馏,此时我们已经有一个训练好的teacher模型,所以…

C++ 二分模版 数的范围

给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。 如果数组中不存在该元素,则返回 -1 -1。 输入格式 第一行包含整数 n 和 q &…

QT串口通讯上位机_数据超时接收功能及定时发送功能设计

目录 1.概述2.本次内容最终实现3.代码部分4.完整工程文件下载 1.概述 基于《串口开发基础》 在该基础上增加超时时间接收功能,加入定时器循环; 例如,接收数据开始后,在100ms内未接收到任何数据,视作本次数据接收结束&…

数据结构第3章 串

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 0、思维导图1、基本概念1)主…

Java+SpringBoot:农业疾病防治新选择

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

NBlog个人博客部署维护过程记录 -- 后端springboot + 前端vue

项目是fork的Naccl大佬NBlog项目,页面做的相当漂亮,所以选择了这个。可以参考2.3的效果图 惭愧,工作两年了也没个自己的博客系统,趁着过年时间,开始搭建一下. NBlog原项目的github链接:Naccl/NBlog: &#…

leetcode(动态规划)53.最大子数组和(C++详细解释)DAY12

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 提示 2.解答思…

Sora一出 哪里又要裁员了?

上班前夕迎来大新闻,那就是Sora了,Sora是什么,有什么牛逼之处,怎么实现的,我们跟着官方文档透露出来的一点点信息,简单的捋一捋。 一、Sora是什么 官方给出的定义是:世界模拟器。这很明显有夸大…

数据结构:动态内存分配+内存分区+宏+结构体

一、作业 1.定义一个学生结构体&#xff0c;包含结构体成员&#xff1a;身高&#xff0c;姓名&#xff0c;成绩&#xff1b;定义一个结构体数组有7个成员&#xff0c;要求终端输入结构体成员的值&#xff0c;根据学生成绩&#xff0c;进行冒泡排序。 #include <stdio.h>…