The following is an explanation of all the spanning-tree versions available to the Cisco switching platform.
Consider the following illustration:

In the above illustration, switchA and switchB is considered the core/distribution switches in this small office scenario. Switch A & B have a Layer 2 connection between them for high speed switching in this collapsed core layer. Servers connect to both core/distribution switches with NIC teaming configured in the Operating System. The switches C & D serve as access switches in the wiring closets for office workstations. The access switches have dual uplinks, one to each core/distribution switch for redundancy.
There are 10 vlans configured in this example network, half of them are load balanced on one uplink connection and the other half of the vlans are forwarded on the second uplink connection. Each access switch uplink also serves as a backup to the other.
PVST - Per Vlan Spanning Tree - This is the original Cisco proprietary, per vlan spanning tree protocol. It maintains a spanning tree instance for each VLAN configured in the network.
Configuration Example:
switchA(config)# spanning-tree mode pvst switchA(config)# spanning-tree vlan 1,2,3,4,5 root primary switchA(config)# spanning-tree vlan 6,7,8,9,10 root secondary switchA(config)# spanning-tree backbonefast
switchB(config)# spanning-tree mode pvst switchB(config)# spanning-tree vlan 1,2,3,4,5 root secondary switchB(config)# spanning-tree vlan 6,7,8,9,10 root primary switchB(config)# spanning-tree backbonefast
switchC(config)# spanning-tree mode pvst switchC(config)# spanning-tree uplinkfast
switchD(config)# spanning-tree mode pvst switchD(config)# spanning-tree uplinkfast
PVST+ - Per Vlan Spanning Tree Plus - It can be thought of as PVST version 2, still Cisco proprietary, with enhancements added to the original version. The difference between the two protocols is PVST supports ISL as the trunking protocol, where PVST+ makes use of the 802.1Q trunking protocol.
RSTP - Rapid Spanning Tree Protocol - This is the standards based (802.1w) spanning tree protocol that is very similar to Cisco’s proprietary PVST+. Many of the previously Cisco proprietary methods of speeding up convergence, such as Portfast, Uplinkfast, Backbone now have standards based equivalents that are built into RSTP.
Configuration Example:
switchA(config)# spanning-tree mode rapid-pvst switchA(config)# spanning-tree vlan 1,2,3,4,5 root primary switchA(config)# spanning-tree vlan 6,7,8,9,10 root secondary
switchB(config)# spanning-tree mode rapid-pvst switchB(config)# spanning-tree vlan 1,2,3,4,5 root secondary switchB(config)# spanning-tree vlan 6,7,8,9,10 root primary
switchC(config)# spanning-tree mode rapid-pvst
switchD(config)# spanning-tree mode rapid-pvst
MST - Multiple Spanning Tree - It can be thought of as RSTP version 2. Known as 802.1s, this version of spanning tree takes 802.1w and builds on the standard. MISTP allows you to selectively map/group multiple vlans to a single instance of spanning tree.
For Example: There are 10 vlans defined in the network, instead of having 10 instances of spanning tree running (using PVST), you can shrink it down to say two instances of spanning tree running on a switch by mapping half the vlans to one instance and the other half to the second instance. The biggest advantage is the reduced resource footprint on the switch, requiring less memory and processor utilization for the spanning tree process.
Configuration Example:
switchA(config)# spanning-tree mst configuration switchA(config-mst)# name corpbuilding switchA(config-mst)# revision 1 switchA(config-mst)# instance 1 vlan 1 - 5 switchA(config-mst)# instance 2 vlan 6 - 10 switchA(config-mst)# exit switchA(config)# spanning-tree mst 1 root primary switchA(config)# spanning-tree mst 2 root secondary switchA(config)# spanning-tree mode mst
switchB(config)# spanning-tree mst configuration switchB(config-mst)# name corpbuilding switchB(config-mst)# revision 1 switchB(config-mst)# instance 1 vlan 1 - 5 switchB(config-mst)# instance 2 vlan 6 - 10 switchB(config-mst)# exit switchB(config)# spanning-tree mst 1 root secondary switchB(config)# spanning-tree mst 2 root primary switchB(config)# spanning-tree mode mst


Print This Post
August 21st, 2008 at 8:21 am
Hi Scott,
Topic which you presented on STP is really informative for fresher like me.
Really thank you for this.
Balaji,India