Per-VLAN Spanning Tree

Cisco per VLAN Spanning Tree Plus (PVST+) creates a spanning tree instance per VLAN. Each instance can use a different Root-Bridge, and consquently traffic can be load-balanced across links. For example, consider the following network:

PVST Vlans

Switch 1 is the Root-Bridge for VLAN 100, and Switch 2 is the Root-Bridge for VLAN 200. The dotted lines denote links that are blocked by Spanning Tree. If Switch 3 and Switch 4 are considered to be access-layer switches, then you can see that traffic for VLAN 100 and VLAN 200 will take different paths.

Interoperability of PVST+ and IEEE 802.1d

PVST+ has the concept of one spanning tree instance per VLAN, whereas 802.1d only supports one Spanning Tree instance, referred to as the Common Spanning Tree (CST). PVST+ is Cisco proprietary, so is only available on Cisco hardware. This becomes a problem when you want to connect to non-Cisco hardware. Fortunately PVST+ was designed to be interoperable with 802.1d. When connecting Cisco and non-Cisco switches, PVST+ uses VLAN 1 to communicate and interoperate with 802.1d.

It is also possible for separate PVST+ regions to connect across an 802.1d CST region. This is achieved by tunnelling the PVST+ BPDUs accross the CST region.

PVST+ and CST

From the CST region, legacy 802.1d BPDUs are sent to the standard BPDU reserved multicast address of 0180.C200.0000. These BPDUs are received by the PVST+ region on VLAN1

PVST+ VLAN 1

From the PVST+ region, legacy 802.1d BPDUs are sent to the CST region on VLAN1. The PVST+ region also sends encapsulated BPDUs (to destination multicast address 0100.0CCC.CCCD), known as Shared Spanning Tree BPDUs (SSTP). These carry the same information as the standard 802.1d BPDUs, but have additional fields, such as special TLV denoting the source VLAN number. The non-Cisco switches in the CST region are unable to interpret these SSTP BPDUs and simply flood them through the VLAN topology – in case there are any other Cisco switches connected on the other side.

VLAN1 BPDUs are sent as both 802.1d and SSTP BPDUs, whereas VLANs 2-4095 are sent only as SSTP BPDUs. The question is; why send VLAN1 BPDUs as both 802.1d and SSTP BPDUs? Well, this is to inform all other Cisco switches that may be connected to the CST region what the native VLAN is for the PVST+ region. For example, suppose the Native VLAN for the PVST+ region is changed to VLAN 100.

PVST+ VLAN 100

From the PVST+ region, legacy 802.1d BPDUs are sent to the CST region on VLAN1 as before. The PVST+ region also continues to sends encapsulated (SSTP) BPDUs, however now VLAN 1 is tagged, and VLAN 100 is untagged, to inform other Cisco switches what the native VLAN is.