加载中...

MSTP协议

一、MSTP(多生成树协议)简介

1.1 MSTP(多生成树协议)使用场景

MSTP(Multiple Spanning Tree Protocol,IEEE 802.1s), 基于 RSTP 的多实例扩展协议,通过划分多个生成树实例(MSTI)实现 VLAN 与生成树的灵活映射,在保留 RSTP 快速收敛特性的基础上,支持 多拓扑负载均衡资源优化

二、MSTP(多生成树协议)结构

2.1 MSTP帧格式

二层通过802.3帧进行封装的关于目的组播01:80:c2:00:00:00,配置了生成树协议的交换机都会接受并处理。

2.1.1 MST BPDU 帧格式

MSTP有专用的BPDU :RSTP/MSTP BPDU ,没有Config BPDU ,每个交换机都可以产生RSTP/MSTP bpdu

对比RST BPDU,增加了Version 3的后续字段

image-20250306022949441

字段 长度 说明
Protocol Identifier 2字节 协议ID=“0”。
Protocol Version Identifier 1字节 协议版本标识符,STP为0x00,RSTP为0x02,MSTP为0x03。
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)
Flags 1字节 标记域。对于STP:第一个bit(左边、高位bit)表示“TCA(拓扑改变响应)”,最后一个bit(右边、低位bit)表示“TC(拓扑改变)”,其他字段预留。
对于RSTP和MSTP:Bit7:TCA (Topology Change Acknowledgement)
Bit6:Agreement
Bit5:Forwarding
Bit4:Learning
Bit3和Bit2:端口角色00:未知01(低位为1高位为0):Alternate / Backup10(低位为0高位为1):根端口11:指定端口
Bit1:Proposal
Bit0:TC (Topology Change)
选路原则
Root Identifier(RID) 8字节 网桥ID都是8个字节
Priority 2字节 默认32768
Mac地址 6字节
Root Path Cost(RPC) 4字节 根路径开销,本端口累计到根桥的开销。
Bridge Identifier (BID) 8字节 发送者BID,本交换机的Bridge ID。
Port Identifier(PID) 2字节 发送端口PID,发送该BPDU的端口ID。
时间参数
Message Age 2字节 该BPDU的消息年龄,以秒为单位。
Max Age 2字节 消息老化年龄,以秒为单位,超时则认为到根交换机的链路故障。
Hello Time 2字节 发送两个相邻BPDU间的时间间隔,以秒为单位。
Forward Delay 2字节 控制Listening和Learning状态的持续时间,以秒为单位。
新增字段 长度 说明
version 3 Length 2字节 Version3 BPDU的长度,只在MSTP的BPDU中出现。
MST Config ID Format Selector 1字节 固定为0,只在MSTP的BPDU中出现。
MST Config Name 32字节 “域名”,字符串格式,只在MSTP的BPDU中出现。
MST Config reversion 2字节 非负整数,只在MSTP的BPDU中出现。
MST Config Digest 16字节 利用HMAC-MD5算法将域中VLAN和实例的映射关系加密成16字节的摘要,只在MSTP的BPDU中出现。
CIST Internal Root Path Cost 4字节 CIST内部路径开销,指从本端口到IST Master交换机的累计路径开销,只在MSTP的BPDU中出现。CIST内部路径开销根据链路带宽计算。
CIST Bridge Identifier 8字节 CIST的指定交换机ID,只在MSTP的BPDU中出现。
CIST Remaining Hops 1字节 BPDU报文在CIST中的剩余跳数,只在MSTP的BPDU中出现。
MSTI Configuration Messages (may be absent) n×16字节 MSTI配置信息,只在MSTP的BPDU中出现。每个MSTI的配置信息占16 bytes,如果有n个MSTI就占用n×16bytes。
决定了域内的IST中不同的MSTI的选举
单个MSTI Configuration Messages的字段说明如下
img
MSTI Flags:MSTI标志
MSTI Regional Root Identifier:MSTI域根交换机ID
MSTI Internal Root Path Cost:MSTI内部路径开销指从本端口到MSTI域根交换机的累计路径开销MSTI内部路径开销根据链路带宽计算。
MSTI Bridge Priority:本交换机在MSTI中的指定交换机的优先级。
MSTI Port Priority:本交换机在MSTI中的指定端口的优先级。
MSTI Remaining Hops:BPDU报文在MSTI中的剩余跳数。

三、MSTP(多生成树协议)机制

3.1 MSTP(多生成树协议)术语

image-20250306025223567

​ 图3.1 MSTP 示例

3.1.1 MST域(MST Region)

region-configuration 行政区域

1. region-name MST域的域名
2. instance 和 vlan的映射关系
3. Revision-level MST域的修订等级

如果上述三个一样,则在属于同一个行政区域,这个只属于管理性质(主观可修改),不起技术决定作用

3.1.2 MSTI (MultIPle Spanning Tree Instance)多实例生成树

图中每个域中的不同映射的树。

image-20250306025520748

但是作为MSTI0,无关于映射的整体,是整个IST,即MSTI0 = IST

3.1.3 IST (Internal stp) 内部生成树

内部生成树,一个域中有且仅有一个,图3.1中有四个IST

也是特殊的 Instance 0 即 MSTI0

3.1.4 CST (Commoin Spanning Tree)公共生成树

连接各个域的树,图中黑线的部分

image-20250306025913340

3.1.5 CIST (Common and Internal Spanning Tree) 公共和内部生成树

连接CST与各个域中的IST构成的大树,整个图的生成树与自己的MSTI结合

3.1.6 总根

CIST的根,Instance0的根

3.1.7 域根

MSTI的根 注意每个域的IST中分别有不同的域根,图中的A,B,C都是不同的域根

image-20250306031813739

3.1.8 特殊域根

MASTER BRIDGE (MSTI0 / IST ROOT)

在MST域中IST生成树中距离总根(CIST Root)最近的交换设备是IST域根,即IST ROOT

这个根必定是这个非根域的instance0的Root

可以说是每个非根域的MSTI0

[!WARNING]

其实根据3.1.8 可以推算出在单域场景下 CIST = IST = MSTI0

3.2 MSTP(多生成树协议)选举流程

image-20250306034458372

CIST 选举分为

ROOT 选举 1

IST ROOT/Master Bridge 选举 234567 在Root Path Cost相同时 就是RSTP五部曲了

域内选举时MSTI信息是MST BPDU中的Extension字段的MSTID中携带,原理同RSTP

3.2.1 选举举例

image-20250306032738138

9台交换机的根据MST 报文的 Root Identifier 属性选举总根 id选举总根 ,这个区域叫总根域

image-20250306033041823

其余通过Root Path Cost 只计算域间的cost来选举 Master Bridge(只有距离总根域的最近交换机选举为特殊域根 ,必然是每个非根域的MSTI0,IST ROOT),如果通过Root Path Cost选举不出即通过上图234567进行选举。

内部的不同MSTIx根据MSTIx的报文字段进行类似于RSTP的选举

image-20250306033352491

红线形成CIST的路径(CST和各个域的Instance 0的集合),负责了跨域的公共部分,

图中不同的域内的MSTI,有自己的域根,比如其余颜色root。

实际上来说,这时非主根域的IST的域根就是Master Bridge,负责出口域内的bpdu

posted @ 2025-03-18 19:13  江寒雨  阅读(823)  评论(0)    收藏  举报