MSTP

MSTP

MSTP

多生成树协议(Multiple Spanning Tree Protocol,MSTP)

一些概念

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

是通过STP或RSTP协议计算生成的,连接一个交换网络内所有交换设备的单生成树。

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

1、用于连接交换网络内所有MST域的一棵单生成树。
2、将每个MST域视为一个独立的节点(网桥),CST就是这些节点通过STP/RSTP计算生成的一棵树。

三、MST域(Multiple Spanning Tree Region,MST Region)

一个局域网内可包含多个MST域,各MST域之间在物理上直接或间接相连。
条件:
1、具有相同的域名。
2、具有相同的VLAN到生成树实例映射配置。
3、具有相同的MSTP修订级别配置。

四、内部生成树(Internal Spanning Tree,IST)

是各MST域内维护的生成树,只在各MST内有意义。

五、多生成树实例(Multiple Spanning Tree Instance,MSTI)

内部生成树IST维护的每棵生成树都叫做一个多生成树实例。

六、总根(Common and Internal Spanning Tree,CIST)

是CIST的总根桥。

七、域根(Regional Root)

1、分为IST域根和MSTI域根。
2、一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI(MSTI域根是每个多生成树实例的树根)。

八、主桥(Master Bridge)

是内部生成数的主桥,即域内距离总根最近的交换设备。

九、端口角色

1、端口角色与RSTP相同,分为根端口、指定端口、Alternate端口、Backup端口和边缘端口。
2、除边缘端口外,其他端口均参与MSTP的计算。 3、同一端口在不同生成树实例MSTI中可担任不同角色。

MSTP中与选举有关的参数:

比较顺序 向量名 说明
1 根交换设备ID 用于选举CIST中的总根桥,根交换设备ID = Priority(16bits) + MAC(48bits)。其中Priority为MSTI0的优先级。
2 外部路径开销(ERPC) 从CIST的域根到达总根的路径开销。每个MST域内所有交换设备上保存的外部路径开销相同,若CIST根交换设备在域中,则域内所有交换设备上保存的外部路径开销为0。
3 域根ID 用于选举MSTI中的域根桥,域根ID = Priority(16bits) + MAC(48bits)。其中Priority为MSTI0的优先级。
4 内部路径开销(IRPC) 本网桥到达域根的路径开销。域边缘端口保存的内部路径开销大于非域边缘端口保存的内部路径开销。
5 指定交换设备ID CIST或MSTI实例的指定交换设备是本网桥通往本域根的最邻近的上游桥,如果本桥就是总根或域根,则指定交换设备为自己。
6 指定端口ID 即指定端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。
7 接收端口ID 可以接收到BPDU报文的端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。

CIST中端口角色的选举过程:

优胜方为根端口,次优为备份端口,其他为指定端口或阻塞端口。

1、比较CIST的总根ID,越小越优。
2、比较CIST到达总根的ERPC,越小越优。
3、比较CIST域根的BID,越小越优。
4、比较CIST到达域根的IPRC,越小越优。
5、比较CIST中BPDU报文发送者的BID,越小越优。
6、比较CIST中BPDU报文发送者的PID,越小越优。
7、比较CIST中BPDU报文接收者的PID,越小越优。

MSTI的选举:

在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。每棵生成树独立进行选举,过程与STP选举生成树的过程类似。

特点:
1、每个MSTI独立计算自己的生成树,互不干扰。
2、每个MSTI的生成树计算方法与STP基本相同。
3、每个MSTI的生成树可以有不同的根,不同的拓扑。
4、每个MSTI在自己的生成树内发送BPDU。
5、每个MSTI的拓扑通过命令配置决定。
6、每个端口在不同MSTI上的生成树参数可以不同。
7、每个端口在不同MSTI上的角色、状态可以不同。
8、在MST域内,沿着其对应的MSTI转发。
9、在MST域间,沿着CST转发。

MSTP的拓扑变化处理:

当一个非边缘端口迁移到Forwarding状态时触发拓扑变化机制(RST BPDU泛洪),处理过程类似RSTP。

1、为本网桥所有非边缘指定端口启动一个TC While Timer(时长为两倍的Hello Time)。
2、在TC While Timer内本网桥清空所有端口上学习到的所有MAC地址。
3、本网桥的非边缘端口向外发送RST BPDU,其中TC置位直到TC While Timer超时。
4、其他交换设备接收到RST BPDU后,清空所有端口学习到的所有MAC地址。
5、其他交换设备对自己所有非边缘指定端口和根端口启动TC While Timer(自己收到RST BPDU的端口除外)。
6、网络内所有网桥重复这一过程。

MSTP中的增强PA协商:

华为设备默认使用增强型PA协商,可手动设置使用普通P/A协商 P/A协商只会存在于上游是DP(指定端口),下游是RP(根端口)的情况下。
正常的RSTP时间为Listening(LSN)15s+Learning(LRN)15s=30s,P/A协商大约历时8-10s(但因为会重置MAC地址表,需要一个包的arp确认路径,因此ping会丢5-6个包,共计10-12s)。
例如从Root(上游)-SWA(下游)新增了一条线路。
1、上游设备向下游发出P置位BPDU发起P/A协商(P置位)。
2、下游设备收到P置位BPDU后会将收到P/A协商的端口设置为根端口并将自己除Edge Port以外所有端口变为Discarding状态阻塞掉(即开始端口sync过程)。
3、上游设备继续下游RP发送A置位的P/A协商。
4、下游(RP)收到上游(DP)发送的A置位P/A协商后将自己的RP端口切换为Forwarding状态,并回复上游(DP)A置位P/A协商报文。
5、上游(DP)收到下游(RP)发送的A置位P/A协商后将自己的DP端口切换为Forwarding状态,完成P/A协商。
6、下游交换机继续向自己其他处于Discarding状态的DP端口发起P/A协商。
备注:如果下游设备发现接收到的BPDU没其他某个接口(如现存的RP接口)收到的BPDU优先级高,则下游只会回复正常的BPDU,而不去理会P/A协商。

BPDU

BPDU(网桥协议数据单元,BridgeProtocol Data Unit),目的MAC为组播地址01-80-C2-00-00-00。

MSTP中的BPDU参数含义:

序号 字段 名称 备注
1 Protocol Identifier 协议标识符 用于标识不同路由协议,其中Spanning tree为0X0000。
2 Protocol Version Identifier 协议版本标识符 用于标识不同生成树协议,其中STP为0,RSTP为2,MSTP为3。
3 BPDU Type BPDU类型 1、STP的配置BPDU(Configuration BPDU):类型0x00,版本0。 2、MSTP的TCN BPDU(Topology Change Notification BPDU):类型0x80,版本0。 3、RSTP的RST BPDU(Rapid Spanning-Tree BPDU):类型0x02,版本2。 4、MSTP的MST BPDU(Multiple Spanning-Tree BPDU):类型0x02,版本3。
4 CIST Flags CIST标志字段
5 CIST Root Identifier CIST总根桥ID CIST的总根交换机ID
6 CIST External Path Cost CIST外部路径开销值 从本交换机所属的MST域到CIST根交换机的累计路径开销,根据链路带宽计算。
7 CIST Regional Root Identifier CIST域根桥ID CIST的域根交换机ID,即IST Master的ID, 如果总根在该域内,那么域根桥ID就是总根桥ID。
8 CIST Port Identifier CIST端口识别符 本端口在IST中的端口ID。
9 Message Age 生存周期 BPDU报文的生存期。
10 Max Age 最大生存时间 BPDU报文的最大生存期,超时则认为到根交换机的链路故障。
11 Hello Time Hello Time Hello定时器,缺省为2秒。
12 Forward Delay 转发延迟 默认为15秒。
13 Version 1 Length 版本1长度 Version1 BPDU的长度,值固定为0。
14 Version 3 Length 版本3长度 Version3 BPDU的长度,值固定为96。
15 MST Configuration Identifier MST配置标识 表示MST域的标签信息,只有四个字段完全相同并且互联的交换机,才从属于同一个域。 四个字段分别为: 1、配置标识符格式选择器(Configuration Identifier Format Selector):固定为0。 2、域名(Configuration Name):32字节长字符串。 3、修订号(Revision Level)Revision Level:2字节非负整数。 4、VLAN映射关系(Configuration Digest):利用HMAC-MD5算法将域中VLAN和实例的映射关系加密成16字节的摘要。
16 CIST Internal Root Path Cost CIST内部路径开销值 指从本端口到IST Master交换机的累计路径开销,根据链路带宽计算。
17 CIST Bridge Identifier CIST指定交换机ID 该设备的CIST桥ID。
18 CIST Remaining Hops CIST剩余跳数 BPDU报文在CIST中的剩余跳数。
19 MSTI Configuration Messages (may be absent) MSTI配置信息 大小为n×16bytes,n为MSTI的数量。 单个MSTI Configuration Messages的字段说明如下: MSTI Flags:MSTI标志。 MSTI Regional Root Identifier:MSTI域根交换机ID。 MSTI Internal Root Path Cost:MSTI内部路径开销指从本端口到MSTI域根交换机的累计路径开销,根据链路带宽计算。 MSTI Bridge Priority:本交换机在MSTI中的指定交换机的优先级。 MSTI Port Priority:本交换机在MSTI中的指定端口的优先级。 MSTI Remaining Hops:BPDU报文在MSTI中的剩余跳数。