华为---MSTP(一)---MSTP生成树协议

news2024/11/17 6:49:29

目录

1. MSTP技术产生背景

2. STP/RSTP的缺陷

​编辑

2.1 无法均衡流量负载

2.2 数据使用次优路径

3. MSTP生成树协议

3.1 MSTP相关概念

3.2 MSTP树生成的形成过程

4. MSTP报文


1. MSTP技术产生背景

        RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但由于局域网内所有的VLAN共享一棵生成树,因此被阻塞后链路将不承载任何流量,无法在VLAN间实现数据流量的负载均衡,从而造成带宽浪费。为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1s标准定义了MSTP。

2. STP/RSTP的缺陷

2.1 无法均衡流量负载

        如上图所示,交换机都运行STP或RSTP,PC1、PC2访问服务器Server1,希望vlan 10的数据依次经过SW2和SW1到达Server1,vlan 20的数据依次经过SW3和SW1到达Server1。
        SW2是根桥,根据生成树选举规则,连接SW1和SW3的链路上会有一个端口被阻塞,也就是说SW1和SW3之间的链路将不负责转发数据流量。那么vlan 20的数据流量就无法经过SW3和SW1,只能和vlan 10的数据流量一样,依次经过SW3、SW2、SW1到达Server1,SW1和SW3之间的链路没有数据流量,无法分担网络数据流量。

2.2 数据使用次优路径

        如上图所示,因为SW1和SW3之间链路没有数据流量转发,vlan 20的数据流量只能依次经过SW3、SW2、SW1到达Server1,无法使用从SW3到SW1之间的更好链路,这就导致选用次优路径。

3. MSTP生成树协议

        MSTP,即Multiple Spanning Tree Protocol,又称多生成树协议。

  • MSTP兼容STP和RSTP,在破除环路的基础上,可以快速收敛;
  • 基于实例计算出多棵生成树,实例间实现负载分担;
  • 设置VLAN映射表,将一个或多个VLAN映射到一个多生成树(MSTP)实例(instance)上 。


        如上图所示,VLAN 2对应一棵以交换机5700-A为根的生成树,交换机5700-B和交换机3700之间的链路就会被阻塞。VLAN3对应一棵以交换机5700-B为根的生成树,交换机5700-A和交换机3700之间的链路就会被阻塞。不同VLAN的数据流走不同的生成树,就实现了负载分担,同时也消除了次优路径问题。

3.1 MSTP相关概念

MSTP的网络层次:如下图所示,MSTP网络中包含1个或多个MST域(MST Region),每个MST Region中包含一个或多个MSTI(多生成树实例)。组成MSTI的是运行STP/RSTP/MSTP的交换设备,MSTI是所有运行STP/RSTP/MSTP的交换设备经MSTP协议计算后形成的树状网络。


        MSTP网络层次示意图

MST Region(多生成树域,简称MST域):MSTP可以把一个二层网络划分成多个区域,每个区域内都可以自主形成生成树,不同区域间的生成树互不干扰。同一个MST域的设备具有下列特点:

  • 都启动了MSTP。
  • 具有相同的域名。
  • 具有相同的VLAN到生成树实例映射配置。
  • 具有相同的MSTP修订级别配置。

MSTI(多生成树实例):每一棵生成树都会有一个生成树实例,每个实例里面会有一个VLAN映射表,这张表记录了有哪些VLAN映射到了该实例中(该生成树上),不同的实例之间采用不同的Instance ID来标识,取值范围是0-4094,但默认情况下,所有VLAN都会映射到Instance 0中。一个或多个VLAN映射到一个Instance(实例),再基于Instance计算生成树,映射到同一个Instance的VLAN共享同一棵生成树。

VLAN映射表:

VLAN映射表是MST域的属性,它描述了VLAN和MSTI之间的映射关系。

如下图所示,MST域D0的VLAN映射表是:

  • VLAN1映射到MSTI1
  • VLAN2和VLAN3映射到MSTI2
  • 其余VLAN映射到MSTI0

CST(公共生成树):如果把MST域看成一台交换机,那么域与域之间通过链路连接,存在冗余链路,那么域与域之间就也会存在二层的环路,所以也需要一棵生成树来消除环路,而公共生成树就是这棵用来消除域与域之间环路的生成树。

IST(内部生成树):这是MST域内Instance ID为0的特殊生成树,是一个特殊的生成树实例,注意IST不是指MST域里面的所有生成树。

CIST(公共和内部生成树):这是由所有MST域内的IST加上CST所构成一棵完整的生成树。

SST(单生成树):指MST域内只有一台交换机并且只有一个实例的生成树。

总根:指CIST这棵生成树的根桥,整个MSTP网络中具有最高优先级的交换机就被选举为总根。

域根:又分为IST域根和MSTI域根,IST域根是距离总根最近的交换机;MSTI域根是指MSTI域的根桥:也就是实例中的最优交换机,但因为每一个MST域内都有多棵生成树,每棵生成树都有一个实例:所以每一个实例就都会有它自己的MSTI域根;

主桥:域内距离总根最近的交换机就是主桥,包括了总根它自己,也就是整一个MSTP网络最优的交换机既是总根,也是主桥。

MSTP还在STP/RSTP的基础上新增了两种端口角色:

  • Master端口:Master端口是MST域和总根相连的所有路径中最短路径上的端口,是一个特殊的域边缘端口。本质就是就是某一个MST域距离总根最近的那一个端口,报文必须要经过该端口才可以到达总根。
  • 域边缘端口:连接其他区域的交换机的端口就是域边缘端口。

3.2 MSTP树生成的形成过程

  • MSTP先将整个二层网络划分成多个MST域,之后域与域之间建立CST,MST域内部建立IST,CST和IST构成了连接整个网络的CIST生成树。
  • MSTP生成树形成,首先在二层网络中选举一个优先级最高的交换机成为总根;然后在每一个MST域内计算得到IST,在每一个MST域间计算得到CST;IST和CST结合就构成了整个交换网络的CIST。
  • 在MST域内,MSTP是根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。之后转发数据时,MST域之间,遵循着CST路径转发,而在MST域内,就根据不同的生成树实例来转发。

4. MSTP报文

字段内容

字节

说明

Protocol Identifier

2

协议标识符。

Protocol Version Identifier

1

协议版本标识符,STP为0,RSTP为2,MSTP为3。

BPDU Type

1

BPDU类型:
  • 0x00:STP的Configuration BPDU

  • 0x80:STP的TCN BPDU(Topology Change Notification BPDU)

  • 0x02:RST BPDU(Rapid Spanning-Tree BPDU)或者MST BPDU(Multiple Spanning-Tree BPDU)

CIST Flags

1

CIST标志字段。

CIST Root Identifier

8

CIST的总根交换设备ID。

CIST External Path Cost

4

CIST外部路径开销指从本交换设备所属的MST域到CIST根交换设备所属的MST域的累计路径开销。CIST外部路径开销根据链路带宽计算。

CIST Regional Root Identifier

8

CIST的域根交换设备ID,即IST Master的ID。如果总根在这个域内,那么域根交换设备ID就是总根交换设备ID。

CIST Port Identifier

2

本端口在IST中的指定端口ID。

Message Age

2

BPDU报文的生存期。

Max Age

2

BPDU报文的最大生存期,超时则认为到根交换设备的链路故障。

Hello Time

2

Hello定时器,缺省为2秒。

Forward Delay

2

Forward Delay定时器,缺省为15秒。

Version 1 Length

1

Version1 BPDU的长度,值固定为0。

Version 3 Length

2

Version3 BPDU的长度。

MST Configuration Identifier

51

MST配置标识,表示MST域的标签信息,包含4个字段。

CIST Internal Root Path Cost

4

CIST内部路径开销指从本端口到IST Master交换设备的累计路径开销。CIST内部路径开销根据链路带宽计算。

CIST Bridge Identifier

8

CIST的指定交换设备ID。

CIST Remaining Hops

1

BPDU报文在CIST中的剩余跳数。

MSTI Configuration Messages(may be absent)

16

MSTI配置信息。每个MSTI的配置信息占16 bytes,如果有n个MSTI就占用n×16bytes。

参考链接:MSTP简介

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

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

相关文章

[Buuctf] [MRCTF2020]Transform

1.查壳 64位exe文件,没有壳 2.用64位IDA打开 找到主函数,F5查看伪代码 从后往前看,有一个判断语句,是两个数组进行比较的,我们双击byte_40F0E0查看里面的内容 所以能够推出byte_414040的内容,byte_4140…

【常见集合】Java 常见集合重点解析

Java 常见集合重点解析 1. 什么是算法时间复杂度? 时间复杂度表示了算法的 执行时间 和 数据规模 之间的增长关系; 什么是算法的空间复杂度? 表示了算法占用的额外 存储空间 与 数据规模 之间的增长关系; 常见的复杂度&#x…

守护Web安全:了解Web攻击与防护策略

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

搜索引擎都没流量啦,官网建设还有啥意义?

百度等搜索引擎都没啥流量了,再建设官网还有啥用?如果你把官网定位于获客,那真的没啥太大用处,但是官网不仅仅是用来获客的。 一、搜索引擎的流量被稀释了 搜索引擎流量减少的原因有多个, 1. 社交媒体的崛起&#xf…

嵌入式学习36-TCP要点及http协议

TCP发送文件的粘包问题 1. 例: 发端 1.flv-------->收端 1.flv csfga 2.解决 1. sleep(1) 延时发送 2.自…

HarmonyOS NEXT应用开发案例——二级联动

介绍 本示例主要介绍了List组件实现二级联动(Cascading List)的场景。 该场景多用于短视频中拍摄风格的选择、照片编辑时的场景的选择。 效果图预览 使用说明: 滑动二级列表侧控件,一级列表随之滚动。点击一级列表,…

蓝桥杯每日一题:烤鸡dfs

这道题考察了dfs的应用,题干十分有趣,思考过程对以后类似题目也有很强的参考性,一起来学习吧! 题目: # 烤鸡 ## 题目背景 猪猪 Hanke 得到了一只鸡。 ## 题目描述 猪猪 Hanke 特别喜欢吃烤鸡(本是同畜…

关于Linux上的$ORIGIN解说

1、Linux RPATH & $ORIGIN 许多现代C / C 项目都利用Autotools创建GNU构建系统,例如 根据平台生成make文件。 可执行文件(二进制文件)在生成/编译过程中生成,并且可以在执行编译的计算机上本地执行。 但是,如果将…

借着ChatGPT的人机交互聊聊长连接

ChatGPT这两年可谓风靡全球,尤其是最近Sora视频模型的横空出世以及claude 3模型所具备的浅意识,更是像打开了新世界的大门。本文就从ChatGPT的网页聊天开始聊起(有蹭热度之嫌,哈哈),聊聊长连接的发展历程和…

程序员有哪些证书值得考?

证书可以作为第三方机构对于程序员特定技能或知识掌握程度的认可,在求职市场上,一些公司尤其是大型企事业单位或者政府项目可能更看重证书作为衡量应聘者专业能力的标准之一。备考证书的过程,也可以促使程序员系统地学习和巩固相关知识&#…

2024上半年软考中级《数据库系统工程师》报名考试全攻略

​2024年软考系统数据库系统工程师考试报名时间节点: 报名时间:上半年3月18日到4月15日,下半年8月19日到9月15日(各地区报名时间不同,具体日期见官方通告) 准考证打印时间:上半年5月20日起&am…

海云安荣获「粤港澳大湾区金融创新成果优秀解决方案」奖

近日,由广东省粤港澳合作促进会指导,广东省粤港澳合作促进会金融专业委员会、粤港澳大湾区金融创新研究院和澳门电子金融产业贸易促进会联合开展了“第二届金融创新优秀应用案例与解决方案技术成果评定”工作。海云安向组委会提交的“海云安开发者安全助…

python爬虫(3)

上一次的代码结果如下: 当然会有一点点不一样是正常的表现,因为这个图本身使用随机数rand函数做的,用其他两种随机函数出来的结果也不会完全相同。 继上节这次带来的是数组的重塑和转置 1、一维数组的重塑 在NumPy模块中的reshape()函数可…

人工蜂群算法

人工蜂群算法 人工蜂群算法(Artificial Bee Colony Optimization,ABC)是一种基于蜜蜂觅食行为的优化算法,由土耳其学者Karaboga于2005年提出,算法模拟蜜蜂的采蜜行为对优化问题进行求解。 算法原理 ABC算法的核心思想是将优化问…

Unreal Engine API:颠覆游戏开发,数字内容创造轻松驾驭!

🚀 原理介绍大揭秘 Epic Games的得意之作Unreal Engine API,是虚幻引擎跳动着的核心心脏。基于C架构,并携手可视化编程神器——蓝图系统,它为全球的游戏开发者们打造了一套火力全开的工具箱和功能丰富的接口。无论你是专业团队还…

C++vector的使用方法

文章目录 一、vector的介绍1. 文档链接2. 简要介绍 二、vector的使用1.vector的定义(1)构造函数(2)拷贝构造函数(2)赋值重载 2. vector 增删查改(1)operator [](2&#x…

Vue3 中的代理原理详解

Vue3 中的代理原理详解 Vue3 中引入了代理(Proxy)机制,取代了 Vue2 中的 Object.defineProperty() 机制,用于实现数据响应式。代理机制是 ES6 中新增的特性,它可以用来自定义对象中的操作,比如属性查找、赋…

IDS入侵检测知识整理及lDS入侵检查表

【IDS入侵检测知识整理及lDS入侵检查表】 1. 网络入侵检测IDS概念 2. IDS分类 3. IDS的工作原理 4. IDS在网络中的部署 5. 入侵检查表 项目建设全套资料获取通道:软件开发全套资料_数字中台建设指南-CSDN博客

植物病虫害:YOLO水稻虫害识别数据集(6类,五千余张图像,标注完整)

YOLO水稻虫害识别数据集,包含褐飞虱,绿叶蝉,正常叶片,稻虫,二化螟,蝇蛆6个类别,共五千余张图像,yolo标注完整。 适用于CV项目,毕设,科研,实验等 …

【QT6】打开项目 .pro 一堆报错 但是程序可以运行 打开别人的QT项目后,全是报错

报错环境 我通过在网上拷贝的项目, 然后打开pro文件 build项目 你会发现各种报错 无缘无故的报错 明明环境已经没问题了 解决方案 首先是提示no valid settings file could be found,这个错误很好解决,删除项目目录下的.user文件&#xff…