Imagine an enterprise network with two distribution switches and several access switches.
The network uses two VLANs:
- VLAN 10: Employees
- VLAN 20: Servers
Multiple physical connections exist between the switches to provide redundancy.
However, redundant Layer 2 links can create switching loops when they are not controlled correctly.
Spanning Tree Protocol (STP) solves this problem by creating a loop-free forwarding topology.
In a basic spanning-tree design, the root bridge provides the reference point for calculating forwarding paths.
But what if the network administrator wants:
- Distribution Switch SW1 to be the root bridge for VLAN 10
- Distribution Switch SW2 to be the root bridge for VLAN 20
This is where Per-VLAN Spanning Tree Plus (PVST+) becomes useful.
PVST+ allows compatible Cisco switches to maintain a separate spanning-tree instance for each VLAN.
As a result, different VLANs can elect different root bridges and potentially use different forwarding paths across the same physical topology.
This article focuses specifically on PVST+ root bridge election, Bridge ID calculation, VLAN-specific port roles and controlled Layer 2 load sharing.

1. What Is PVST+ and How Is It Different from STP?
PVST+ stands for Per-VLAN Spanning Tree Plus.
It is a Cisco implementation that maintains an independent spanning-tree topology for each participating VLAN.
Each VLAN has its own:
- Root bridge election
- Bridge ID comparison
- Root path cost
- Root-port selection
- Designated-port selection
- Alternate or blocked forwarding paths
Why Is This Useful?
Suppose a network uses one common spanning-tree forwarding topology.
The same redundant connection may remain unused for several VLANs.
With PVST+, an administrator can design different preferred paths for different VLANs.
This can provide better utilization of the physical topology when configured correctly.
PVST vs PVST+ vs Rapid PVST+
These terms are related, but they should not be treated as identical.
| Protocol | Main Characteristic |
|---|---|
| STP — IEEE 802.1D | Classic loop-prevention protocol |
| PVST | Cisco’s original per-VLAN spanning-tree implementation, historically associated with ISL |
| PVST+ | Cisco per-VLAN spanning tree supporting IEEE 802.1Q trunk environments |
| Rapid PVST+ | Cisco per-VLAN implementation using rapid spanning-tree mechanisms based on IEEE 802.1w |
| MSTP | Maps multiple VLANs into a configurable number of spanning-tree instances |
How Does PVST+ Operate?
Consider three VLANs:
| VLAN | Spanning-Tree Instance |
|---|---|
| 10 | Independent VLAN 10 instance |
| 20 | Independent VLAN 20 instance |
| 30 | Independent VLAN 30 instance |
Each instance can elect its own root bridge.
This does not mean each VLAN requires separate cables.
Multiple VLAN instances can operate over the same physical 802.1Q trunk connections.
Does PVST+ Automatically Load Balance?
No.
PVST+ provides the ability to create different forwarding topologies.
Actual load sharing depends on:
- Root bridge placement
- Bridge priorities
- Physical topology
- Link costs
- Port roles
- Traffic distribution
If the same switch becomes root for every VLAN, their forwarding paths may remain largely identical.
2. How PVST+ Root Bridge Election Works
Every PVST+ instance independently elects a root bridge.
The switch with the lowest Bridge ID (BID) becomes the root bridge for the VLAN.
What Is the Bridge ID?
In modern Cisco spanning-tree implementations using the extended system ID, the Bridge ID contains:
- Configurable bridge priority
- Extended system ID, normally the VLAN ID
- Switch MAC address used for STP
Conceptually:
| Component | Example for VLAN 10 |
|---|---|
| Configured Bridge Priority | 4096 |
| Extended System ID | 10 |
| Displayed Priority Component | 4106 |
| MAC Address | Switch STP MAC address |
The displayed priority component is calculated as:
[
4096 + 10 = 4106
]
This explains why a switch configured with priority 4096 may display priority 4106 in the VLAN 10 spanning-tree output.
Default Bridge Priority
On traditional Cisco Catalyst PVST+ platforms, the default configurable priority is:
32768
With the VLAN ID extension:
| VLAN | Default Displayed Priority |
|---|---|
| VLAN 10 | 32778 |
| VLAN 20 | 32788 |
| VLAN 30 | 32798 |
What Priority Values Can Be Configured?
With the extended system ID, configurable bridge priority values use increments of 4096.
Examples:
- 0
- 4096
- 8192
- 12288
- 16384
- 20480
- 24576
- 28672
- 32768
The supported range extends to 61440.
Root Bridge Election Order
For switches participating in the same VLAN instance:
First: Compare the complete Bridge IDs.
Second: The switch with the lower Bridge ID wins.
Third: When the priority components are equal, the switch with the lower STP MAC address wins.
The comparison is performed independently for each VLAN.
Example — Different Root Bridges
Consider two distribution switches:
| Switch | VLAN 10 Priority | VLAN 20 Priority |
|---|---|---|
| SW1 | 4096 | 8192 |
| SW2 | 8192 | 4096 |
For VLAN 10:
SW1 has the lower configured priority.
Therefore, SW1 becomes the root bridge.
For VLAN 20:
SW2 has the lower configured priority.
Therefore, SW2 becomes the root bridge.
Different roots can be elected even though the switches use the same physical connections.
Cisco Configuration
On SW1:
spanning-tree vlan 10 priority 4096
spanning-tree vlan 20 priority 8192
On SW2:
spanning-tree vlan 10 priority 8192
spanning-tree vlan 20 priority 4096
Alternative Root Configuration
Cisco also supports simplified root-selection commands:
spanning-tree vlan 10 root primary
And:
spanning-tree vlan 10 root secondary
On supported IOS platforms, these commands adjust bridge priorities to influence root selection.
root secondary does not guarantee that the switch will always become root after every possible topology or priority change.
For a deterministic lab, we will configure explicit priority values.

3. How PVST+ Selects Root Ports, Designated Ports and Blocked Paths
After the root bridge is selected, PVST+ calculates the forwarding topology for that VLAN.
Root Port
Each nonroot switch normally selects one root port for a given VLAN instance.
The root port provides the best path toward that VLAN’s root bridge.
The preferred path is primarily determined by the lowest cumulative path cost, followed by the standard STP tie-breakers.
Designated Port
For each Layer 2 segment, STP determines the designated bridge and designated port.
The designated port provides the best path from that segment toward the root bridge.
All eligible ports on the root bridge are designated ports for their respective segments.
Alternate or Blocking Port
Redundant paths that are not selected for forwarding remain in a non-forwarding state to prevent Layer 2 loops.
Classic PVST+ typically describes these as blocked ports.
Rapid PVST+ uses more explicit alternate-port roles and discarding states.
Example — Triangle Topology
Consider:
- SW1
- SW2
- SW3
All three switches connect to one another.
Every trunk carries VLAN 10 and VLAN 20.
If SW1 is root for VLAN 10:
- SW2 selects its best path to SW1.
- SW3 selects its best path to SW1.
- One redundant path is blocked for VLAN 10.
If SW2 is root for VLAN 20:
- SW1 selects its best path to SW2.
- SW3 selects its best path to SW2.
- A different redundant path may be blocked for VLAN 20.
Expected Forwarding Pattern
| VLAN | Root Bridge | SW3 Preferred Root Path |
|---|---|---|
| 10 | SW1 | Direct connection toward SW1 |
| 20 | SW2 | Direct connection toward SW2 |
The exact non-forwarding ports depend on the topology, port costs and bridge identifiers.
This is the basis of per-VLAN path sharing.
Does PVST+ Make Both Links Forward for One VLAN?
Not necessarily.
STP still maintains a loop-free forwarding topology for each VLAN.
A redundant link may forward VLAN 10 while being blocked for VLAN 20.
PVST+ does not turn a Layer 2 loop into two unrestricted active paths for the same VLAN.
4. PVST+ Load Sharing, Limitations and MST Interoperability
How Per-VLAN Load Sharing Works
Imagine two redundant distribution switches.
The administrator configures:
- SW1 as the preferred VLAN 10 root
- SW2 as the preferred VLAN 20 root
Access switches then select VLAN-specific root paths.
This can distribute different VLANs across different links.
What Are the Benefits?
- VLAN-specific path control
- Redundant Layer 2 connectivity
- Better use of some alternate physical paths
- Flexibility in root bridge placement
- Clearer topology planning
What Are the Limitations?
1. Control-Plane Overhead
Every active VLAN can require its own spanning-tree instance.
A network with many VLANs may consume additional control-plane resources.
Some Catalyst platforms have explicit spanning-tree instance limits.
2. Classic STP Convergence
Traditional PVST+ can take noticeably longer to reconverge than Rapid PVST+ in suitable topologies.
3. Load Sharing Is Not Per-Packet Balancing
Different VLANs can prefer different paths.
That is not the same as distributing every packet or every flow evenly across all available links.
4. Root Placement Must Match the Network Design
Poor root bridge selection can create unnecessarily long forwarding paths.
PVST+ and MSTP Interoperability
PVST+ and MSTP can interoperate under supported conditions.
However, they use different spanning-tree models.
MSTP maps multiple VLANs into spanning-tree instances, while PVST+ maintains per-VLAN instances.
Cisco supports PVST simulation at appropriate MST/PVST+ boundaries.
This mechanism includes consistency checks and root-placement restrictions.
An inconsistent design can place boundary ports into a PVST simulation inconsistent state.
Therefore, PVST+ and MSTP interoperability should be explicitly designed and verified rather than assumed to be seamless.
Which Protocol Should Be Used?
| Requirement | Relevant STP Option |
|---|---|
| Study traditional per-VLAN root election | PVST+ |
| Require faster per-VLAN convergence on supported Cisco switches | Rapid PVST+ |
| Map many VLANs into fewer spanning-tree instances | MSTP |
| Build a modern routed campus | Consider limiting Layer 2 extension and using appropriate Layer 3 links |
5. Practical Cisco Lab — Elect Different Root Bridges for VLAN 10 and VLAN 20
This lab demonstrates the key advantage of PVST+.
You will configure a three-switch triangular topology and verify that each VLAN uses a different root bridge.
Lab Requirements
- Three Cisco Catalyst 2960 switches
- Four computers
- Cisco Packet Tracer
- Ethernet cables
Packet Tracer supports the basic PVST+ root bridge and port-state exercises on compatible switch models.
Real convergence timing and hardware behavior should be validated using appropriate physical equipment.
Topology
| Connection | Interface A | Interface B |
|---|---|---|
| SW1 to SW2 | SW1 Gi0/1 | SW2 Gi0/1 |
| SW1 to SW3 | SW1 Gi0/2 | SW3 Gi0/1 |
| SW2 to SW3 | SW2 Gi0/2 | SW3 Gi0/2 |
| PC-A to SW1 | PC-A Ethernet | SW1 Fa0/1 |
| PC-B to SW3 | PC-B Ethernet | SW3 Fa0/1 |
| PC-C to SW2 | PC-C Ethernet | SW2 Fa0/1 |
| PC-D to SW3 | PC-D Ethernet | SW3 Fa0/2 |
The three inter-switch links form a triangle.
All three links are 802.1Q trunks carrying VLAN 10 and VLAN 20.
VLAN and IP Plan
| Device | VLAN | IP Address |
|---|---|---|
| PC-A | 10 | 192.168.10.10/24 |
| PC-B | 10 | 192.168.10.20/24 |
| PC-C | 20 | 192.168.20.10/24 |
| PC-D | 20 | 192.168.20.20/24 |
No gateway is required for the same-VLAN tests.
PVST+ Root Plan
| Switch | VLAN 10 Priority | VLAN 20 Priority | Role |
|---|---|---|---|
| SW1 | 4096 | 8192 | VLAN 10 root |
| SW2 | 8192 | 4096 | VLAN 20 root |
| SW3 | 32768 | 32768 | Access switch |

Step 1 — Create VLANs and Enable PVST+ on SW1
enable
configure terminal
hostname SW1
spanning-tree mode pvst
vlan 10
name EMPLOYEES
exit
vlan 20
name SERVERS
exit
end
Step 2 — Configure SW1 Trunks and Access Port
configure terminal
interface range GigabitEthernet0/1 - 2
switchport mode trunk
switchport trunk allowed vlan 10,20
no shutdown
exit
interface FastEthernet0/1
description PC-A-VLAN10
switchport mode access
switchport access vlan 10
spanning-tree portfast
no shutdown
exit
end
Step 3 — Configure SW1 Bridge Priorities
configure terminal
spanning-tree vlan 10 priority 4096
spanning-tree vlan 20 priority 8192
end
SW1 is designed to become the root for VLAN 10.
Step 4 — Configure SW2
enable
configure terminal
hostname SW2
spanning-tree mode pvst
vlan 10
name EMPLOYEES
exit
vlan 20
name SERVERS
exit
interface range GigabitEthernet0/1 - 2
switchport mode trunk
switchport trunk allowed vlan 10,20
no shutdown
exit
interface FastEthernet0/1
description PC-C-VLAN20
switchport mode access
switchport access vlan 20
spanning-tree portfast
no shutdown
exit
spanning-tree vlan 10 priority 8192
spanning-tree vlan 20 priority 4096
end
SW2 is designed to become the root for VLAN 20.
Step 5 — Configure SW3
enable
configure terminal
hostname SW3
spanning-tree mode pvst
vlan 10
name EMPLOYEES
exit
vlan 20
name SERVERS
exit
interface range GigabitEthernet0/1 - 2
switchport mode trunk
switchport trunk allowed vlan 10,20
no shutdown
exit
interface FastEthernet0/1
description PC-B-VLAN10
switchport mode access
switchport access vlan 10
spanning-tree portfast
no shutdown
exit
interface FastEthernet0/2
description PC-D-VLAN20
switchport mode access
switchport access vlan 20
spanning-tree portfast
no shutdown
exit
end
SW3 retains the default bridge priority for both VLANs.
Step 6 — Configure the Computers
In Packet Tracer:
PC → Desktop → IP Configuration
Assign the IP addresses from the lab table.
Use subnet mask:
255.255.255.0
Leave the gateway field empty.
Step 7 — Verify the Spanning-Tree Mode
On each switch:
show spanning-tree summary
Confirm that the switch is operating in PVST+ mode.
On applicable Catalyst IOS releases, the output may identify the active mode as pvst.
Step 8 — Verify the VLAN 10 Root Bridge
On SW1:
show spanning-tree vlan 10
Expected relevant information:
VLAN0010
Spanning tree enabled protocol ieee
Root ID Priority 4106
This bridge is the root
The displayed priority is:
4096 + VLAN ID 10 = 4106
Step 9 — Verify the VLAN 20 Root Bridge
On SW2:
show spanning-tree vlan 20
Expected relevant information:
VLAN0020
Spanning tree enabled protocol ieee
Root ID Priority 4116
This bridge is the root
The displayed priority is:
4096 + VLAN ID 20 = 4116
The exact output includes additional Bridge ID and port information.
Step 10 — Check SW3 Root Ports
On SW3:
show spanning-tree vlan 10
Then:
show spanning-tree vlan 20
With the intended topology, equal-speed Gigabit trunks and configured priorities:
| VLAN | Expected SW3 Root Port |
|---|---|
| VLAN 10 | Gi0/1 toward SW1 |
| VLAN 20 | Gi0/2 toward SW2 |
The direct links provide the lowest-cost paths toward their respective roots.
Step 11 — Compare Blocked Ports
On SW3, examine the spanning-tree port information for both VLANs.
In this specific triangular topology, the expected stable forwarding behavior is:
| SW3 Interface | VLAN 10 | VLAN 20 |
|---|---|---|
| Gi0/1 toward SW1 | Root / Forwarding | Alternate / Blocking |
| Gi0/2 toward SW2 | Alternate / Blocking | Root / Forwarding |
For classic PVST+, the CLI typically displays non-forwarding ports with status BLK and an applicable port-role indication.
This demonstrates why different VLANs can use different active paths.
Step 12 — Test VLAN 10 Connectivity
From PC-A:
ping 192.168.10.20
Expected:
Successful communication with PC-B.
VLAN 10 forwarding reaches SW3 through its preferred path toward SW1.
Step 13 — Test VLAN 20 Connectivity
From PC-C:
ping 192.168.20.20
Expected:
Successful communication with PC-D.
VLAN 20 forwarding reaches SW3 through its preferred path toward SW2.
Step 14 — Simulate a VLAN 10 Preferred Link Failure
On SW3, shut down the connection toward SW1.
configure terminal
interface GigabitEthernet0/1
shutdown
end
The direct SW3-to-SW1 link is now unavailable.
Step 15 — Observe the VLAN 10 Topology Change
On SW3:
show spanning-tree vlan 10
After convergence, the surviving link toward SW2 should become SW3’s forwarding root path for VLAN 10.
SW3 can reach the VLAN 10 root through the remaining triangle path:
SW3 → SW2 → SW1
SW1 remains the VLAN 10 root bridge.
The root bridge does not change merely because SW3 loses one direct link.
Step 16 — Verify Connectivity After Convergence
From PC-A:
ping 192.168.10.20
Expected:
Connectivity returns after STP reconvergence.
Traditional PVST+ may require several seconds or tens of seconds, depending on the failure detection and topology.
Do not expect the same recovery time as a carefully designed Rapid PVST+ network.
Step 17 — Restore the Link
On SW3:
configure terminal
interface GigabitEthernet0/1
no shutdown
end
Wait for spanning tree to stabilize.
Verify:
show spanning-tree vlan 10
show spanning-tree vlan 20
The intended VLAN-specific root-port selections should return.
Step 18 — Save Configurations
On all three switches:
copy running-config startup-config
Expected Lab Results
| Verification | Expected Result |
|---|---|
| STP Mode | PVST+ |
| VLAN 10 Root | SW1 |
| VLAN 20 Root | SW2 |
| SW3 VLAN 10 Root Port | Gi0/1 |
| SW3 VLAN 20 Root Port | Gi0/2 |
| VLAN 10 PC Connectivity | Successful |
| VLAN 20 PC Connectivity | Successful |
| SW3-to-SW1 Link Failure | VLAN 10 reconverges over SW2 |
| Root Bridge After Link Failure | SW1 remains VLAN 10 root |
| Link Restoration | Original preferred paths return |
6. PVST+ Troubleshooting and Best Practices
Important Verification Commands
Check STP mode:
show spanning-tree summary
Verify the VLAN 10 root:
show spanning-tree vlan 10
Verify the VLAN 20 root:
show spanning-tree vlan 20
Check STP root summary:
show spanning-tree root
Check an interface’s STP information:
show spanning-tree interface GigabitEthernet0/1 detail
Verify trunks:
show interfaces trunk
Common PVST+ Problems
| Symptom | Possible Cause | Verification |
|---|---|---|
| Unexpected root bridge | Incorrect bridge priority | show spanning-tree vlan 10 |
| Same root for all VLANs | Root priorities not distributed | Compare per-VLAN Bridge IDs |
| Unexpected blocked link | Different path costs or bridge tie-breakers | STP port roles and costs |
| VLAN connectivity failure | VLAN absent from trunk | show interfaces trunk |
| Frequent topology changes | Link flapping or unexpected bridging | STP details and system logs |
| Long recovery time | Classic PVST+ convergence | STP mode and topology |
| MST boundary inconsistency | Unsupported root relationship | MST boundary and consistency state |
Recommended Practices
- Define the intended root bridge for important VLANs.
- Configure secondary root choices deliberately.
- Keep root bridges on suitable aggregation or distribution infrastructure.
- Verify the full trunk topology before changing priorities.
- Avoid unnecessary Layer 2 loops.
- Use BPDU Guard on appropriate edge ports.
- Consider Root Guard and Loop Guard where the design requires them.
- Prefer Rapid PVST+ or another appropriate modern design when recovery requirements justify it.
- Consider MSTP when many VLANs make per-VLAN instance overhead undesirable.
- Verify the actual forwarding topology after every root bridge change.
7. Key Takeaways — PVST+ Root Bridge Election
Core Concepts
- PVST+ maintains separate spanning-tree instances for participating VLANs.
- Each VLAN independently selects a root bridge.
- The switch with the lowest complete Bridge ID wins the election.
- Modern Bridge ID calculations include a VLAN-based extended system ID.
Root Selection and Forwarding
- Lower configured bridge priorities have higher root preference.
- Priority values use increments of 4096.
- Root ports are selected independently for each VLAN.
- Different VLANs can use different forwarding paths over the same physical topology.
Operations and Design
- PVST+ load sharing requires intentional root and path design.
- STP still prevents loops independently for each VLAN.
- Classic PVST+ and Rapid PVST+ differ in convergence behavior.
- MSTP interoperability requires supported boundary behavior and careful root placement.
Conclusion — Why PVST+ Matters in Enterprise Switching
PVST+ provides VLAN-specific control over Layer 2 spanning-tree topology.
Rather than forcing every VLAN to use the same logical forwarding tree, compatible Cisco switches can maintain independent root bridge elections and port roles.
This allows administrators to select different preferred root bridges for different VLANs.
For example, VLAN 10 can prefer one distribution switch while VLAN 20 prefers another.
Such a design can improve the use of redundant links while preserving the loop-free forwarding behavior required by Ethernet switching.
However, PVST+ does not automatically distribute traffic evenly.
Effective deployment requires correct bridge priorities, path costs, trunk configuration and careful topology verification.
Understanding per-VLAN root election is therefore an important step toward mastering enterprise Layer 2 redundancy.
Useful Links and References
SanchitGurukul Static Resources
Official External References
Your feedback matters
Was this post helpful?
Discussion
0 approved comments
No approved comments yet. You can start the discussion below.
Leave a Comment
No login is required. Name and email are used for moderation/security. Your email is never displayed publicly. All comments require administrator approval.
Discover more from SanchitGurukul
Subscribe to get the latest posts sent to your email.
