TLDR: MSTP is generally the right choice unless you know why you shouldn’t.
“Most networks will ever be touched by more then one person that understands spanning-tree in it’s operational life” – Anon
Why Not PVST/RPVST
PVST things to think about :
Having many STP instances uses CPU resources to generate, receive and process BPDUs on every VLAN in the switch. This wasn’t so bad when we had just a few VLANs in the network (as it was back in the early ought’s). Today hundreds of VLANs are possible and the CPU/hardware and software quality gets stressed. Many switches have cheap, low performance CPUs. Campus switches often have poor quality software because lower prices means less testing or cheap developers.
For example, scaling: Smaller Cisco switches (2960X for example) support 128 instances of (R)PVST, but the switch will operationally support 256 VLANs. Going above the 128 VLAN mark disables PVST on every VLAN enabled beyond 128. (h/t Jordan Martin)
MST is most often deployed with two instances.
If you do not specifically tune the STP settings, then the PVST algorithm should get the same VLANs blocking on each port. The number of people who manually ‘slug’ the STP cost to balance VLANs over the uplinks is ….. small.
MSTP is easier to setup and operate IMO. This probably ends up in better user outcomes.
Note: Some or all of PVST is covered by patents owned by Cisco so not widely supported by many vendors. I don’t have time to research this in detail so any feedback is welcome and I will update. Patents are confusing.
How Many MSTP Instances (Trees)
A common MSTP design puts odd VLAN IDs in MSTP 1 and even VLAN IDs in MSTP 2. Nice and simple so the operational drift is less likely to occur.
Two STP instances delivers good enough load sharing in the Ethernet uplinks that works pretty well overall with very little effort. Very popular with reseller engineers who need to config’n’run.
In my case, I just don’t want to waste my life on spanning tree any more. An odd/even MSTP is easy to hand over to someone else and let them operate it.
Why PVST and MSTP ?
Here is my take: The IEEE 802 committee for Ethernet is very poor at completing standards in a timely manner. A general method for getting IEEE 802 standards completed is for a vendor to ship something and then all the other vendors bash the committee members over the head with it until they do something.
Cisco released and patented PVST in the late 2000’s which eventually led to the IEEE releasing MSTP.
PVST Doesn’t Have Loop Safety
While PVST gives per VLAN loop protection, this does not protect the entire network in the event of loop failure condition.
A failure of STP to block broadcasts will most often collapse the entire Ethernet network because the CPU/memory will overload and thus prevent BPDU processing.
Saturation of available bandwidth will prevent forwarding of packets including BPDUs. The lack of BPDUs may/could/might lead to ports becoming unblocked and forward traffic (if the control plane hasn’t collapsed yet).
A resource exhaustion failure most often leads to unpredictable device behaviour e.g. spontaneous restarts, system lockup or a full crash. Bandwidth saturation leads to a sustained outage until the loop condition is resolved.
Redundancy not better
In my thinking, PVST and MSTP are about redundancy so that a link failure will result on the backup path moving to unblocked. Not so much about loop prevention (although it does that).
Thus MSTP will autonomously configure devices by blocking and unblocking the Ethernet interfaces on a device. The STP will have built a configuration database from BPDUs received and select which ports can be configured.
STP Avoidance and Fat Tree
Many people are fearful of STP. This leads to products that focus on STP avoidance.
In my view, most of the issues with STP are poor vendor implementations in software combined with limited hardware capacity. STP was developed a very long time ago when networks were small (tens of devices) and was not intended to be a industry wide solution. But no one really wants to fix that problem so networking continues to look like a bunch of amateurs with unstable technology. /rant
Anyway, Switch Stacking, Switch Chassis, MLAG/MCLAG are all useful ways to avoid STP configuration and operation by removing loops in the network. The downside of STP avoidance is the enormous cost of those nasty hacks. Synchronising the control planes is an enormously expensive process and another thing that vendors are not very good at executing over the last 20 or so years.
MSTP: Multiple Instance Spanning Tree Protocol
PVST: Per VLAN Spanning Tree Protocol
RSTP / STP : Rapid Spanning Tree Protocol/Spanning Tree Protocol