The IEEE Multiple Spanning Tree Protocol (MST) is in essence an extension of the Rapid Spanning Tree Protocol (RSTP). MST allows multiple spanning trees to coexist on the same bridged network. A group of VLANs can be mapped to its own independent instance of spanning tree, this allows for design flexibility and better resource utilizaton.
MST was originally defined in IEEE 802.1s, and it is based on Cisco’s Multiple Instances Spanning Tree Protocol (MSTIP). MST uses the same BPDU format as RSTP, therefore it is backward compatible with both STP and RSTP.
In order to understand MST, we must first define its components:
- MST Region: A group of Bridges with identical MST Configuration Identifiers
- Multiple Spanning Tree Instance(MSTI): Independent Spanning Tree topology defined within an MST Region
- MST Configuration Identifier: The MST region name, revision number, and VLAN to MSTI mappings
- Internal Spanning Tree(IST): Extends the CST inside an MST Region, the IST is referred to as MSTI 0. By default, all VLANs are mapped to MSTI 0. The IST is used to propagate STP topology information for all the MSTIs.
- Common and Internal Spanning Tree(CIST): Single overall spanning tree topology plus the ISTs from all regions.
- Common Spanning Tree(CST): Single overall spanning tree used to interconnect MST regions and to connect to RSTP/STP bridges. CST views an entire MST region as a virtual bridge.
MST uses the concept of a region to create and manage a subset of independent spanning tree topologies. A group of switches must have identical MST Configuration Identifiers in order to be in the same region. The MST Configuration Identifier includes a configuration digest used to identify switches within the same region; if two switches have matching configuration digest, then they must be in the same MST Region. All MST specific information (MST Configuration Identifier and MST instances) are carried as MST Extension fields within the classic RSTP BPDU.
MST Single Region
First, the MST needs to generate the CIST so that MST Regions can be created (remember MST inserts control information in the BPDUs). Once a root bridge has been elected for the CIST (using the same criteria as 802.1D), and the shortest path to the root has been determined, each MST region will then elect a CIST Regional Root. If an MST Region is not connecting to any other regions or STP/RSTP clusters, then the CIST Root will automatically become the CIST Regional Root. However, when multiple MST Regions are interconnected and the CIST Root resides in a different region, the CIST Regional Root becomes that one bridge with the best path to the CIST Root that doesn’t go through other bridges in the same MST Region.
Once the CIST Root and CIST Regional Root have been elected, each region will then elect a MSTI Regional Root for each configured MSTI, all switches within a Region will calculate the best path to each one of the MSTI Regional Roots.
Configuring 3 switches in the same MST Region
Three switches, two Cisco (Catalyst) and one Brocade (FastIron), are configured in the same MST Region named “ONE”, all inter-switch links are 802.1Q trunks:
- CISCO.SW1 is the root for MSTI 0
- BRCD.SW3 is the root for MSTI 1
- CISCO.SW2 is the root for MSTI 2
The STP topology for each MSTI will look like this:
Configuration for CISCO.SW1
CISCO.SW1(config)#vlan 12 CISCO.SW1(config)#vlan 13 CISCO.SW1(config)#vlan 254 CISCO.SW1(config)#interface FastEthernet0/1 CISCO.SW1(config-if)#switchport trunk encapsulation dot1q CISCO.SW1(config-if)#switchport mode trunk CISCO.SW1(config-if)#switchport nonegotiate CISCO.SW1(config)#interface FastEthernet0/24 CISCO.SW1(config-if)#switchport trunk encapsulation dot1q CISCO.SW1(config-if)#switchport mode trunk CISCO.SW1(config)#spanning-tree mst configuration CISCO.SW1(config-mst)#name ONE CISCO.SW1(config-mst)#revision 1 CISCO.SW1(config-mst)#instance 1 vlan 13 CISCO.SW1(config-mst)#instance 2 vlan 23 CISCO.SW1(config-mst)#exit CISCO.SW1(config)#spanning-tree mst 0 priority 4096 CISCO.SW1(config)#spanning-tree mode mst
Configuration for CISCO.SW2
CISCO.SW2(config)#vlan 12 CISCO.SW2(config)#vlan 13 CISCO.SW2(config)#vlan 254 CISCO.SW1(config)#interface FastEthernet0/1 CISCO.SW1(config-if)#switchport trunk encapsulation dot1q CISCO.SW1(config-if)#switchport mode trunk CISCO.SW1(config-if)#switchport nonegotiate CISCO.SW2(config)#spanning-tree mst configuration CISCO.SW2(config-mst)#name ONE CISCO.SW2(config-mst)#revision 1 CISCO.SW2(config-mst)#instance 1 vlan 13 CISCO.SW2(config-mst)#instance 2 vlan 23 CISCO.SW2(config-mst)#exit CISCO.SW2(config)#spanning-tree mst 2 priority 4096 CISCO.SW2(config)#spanning-tree mode mst
Configuration for BRCD.SW3
BRCD.SW.3(config)#vlan 13 by port BRCD.SW.3(config-vlan-13)#tagged ethernet 1 to 2 BRCD.SW.3(config)#vlan 23 by port BRCD.SW.3(config-vlan-23)#tagged ethernet 1 to 2 BRCD.SW.3(config)#vlan 254 by port BRCD.SW.3(config-vlan-254)#tagged ethernet 1 to 2 BRCD.SW.3(config)#mstp scope all BRCD.SW.3(config)#mstp name ONE BRCD.SW.3(config)#mstp revision 1 BRCD.SW.3(config)#mstp instance 1 vlan 13 BRCD.SW.3(config)#mstp instance 1 priority 4096 BRCD.SW.3(config)#mstp instance 2 vlan 23 BRCD.SW.3(config)#mstp start
MST Instance 0 on CISCO.SW1
CISCO.SW1#sho spanning-tree mst 0
##### MST0 vlans mapped: 1-12,14-22,24-4094
Bridge address 000a.f42b.e680 priority 4096 (4096 sysid 0)
Root this switch for the CIST
Operational hello time 2 , forward delay 15, max age 20, txholdcount 6
Configured hello time 2 , forward delay 15, max age 20, max hops 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 200000 128.1 P2p
Fa0/24 Desg FWD 200000 128.24 P2p
MST Instance 2 on CISCO.SW2
CISCO.SW.2#sho spanning-tree mst 2
##### MST2 vlans mapped: 23
Bridge address 000a.4114.7900 priority 4098 (4096 sysid 2)
Root this switch for MST2
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 200000 128.1 P2p
Fa0/24 Desg FWD 200000 128.24 P2p
MSTP Instance 1 on BRCD.SW3
BRCD.SW.3#show mstp 1 MSTP Instance 1 - VLANs: 13 ---------------------------------------------------------------------------- Bridge Max RegionalRoot IntPath Designated Root Root Identifier Hop Bridge Cost Bridge Port Hop hex cnt hex hex cnt 1001001bed545e80 20 1001001bed545e80 0 1001001bed545e80 Root 20 Port Pri Port PortPath Role State Designa- Designated Num Id Cost ted cost bridge 1 128 1 200000 DESIGNATE FORWARD 0 1001001bed545e80 2 128 2 200000 DESIGNATE FORWARD 0 1001001bed545e80
MST with multiple Regions and RSTP
An additional Catalyst switch, CISCO.SW3, and an Ruggedcom switch, RSTP.SW.4, will be added to the topology. CISCO.SW3 will be configured in MST Region “TWO”, with a priority of 0 for the IST (MSTI 0), while RSTP.SW4 will be added with its default configuration.
Configuration on CISCO.SW3
CISCO.SW3(config)#vlan 254 CISCO.SW3(config)#interface FastEthernet0/1 CISCO.SW3(config-if)#switchport trunk encapsulation dot1q CISCO.SW3(config-if)#switchport mode trunk CISCO.SW3(config-if)#switchport nonegotiate CISCO.SW3(config)#interface FastEthernet0/2 CISCO.SW3(config-if)#switchport trunk encapsulation dot1q CISCO.SW3(config-if)#switchport mode trunk CISCO.SW3(config-if)#switchport nonegotiate CISCO.SW3(config)#spanning-tree mst configuration CISCO.SW3(config-mst)#name TWO CISCO.SW3(config-mst)#revision 10 CISCO.SW3(config-mst)#exit CISCO.SW3(config)#spanning-tree mst 0 priority 0
The new topology for MSTI 0 (the CST from the perspective of RSTP.SW4) looks like this:
The following events will take place:
- CISCO.SW3 has the lowest Bridge ID, so it will become the CIST Root and CIST Regional Root for MST Region “TWO”
- BRCD.SW3 will now become the CIST Regional Root for MIST Region “ONE” even though CISCO.SW1 has a lower Bridge ID, this is because BRCD.SW3 has the best path (directly connected) to the new CIST Root (CISCO.SW3)
- CISCO.SW1 and CISCO.SW2 will mark port Fa0/1 as the new root port for MSTI 0
- RSTP.SW4 sees MST Regions “ONE” and “TWO” as virtual bridges and will designate the direct path via port ethernet 2 as the root port
CISCO.SW3 becomes the new CIST Root
CISCO.SW.3#sho spanning-tree mst 0
##### MST0 vlans mapped: 1-4094
Bridge address 0013.60bf.db80 priority 0 (0 sysid 0)
Root this switch for the CIST
Operational hello time 2 , forward delay 15, max age 20, txholdcount 6
Configured hello time 2 , forward delay 15, max age 20, max hops 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 200000 128.1 P2p
Fa0/2 Desg FWD 200000 128.2 P2p
When Ethernet 3 comes up BRCD.SW3 starts receiving superior BPDUs and converges accordingly
BRCD.SW.3#debug mstp events SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 3 - DISCARDING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 1 Port 3 - DISCARDING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 2 Port 3 - DISCARDING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 System: Interface ethernet 3, state up SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 - New RootBridge 0000001360bfdb80 RootPort 3 SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 1 - DISCARDING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 3 - LEARNING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 3 - FORWARDING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 3 - Bridge TC Event SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 1 - Bridge TC Event SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 1 Port 3 - LEARNING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 1 Port 3 - FORWARDING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 1 Port 3 - Bridge TC Event SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 1 Port 1 - Bridge TC Event SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 1 Port 2 - Bridge TC Event SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 2 Port 3 - LEARNING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 2 Port 3 - FORWARDING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 2 Port 3 - Bridge TC Event SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 2 Port 2 - Bridge TC Event SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 1 - LEARNING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 2 - LEARNING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 1 - FORWARDING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 2 - FORWARDING SYSLOG: Jan 1 00:00:00 BRCD.SW.3 MSTP: MST 0 Port 2 - Bridge TC Event BRCD.SW.3#sho mstp 0 MSTP Instance 0 (CIST) - VLANs: 1 254 ---------------------------------------------------------------------------- Bridge Bridge Bridge Bridge Bridge Root Root Root Root Identifier MaxAge Hello FwdDly Hop MaxAge Hello FwdDly Hop hex sec sec sec cnt sec sec sec cnt 8000001bed545e80 20 2 15 20 20 2 15 20 Root ExtPath RegionalRoot IntPath Designated Root Bridge Cost Bridge Cost Bridge Port hex hex hex 0000001360bfdb80 200000 8000001bed545e80 0 0000001360bfdb80 3
CISCO.SW1 receives superior root bridge information on Fa0/1 and converges accordingly
CISCO.SW1#debug spanning-tree mst roles CISCO.SW1# MST[0]: updt roles, received superior bpdu on Fa0/1 MST[0]: Fa0/1 is now root port MST[1]: updt roles, CIST reconcile on Fa0/1 MST[2]: updt roles, CIST reconcile on Fa0/1 CISCO.SW1#show spanning-tree mst 0 ##### MST0 vlans mapped: 1-12,14-22,24-4094 Bridge address 000a.f42b.e680 priority 4096 (4096 sysid 0) Root address 0013.60bf.db80 priority 0 (0 sysid 0) port Fa0/1 path cost 200000 Regional Root address 001b.ed54.5e80 priority 32768 (32768 sysid 0) internal cost 200000 rem hops 19 Operational hello time 2 , forward delay 15, max age 20, txholdcount 6 Configured hello time 2 , forward delay 15, max age 20, max hops 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Fa0/24 Desg FWD 200000 128.24 P2p CISCO.SW1#
CISCO.SW2 elects Fa0/1 as the new root port and marks Fa0/2 as a RSTP Boundary port
CISCO.SW.2#sho spanning-tree mst 0 ##### MST0 vlans mapped: 1-12,14-22,24-4094 Bridge address 000a.4114.7900 priority 32768 (32768 sysid 0) Root address 0013.60bf.db80 priority 0 (0 sysid 0) port Fa0/1 path cost 200000 Regional Root address 001b.ed54.5e80 priority 32768 (32768 sysid 0) internal cost 200000 rem hops 19 Operational hello time 2 , forward delay 15, max age 20, txholdcount 6 Configured hello time 2 , forward delay 15, max age 20, max hops 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Fa0/2 Altn BLK 200000 128.2 P2p Bound(RSTP) Fa0/24 Altn BLK 200000 128.24 P2p
From RSTP.SW4’s perspective, it is connected to two RSTP switches.
System Name Bridge RSTP Statistics 3 ALARMS! Bridge Status Designated Bridge Bridge ID 32768/00-0A-DC-55-DB-00 Root ID 0/00-13-60-BF-DB-80 Root Port 3 System Name Port RSTP Statistics 3 ALARMS! Port(s) Status Role Cost RX RSTs TX RSTs RX Configs 1 Link Down 0 0 0 0 2 Forwarding Designated 19 29 1843 0 3 Forwarding Root 19 3949 165 0