设为首页收藏本站language 语言切换
查看: 3640|回复: 9
收起左侧

[分享] 多生成树MSTP原理与配置详解

[复制链接]
 成长值: 64645
发表于 2021-10-9 15:11:24 | 显示全部楼层 |阅读模式
前言
RSTP(Rapid Spanning Tree Protocol)在STP基础上进行了改进,实现了网络拓扑快速收敛。但RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量,造成带宽浪费,还有可能造成部分VLAN的报文无法转发。为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1S标准定义了MSTP(Multiple Spanning Tree Protocol)。MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MSTP基本概念MSTP的网络结构
0dac29a52a944ec35a740f32b5eb731b.png
如上图所示,MSTP网络中包含1个或多个MST域(MST Region),每个MST Region中包含一个或多个MSTI。组成MSTI的是运行STP/RSTP/MSTP的设备,MSTI是所有运行STP/RSTP/MSTP的设备经MSTP协议计算后形成的树状网络。
MSTP域(MST Region)
MST域是多生成树域(Multiple Spanning Tree Region),由交换网络中的多台设备以及它们之间的网段所构成。同一个MST域的设备具有下列特点:
1、都启动了MSTP。
2、具有相同的域名。
3、具有相同的VLAN到生成树实例映射配置。
4、具有相同的MSTP修订级别配置。
一个局域网内可以存在多个MST域,一个域内可以有多个MSTI(多生成树实例),一个MSTI映射一个多个VLAN。而一个VLAN只能映射一个MSTI。
MSTI(MST instance)
89618aa034e1e6c4bd017c308178d714.png
MST实例,代表了一个MST域内运行MSTP设备与对应的VLAN的映射关系,一个MST域内可以有多个MSTI,不同的MSTI映射不同的多个VLAN。如上图所示MST域4里有4个MST实例,不同的实例有不同的生成树结构对应不同的VLAN。
VLAN映射表
8d381b4ddcc85f19021e447b1490e965.png
VLAN映射表描述了VLAN和MSTI之间的映射关系。如图2所示,MST Region4中,VLAN1映射到MSTI1,VLAN2映射到MSTI2,其余VLAN映射到MSTI3。如上图所示,MST域4里VLAN1映射了MSTI1,VLAN2映射了MSTI2,其他的VLAN映射MSTI3,这样VLAN1的流量就会通过MSTI1形成的生成树进行状态,VLAN2就会通过MST2形成的生成树进行转发,以此类推。
CST(Common Spanning Tree)
a50840ae83187dbc15e1e402995c3429.png
公共生成树CST,指的是所有运行了MSTP的MST域之间形成的生成树,将一个MST域当做一个节点,通过STP或RSTP算法生成树状结构,如上图所示,A0,B0,C0,D0各是一个MST域,将一个域看做一个节点在他们之间构建生成树结构,而每个域内部也通过STP/RSTP生成树状结构,这样整个网络都形成了一个无环的结构。且根据不同的VLAN有不同的转发路径。
IST(Internal Spanning Tree)
内部生成树IST(Internal Spanning Tree)是各MST域内的一棵生成树。IST是一个特殊的MSTI,MSTI的ID为0,通常称为MSTI0。只有MSTI0才能接受其他域的数据。
CIST
5cb793760f61099aba1330fe61ba4979.png
即IST+CST,公共生成树+内部生成树共同构建了一个局域网内的完整的生成树结构,就如上图所示,IST+CST所构建的树状结构,就是一个完整的CIST并且是单生成树。
SST(Single Spanning Tree)
构成单生成树SST(Single Spanning Tree)有两种情况:
1、运行STP或RSTP的设备只能属于一个生成树。
2、MST域中只有一个设备,这个设备构成单生成树。
如上图CIST中的B0区域内的设备形成的就是SST。
MSTP的端口角色
端口角色
说明

根端口在非根桥上,离根桥最近的端口是本设备的根端口。根设备没有根端口。根端口负责向树根方向转发数据。
指定端口对一台设备而言,它的指定端口是向下游设备转发BPDU报文的端口。
Alternate端口从配置BPDU报文发送角度来看,Alternate端口就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口。从用户流量角度来看,Alternate端口提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口。
Backup端口从配置BPDU报文发送角度来看,Backup端口就是由于学习到自己发送的配置BPDU报文而阻塞的端口。从用户流量角度来看,Backup端口作为指定端口的备份,提供了另外一条从根节点到叶节点的备份通路。
Master端口Master端口是MST域和CIST总根相连的所有路径中最短路径上的端口。Master端口是域中的报文去往总根的必经之路。Master端口是特殊域边缘端口,Master端口在IST/CIST上的角色是Root Port,在其它各实例上的角色都是Master端口。
域边缘端口域边缘端口是指位于MST域的边缘并连接其它MST域或SST的端口。进行MSTP计算时,域边缘端口在MSTI上的角色和CIST实例的角色保持一致。即如果边缘端口在CIST实例上的角色是Master端口(连接域到总根的端口),则它在域内所有MSTI上的角色也是Master端口。
边缘端口如果指定端口位于整个域的边缘,不再与任何设备连接,这种端口叫做边缘端口。边缘端口一般与用户终端设备直接连接。端口使能MSTP功能后,会默认启用边缘端口自动探测功能,当端口在秒的时间内收不到BPDU报文,自动将端口设置为边缘端口,否则设置为非边缘端口。
注:MSTP的端口状态与RSTP一一致
MSTP的拓扑计算
MSTI和CIST(Common and Internal Spanning Tree)都是根据优先级向量来计算的,这些优先级向量信息都包含在MST BPDU(Bridge Protocol Data Unit)中。各交换设备互相交换MST BPDU来生成MSTI和CIST。
优先级向量
参与CIST计算的优先级向量:
{ 根交换设备ID,外部路径开销,域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID }
参与MSTI计算的优先级向量: { 域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID }
括号中的优先级从左到右依次递减
向量说明
向量名
说明

根交换设备ID根交换设备ID用于选择CIST中的根交换设备。根交换设备ID = Priority(16bits) + MAC(48bits)。
外部路径开销(ERPC)从CIST的域根到达总根的路径开销。MST域内所有交换设备上保存的外部路径开销相同。若CIST根交换设备在域中,则域内所有交换设备上保存的外部路径开销为0。
域根ID域根ID用于选择MSTI中的域根。域根ID = Priority(16bits) + MAC(48bits)。
内部路径开销(IRPC)本桥到达域根的路径开销。域边缘端口保存的内部路径开销大于非域边缘端口保存的内部路径开销。
指定交换设备IDCIST或MSTI实例的指定交换设备是本桥通往域根的最邻近的上游桥。如果本桥就是总根或域根,则指定交换设备为自己。
指定端口ID指定交换设备上同本设备上根端口相连的端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。
接收端口ID接收到BPDU报文的端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。比较原则
优先级向量比较原则如下。
  • 首先,比较根交换设备ID。
  • 如果根交换设备ID相同,再比较外部路径开销。
  • 如果外部路径开销相同,再比较域根ID。
  • 如果域根ID仍然相同,再比较内部路径开销。
  • 如果内部路径仍然相同,再比较指定交换设备ID。
  • 如果指定交换设备ID仍然相同,再比较指定端口ID。
  • 如果指定端口ID还相同,再比较接收端口ID。
    如果端口接收到的BPDU内包含的配置消息优于端口上保存的配置消息,则端口上原来保存的配置消息被新收到的配置消息替代。端口同时更新交换设备保存的全局配置消息。反之,新收到的BPDU被丢弃。
CIST的计算
经过比较配置消息后,在整个网络中选择一个优先级最高的交换设备作为CIST的树根。在每个MST域内MSTP通过计算生成IST;同时MSTP将每个MST域作为单台交换设备对待,通过计算在MST域间生成CST。CST和IST构成了整个交换设备网络的CIST。
MSTI的计算
在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。每棵生成树独立进行计算,计算过程与STP计算生成树的过程类似
MSTI的特点:
1、每个MSTI独立计算自己的生成树,互不干扰。
2、每个MSTI的生成树计算方法与STP基本相同。
3、每个MSTI的生成树可以有不同的根,不同的拓扑。
4、每个MSTI在自己的生成树内发送BPDU。
5、每个MSTI的拓扑通过命令配置决定。
6、每个端口在不同MSTI上的生成树参数可以不同。
7、每个端口在不同MSTI上的角色、状态可以不同。
MSTP的快速收敛机制
MSTP支持普通方式和增强方式的P/A机制,普通方式的P/A机制与RSTP相同,增强P/A机制的工作原理如下图所示:
7409f74c5942eb4bb1893ecf5d9c14cd.png
上游设备发送P置位的BPDU请求进行P/A协商,下游设备收到好比较优先级发现比自己的要优,则进入同步状态阻塞其他非边缘端口并将接收上游BPDU的端口改为RP,但是不会直接进入forwarding状态,这时候上游设备会继续发送一个A置位的BPDU报文,下游设备收到后才将RP转为forwarding状态,而后下游设备回复A置位的BPDU,上游设备收到后,将端口状态变为forwarding。
缺省情况下,华为设备使用增强的快速迁移机制。如果华为设备和其他厂商的设备进行互通,而其他厂商的设备P/A机制使用普通的快速迁移机制,此时,可在华为设备上通过命令stp no-agreement-check设置P/A机制为普通的快速迁移机制,从而实现华为设备和其他厂商的设备进行互通。
MSTP的配置
9e2638b9230c96dd3e8829f298f9f596.png
拓扑如上图所示,PC1-PC4:192.168.1.1-192.168.1.4,三台交换机互连,SW1下有2台设备分属于vlan 10 20,SW2上有vlan 10 用户,SW3上又vlan 20用户,希望PC1去往PC3时走SW1-SW2-PC3,而PC2去往PC4时走SW1-SW3-PC4,然后当任意一条链路故障时,就走备用链路。相关配置如下:
LSW1:
vlan batch 10 20
stp region-configuration
region-name 1
instance 1 vlan 10
instance 2 vlan 20
active region-configuration
interface Ethernet0/0/1
port link-type access
port default vlan 10
stp edged-port enable
interface Ethernet0/0/2
port link-type access
port default vlan 20
stp edged-port enable
interface Ethernet0/0/3
port link-type trunk
port trunk allow-pass vlan 10 20
stp instance 2 cost 2000000
interface Ethernet0/0/4
port link-type trunk
port trunk allow-pass vlan 10 20
stp instance 1 cost 2000000
LSW2:
vlan batch 10 20
stp region-configuration
region-name 1
instance 1 vlan 10
instance 2 vlan 20
active region-configuration
interface Ethernet0/0/1
port link-type access
port default vlan 10
stp edged-port enable
interface Ethernet0/0/2
port link-type trunk
port trunk allow-pass vlan 10 20
interface Ethernet0/0/3
port link-type trunk
port trunk allow-pass vlan 2 to 4094
LSW3:
vlan batch 10 20
stp region-configuration
region-name 1
instance 1 vlan 10
instance 2 vlan 20
active region-configuration
interface Ethernet0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20
interface Ethernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
interface Ethernet0/0/3
port link-type access
port default vlan 20
stp edged-port enable
配置完后,在LSW1上查看dis stp brief:
fd67c78db53d60b0fe356d02a02dd7a5.png
在实例1中,LSW1的E0/0/4接口被阻塞,在实例2中,LSW1的E0/0/3接口被阻塞。
因此我们可以画出MSTI图来:
8be89d4f3f5061c0b7e714ab56aea603.png
2bafe44e643be2187740cfa881f2276d.png
然后我们来测试PC1到PC3的连通性:
9c92853e24f4111c5ec8939559bf2f44.png
然后shutdown LSW1上的E0/0/3接口才测试连通性:
0448133457e77dcd9fc2db01005b20ba.png
7d0b48415d0a9b5829ddaf7aed996c8a.png

发表于 2022-9-13 12:01:35 | 显示全部楼层
谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!
8# 2022-9-13 12:01:35 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2022-10-3 19:00:42 | 显示全部楼层

感谢楼主的分享
9# 2022-10-3 19:00:42 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-26 10:32 , Processed in 0.090656 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表