计算机网络-MSTP概述

devtools/2024/10/25 5:08:27/

一、RSTP/STP的缺陷与不足

前面我们学习了RSTP对于STP的一些优化与快速收敛机制。但在划分VLAN的网络中运行RSTP/STP,局域网内所有的VLAN共享一棵生成树,被阻塞后的链路将不承载任何流量,无法在VLAN间实现数据流量的负载均衡,导致链路带宽利用率、设备资源利用率较低。

示例1:

RSTP/STP不足
RSTP/STP不足

在网络中存在两个VLAN,网关分别在不同设备上,二层网络通过RSTP进行互联,端口配置Trunk模式允许VLAN 10 20通过,SW3作为根桥会导致PC和PC2都流经根桥,SW5的预备端口被逻辑关闭,PC1的流量:SW5-->SW3-->AR1;PC2的流量:SW5-->SW3-->SW4-->AR2,出现次优路径。

优点:RSTP优化了收敛机制与BPDU保护功能,实现快速收敛。

不足:RSTP实际上与VLAN无关,在单个生成树情况下会导致链路闲置以及次优路径

STP/RSTP维护单个生成树,设备互联必定会逻辑关闭其中一个端口,导致流量从另外路径流出,而且如图导致次优路径。

二、多生成树协议概述

为了弥补RSTP/STP的缺陷,IEEE于2002年发布的802.1S标准定义了MSTP(Multiple Spanning Tree Protocol,多生成树协议)。MSTP兼容STP和RSTP,通过建立多棵无环路的树,解决广播风暴并实现冗余备份,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡

MSTP可以将一个或多个VLAN映射到一个Instance(实例),再基于Instance计算生成树,映射到同一个Instance的VLAN共享同一棵生成树。

MSTP实例
MSTP实例

MSTP计算方式与RSTP/STP类似,基于多实例生成树基于VLAN映射,因为日常使用VLAN技术较广泛,实现不同VLAN路径不同,冗余备份和负载分担。

三、MSTP基本概念

3.1 MST Region

MSTP网络层次:MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。

MST Region(Multiple Spanning Tree Region,多生成树域),也可简称MST域:

  • 由交换网络中的多台交换设备以及它们之间的网段所构成。
  • 一个局域网可以存在多个MST域,各MST域之间在物理上直接或间接相连。用户可以通过MSTP配置命令把多台交换设备划分在同一个MST域内。
  • MSTP网络中包含1个或多个MST域,每个MST域中包含一个或多个多生成树实例。
MST Region
MST Region

同一个MST域的设备具有下列特点:

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

如果确定都使用MSTP,则二层交换网络都启用MSTP协议,则形成了一个MST域。

3.2 MSTI

MSTI(Multiple Spanning Tree Instance,多生成树实例):一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI。MSTI使用Instance ID标识,华为设备取值为0~4094。

VLAN映射表:MST域的属性,描述了VLAN和MSTI之间的映射关系。如图所示的MST Region 4的VLAN映射有:

  • VLAN1映射到MSTI 1
  • VLAN2映射到MSTI 2
  • 其余VLAN映射到MSTI 3
MSTI
MSTI

在一个MST域内可以创建多个实例,不同实例映射到不同VLAN,就是VLAN流量可以实现负载均衡等功能。

3.3 CST

CST(Common Spanning Tree,公共生成树):

  • 是连接交换网络内所有MST域的一棵生成树。
  • 如果把每个MST域看作是一个节点,CST就是这些节点通过生成树协议计算生成的一棵生成树。
  • 如图深蓝色粗线条连接各个域构成CST。
CST
CST
CST1
CST1

多个MST域的核心主干网络构成。

3.4 IST

IST(Internal Spanning Tree,内部生成树) 是各MST域内的一棵生成树。IST是一个特殊的MSTI,MSTI的Instance ID为0。如图所示的MST Region 4,黑色细线条在域中连接该域的所有交换设备构成IST。

IST
IST
IST1
IST1

IST就是各个域内的内部生成树,不包括核心互联的链路。

3.5 CIST

CIST(Common and Internal Spanning Tree,公共和内部生成树),通过生成树协议计算生成的,连接一个交换网络内所有交换设备的单生成树。如图所示,所有MST域的IST加上CST就构成一棵完整的生成树,即CIST。

CIST
CIST
CIST1
CIST1

就是CST+IST构成整个MST域内的生成树连接。

3.6 SST

SST(Single Spanning Tree,单生成树),运行生成树协议的交换设备只能属于一个生成树。MST域中只有一个交换设备,这个交换设备构成单生成树。如图所示的MST Region 3,该域中的唯一的交换设备构成SST。

SST
SST

一个MST域里只有一台交换机构成MSTP网络。

3.7 总根,域根和主桥

根桥
根桥

因为MSTP是基于多域多实例,因此有总根、区域根桥、主桥。

总根(CIST Root)是CIST的根桥,如图中SW1。

域根(Regional Root):

  • 分为IST域根和MSTI域根。
  • IST域根,在MST域中IST生成树中距离总根最近的交换设备是IST域根,如图中SW2、SW3、SW4。
  • MSTI域根是每个多生成树实例的树根。

主桥(Master Bridge)是IST Master,它是域内距离总根最近的交换设备,如图中SW1、SW2、SW3、SW4 。如果总根在MST域中,则总根为该域的主桥。

简单就是在整个MST域有个总根,在每个MSTI域里面也有域内的根和主桥,各个域桥连接到总根桥。

角色说明
MST域交换网络被划分成多个域,一个MST域内可以包含一台或多台交换机,同属于一个MST域的交换机必须配置相同的域名、相同的修订级别、以及相同的VLAN映射表
MSTI基于Instance的生成树
VLAN映射表VLAN和MSTI之间的映射关系
CST公共生成树,连接所有MST域的一棵生成树
IST内部生成树,MST域内Instance ID为0的一棵生成树
CIST公共和内部生成树,连接一个交换网络内所有交换设备的生成树
SST单生成树,MST域内只有一台交换设备,且该设备只属于一棵生成树
总根CIST的根桥
IST域根MST域中,IST距离总根最近的交换设备
MSTI域根MSTI的根桥
主桥距离总根最近的交换设备,包括:总根和IST域根

总结:STP和RSTP都只会生成一颗生成树,就可能出现链路浪费和次优路径。为了解决这些问题出现了多实例生成树,MSTP基于域、实例、VLAN映射来实现,能够实现VLAN流量的负载分担和提高链路可用性。

本文由 mdnice 多平台发布


http://www.ppmy.cn/devtools/128597.html

相关文章

JavaScript解析JSON对象及JSON字符串

1、问题概述? JavaScript解析JSON对象是常用功能之一。 此处我们要明确JSON对象和JSON字符串的区别?否则会给我们的解析带来困扰。 主要实现如下功能: 1、JavaScript解析JSON字符串和JSON对象? 2、JavaScript解析JSON数组? 3、JavaSc…

python_学习2(仅为本人学习记录)

二、变量与字符串 1、变量的声明和赋值 a.变量在使用前必须要先赋值 b.删除变量,可以通过del语句删除。 a123 del a c.链式赋值 xy123 相当于 x123;y123 d.解包赋值 a,b,c1,2,3 相当于 a1 b2 c3 使用解包赋值给变量交换值:a,b3,4 a,bb,a 2、基本…

【golang】学习文档整理

Binding | Echo 传值时注意零值和传空的区别 需要validate require 和 设置指针配合使用 保证不同值的返回不同 不能客户端传0值被判断为空 测试时要空值零值去测试字段是否正确返回 返回错误是否符合预期

重修设计模式-行为型-访问者模式

重修设计模式-行为型-访问者模式 Allows for one or more operation to be applied to a set of objects at runtime, decoupling the operations from the object structure. 允许一个或者多个操作应用到一组对象上,解耦操作和对象本身。 访问者模式(Vi…

MATLAB中head函数用法

目录 语法 说明 示例 显示矩阵的前八行 显示表的前三行 返回表的前八行 head函数的功能是获取数组或表的顶行。 语法 head(A) head(A,k) B head(___) 说明 head(A) 在命令行窗口中显示数组、表或时间表 A 的前八行,但不存储值。 head(A,k) 显示 A 的前 k …

人工智能技术的应用前景及其对生活和工作方式的影响

人工智能技术的应用前景及其对生活和工作方式的影响 随着人工智能(AI)技术的迅猛发展,其在各个领域的应用正日益深入,深刻改变着我们的生活和工作方式。本文将系统地探讨人工智能的历史、现状、未来应用前景,以及其对个…

Dockerfile 中 Expose 命令的作用

Dockerfile 中 Expose 命令的作用 格式是&#xff1a;EXPOSE <端口1> [<端口2>...] 例如&#xff1a; EXPOSE 8080 8081 8082 特别注意&#xff1a; EXPOSE 指令是声明容器运行时提供服务的端口&#xff0c;请注意这只是一个声明&#xff0c;并没有实际作用&am…

前端使用xlsx和file-saver自定义导出excel表格,无需写页面直接导出数据。末尾有一个插件方式使用

建议把代码封装成一个函数&#xff0c;这样就不用每个页面都写了&#xff0c;直接调用就好了。 <template><div><h1>导出数据为 Excel</h1><button click"exportToExcel(dynamicData, [name, age, city], [姓名, 年龄, 城市],某某文件)"…