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

目录

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简介

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【k8s管理--可视化界面】

1、可视化界面的软件 kubernetes的可视化软件有以下这些kubernetes dashboard:https://github.com/kubernetes/dashboardkubesphere官网: https://kubesphere.io/zh/rancher 官网: https://www.rancher.cn/kuboard 官网: https:/…

C++11常用知识分享(一)【列表初始化 || 简化声明 || 范围for || 左右值 || 可变参数模板】

目录 一. 列表初始化 1)用法 2) initializer_list 小节: 二,简化声明 1) ,auto 2) ,decltype类 3),nullptr 三,范围for 四,C11后,STL容器变化 五&#xff0c…

【数据结构】实现堆

大家好,我是苏貝,本篇博客带大家了解堆,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 堆的概念及结构二. 堆的实现堆的结构体初始化销毁插入数据删除数据(默认删除堆顶即…

【JS】WebSocket实现简易聊天室

【JS】WebSocket实现简易聊天室 聊天室思路示例 聊天室思路 聊天室思路 1、连接服务器先建立连接,默认生成匿名用户(admin01) 2、客户端发送消息,其它客户端用户都会同步接收消息(服务端接受消息广播所有连接用户) 3、客户端修改昵称,其它客…

鸿蒙应用组件

基础组件 索引组件—AlphabetIndexer&#xff08;相当于安卓的seedbar&#xff09; 使用&#xff1a;AlphabetIndexer(value: {arrayValue: Array<string>, selected: number})空白填充组件—Blank&#xff08;占位使用&#xff0c;当父组件为Row/Column/Flex时生效&am…

[SpringCloud] OpenFeign核心架构原理 (一)

Feign的本质: 动态代理 七大核心组件 Feign底层是基于JDK动态代理来的, Feign.builder()最终构造的是一个代理对象, Feign在构建对象的时候会解析方法上的注解和参数, 获取Http请求需要用到基本参数以及和这些参数和方法参数的对应关系。然后发送Http请求, 获取响应, 再根据响…

2024-3-4 市场分歧视角

今天市场有一个单独分歧视角可以观察思考&#xff0c;竞价氢能这边严重不符合预期&#xff0c;隔夜单 四川金顶 和 东方精工 大幅减少&#xff0c;预期就是这两个货会高位分歧&#xff0c;最高板 东方精工 开盘就是瀑布杀&#xff0c;四川金顶先杀到1个多点&#xff0c;9&#…

分库分表如何管理不同实例中几万张分片表?

在进行分库分表设计时&#xff0c;确认好了数据节点数量和分片策略以后&#xff0c;接下来要做的就是管理大量的分片表。实际实施过程中可能存在上百个分片数据库实例&#xff0c;每个实例中都可能有成千上万个分片表&#xff0c;如果仅依靠人力来完成这些任务显然是不现实的。…

【AI视野·今日Robot 机器人论文速览 第八十期】Fri, 1 Mar 2024

AI视野今日CS.Robotics 机器人学论文速览 Fri, 1 Mar 2024 Totally 32 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Humanoid Locomotion as Next Token Prediction Authors Ilija Radosavovic, Bike Zhang, Baifeng Shi, Jathushan Rajasegaran…

Linux--文件(2)-重定向和文件缓冲

命令行中的重定向符号 介绍和使用 在Linux的命令行中&#xff0c;重定向符号用于将命令的输入或输出重定向到文件或设备。 常见的重定向符号&#xff1a; 1.“>“符号&#xff1a;将命令的标准输出重定向到指定文件中&#xff0c;并覆盖原有的内容。 2.”>>“符号&a…

《高效使用Redis》- 由面试题“Redis是否为单线程”引发的思考

由面试题“Redis是否为单线程”引发的思考 很多人都遇到过这么一道面试题&#xff1a;Redis是单线程还是多线程&#xff1f;这个问题既简单又复杂。说他简单是因为大多数人都知道Redis是单线程&#xff0c;说复杂是因为这个答案其实并不准确。 难道Redis不是单线程&#xff1f…

springboot项目单纯使用nacos注册中心功能

Spring Boot 项目完全可以单独使用 Nacos 作为注册中心。Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它支持服务的注册与发现&#xff0c;能够与 Spring Boot 应用无缝集成&#xff0c;为微服务架构提供了强大的支持。 在使用 Nacos 作为注册中…

#QT(串口助手-界面)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a;编写串口助手 3.记录 接收框:Plain Text Edit 属性选择&#xff1a;Combo Box 发送框:Line Edit 广告&#xff1a;Group Box &#xff08;1&#xff09;仿照现有串口助手设计UI界面 &#xff08;2&#xff09;此时串口助手大…

从0搭建Azure DevOps Server

Windows虚拟机搭建DevOps 服务器 背景资源准备安装软件需求流程版本兼容性安装SQL ServerSSMS安装visual StudioAzure DevOps Server测试本地访问端口更改及外界访问 背景 搭建一台Azure DevOps Server 供我们运维项目开发&#xff0c;现在DevOps运维已成为一个主流&#xff0…

【金三银四】每日一点面试题(Java--JVM篇)

1、说一下 JVM 的主要组成部分及其作用&#xff1f; JVM&#xff08;Java虚拟机&#xff09;是Java程序运行的核心组件&#xff0c;它负责将Java字节码翻译成底层操作系统能够执行的指令。JVM由以下几个主要组成部分构成&#xff1a; 类加载器&#xff08;Class Loader&#…

117.移除链表元素(力扣)

题目描述 代码解决 class Solution { public:ListNode* removeElements(ListNode* head, int val) {//删除头节点while(head!NULL&&head->valval){ListNode*tmphead;headhead->next;delete tmp;}//删除非头节点ListNode*curhead;while(cur!NULL&&cur-&g…

【python】python用户管理系统[简易版](源码+报告)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

End-to-End Weakly-Supervised SemanticSegmentation with Transformers

摘要 弱监督语义分割&#xff08;WSSS&#xff09;使用图像级标签是一项重要且具有挑战性的任务。由于高训练效率&#xff0c;端到端的WSSS解决方案受到社区越来越多的关注。然而&#xff0c;当前的方法主要基于卷积神经网络&#xff0c;并未正确地探索全局信息&#xff0c;因…

SwiftUI 在 App 中弹出全局消息横幅(下)

功能需求 在 SwiftUI 开发的 App 界面中,有时我们需要在全局层面向用户展示一些消息: 如上图所示:我们弹出的全局消息横幅位于所有视图之上,这意味这它不会被任何东西所遮挡;而且用户可以点击该横幅关闭它。这是怎么做到的呢? 在本篇博文中,您将学到以下内容 功能需求…

靶机渗透之Misdirection

Name: Misdirection: 1Date release: 24 Sep 2019Author: FalconSpySeries: MisdirectionDownload (Mirror): https://download.vulnhub.com/misdirection/Misdirection.zip 对于vulnhub中的靶机&#xff0c;我们都需先下载镜像&#xff0c;然后导入VM&#xff0c;并将网络连接…