About STP
STP is a Layer 2 link management protocol that provides path redundancy while preventing undesirable loops in the network. For a Layer 2 Ethernet network to function properly, only one active path can exist between any two stations. A loop-free subset of a network topology is called a spanning tree. The operation of a spanning tree is transparent to end stations, which cannot detect whether they are connected to a single LAN segment or a switched LAN of multiple segments.
Beginning in Cisco IOS Release 15.2(4)E and Cisco IOS Release 3.8.0E, Cisco Catalyst 4500 series, Cisco Catalyst 4900M, Cisco Catalyst 4948E and Cisco Catalyst 4948F switches., by default, use STP (the IEEE 802.1w RSTP) on all VLANs. By default, a single spanning tree runs on each configured VLAN (provided you do not manually disable the spanning tree). You can enable and disable a spanning tree on a per-VLAN basis.
When you create fault-tolerant internetworks, you must have a loop-free path between all nodes in a network. The spanning tree algorithm calculates the best loop-free path throughout a switched Layer 2 network. Switches send and receive spanning tree frames at regular intervals. The switches do not forward these frames, but use the frames to construct a loop-free path.
Multiple active paths between end stations cause loops in the network. If a loop exists in the network, end stations might receive duplicate messages and switches might learn end station MAC addresses on multiple Layer 2 interfaces. These conditions result in an unstable network.
A spanning tree defines a tree with a root switch and a loop-free path from the root to all switches in the Layer 2 network. A spanning tree forces redundant data paths into a standby (blocked) state. If a network segment in the spanning tree fails and a redundant path exists, the spanning tree algorithm recalculates the spanning tree topology and activates the standby path.
When two ports on a switch are part of a loop, the spanning tree port priority and port path cost setting determine which port is put in the forwarding state and which port is put in the blocking state. The spanning tree port priority value represents the location of an interface in the network topology and how well located it is to pass traffic. The spanning tree port path cost value represents media speed.
These sections describe STP:
Understanding the Bridge ID
Each VLAN on each network device has a unique 64-bit bridge ID consisting of a bridge priority value, an extended system ID, and an STP MAC address allocation.
Bridge Priority Value
The bridge priority value determines whether a given redundant link is given priority and considered part of a given span in a spanning tree. Preference is given to lower values, and if you want to manually configure a preference, assign a lower bridge priority value to a link than to its redundant possibility. With Cisco IOS releases prior to 12.1(12c)EW, the bridge priority is a 16-bit value (see
Table 22-1
).With Cisco IOS Release 12.1(12c)EW and later releases, the bridge priority is a 4-bit value when the extended system ID is enabled (see
Table 22-2
). See the “Configuring the Bridge Priority of a VLAN” section.
Extended System ID
Extended system IDs are VLAN IDs between 1025 and 4096. Cisco IOS Releases 12.1(12c)EW and later releases support a 12-bit extended system ID field as part of the bridge ID (see
Table 22-2
). Chassis that support only 64 MAC addresses always use the 12-bit extended system ID. On chassis that support 1024 MAC addresses, you can enable use of the extended system ID. STP uses the VLAN ID as the extended system ID. See the “Enabling the Extended System ID” section.
Table 22-1 Bridge Priority Value with the Extended System ID Disabled
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32768
|
16384
|
8192
|
4096
|
2048
|
1024
|
512
|
256
|
128
|
64
|
32
|
16
|
8
|
4
|
2
|
1
|
Table 22-2 Bridge Priority Value and Extended System ID with the Extended System ID Enabled
|
Extended System ID (Set Equal to the VLAN ID)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32768
|
16384
|
8192
|
4096
|
VLAN ID
|
STP MAC Address Allocation
A Catalyst 4500 series switch chassis has either 64 or 1024 MAC addresses available to support software features like STP. Enter the
show module
command to view the MAC address range on your chassis.
Cisco IOS Release 12.1(12c)EW and later releases support chassis with 64 or 1024 MAC addresses. For chassis with 64 MAC addresses, STP uses the extended system ID plus a MAC address to make the bridge ID unique for each VLAN.
Earlier releases support chassis with 1024 MAC addresses. With earlier releases, STP uses one MAC address per-VLAN to make the bridge ID unique for each VLAN.
Bridge Protocol Data Units
The following elements determine the stable active spanning tree topology of a switched network:
-
The unique bridge ID (bridge priority and MAC address) associated with each VLAN on each switch
-
The spanning tree path cost (or bridge priority value) to the root bridge
-
The port identifier (port priority and MAC address) associated with each Layer 2 interface
Bridge protocol data units (BPDUs) contain information about the transmitting bridge and its ports, including the bridge and MAC addresses, bridge priority, port priority, and path cost. The system computes the spanning tree topology by transmitting BPDUs among connecting switches, and in one direction from the root switch. Each configuration BPDU contains at least the following:
-
The unique bridge ID of the switch that the transmitting switch believes to be the root switch
-
The spanning tree path cost to the root
-
The bridge ID of the transmitting bridge
-
The age of the message
-
The identifier of the transmitting port
-
Values for the hello, forward delay, and max-age protocol timers
When a switch transmits a BPDU frame, all switches connected to the LAN on which the frame is transmitted receive the BPDU. When a switch receives a BPDU, it does not forward the frame but instead uses the information in the frame to calculate a BPDU and, if the topology changes, initiate a BPDU transmission.
A BPDU exchange results in the following:
-
One switch is elected as the root bridge.
-
The shortest distance to the root bridge is calculated for each switch based on the path cost.
-
A designated bridge for each LAN segment is selected. it is the switch closest to the root bridge through which frames are forwarded to the root.
-
A root port is selected. it is the port providing the best path from the bridge to the root bridge.
-
Ports included in the spanning tree are selected.
Election of the Root Bridge
For each VLAN, the switch with the highest bridge priority (the lowest numerical priority value) is elected as the root bridge. If all switches are configured with the default priority value (32,768), the switch with the lowest MAC address in the VLAN becomes the root bridge.
The spanning tree root bridge is the logical center of the spanning tree topology in a switched network. All paths that are not required to reach the root bridge from anywhere in the switched network are placed in spanning tree blocking mode.
A spanning tree uses the information provided by BPDUs to elect the root bridge and root port for the switched network, as well as the root port and designated port for each switched segment.
STP Timers
Table 22-3
describes the STP timers that affect the performance of the entire spanning tree.
Table 22-3 Spanning Tree Protocol Timers
|
|
hello_time
|
Determines how often the switch broadcasts hello messages to other switches.
|
forward_time
|
Determines how long each of the listening and learning states last before the port begins forwarding.
|
max_age
|
Determines the amount of time that protocol information received on a port is stored by the switch.
|
Creating the STP Topology
The goal of the spanning tree algorithm is to make the most direct link the root port. When the spanning tree topology is calculated based on default parameters, the path between source and destination end stations in a switched network might not be optimal according to link speed. For instance, connecting higher-speed links to a port that has a higher number than the current root port can cause a root-port change.
In Figure 22-1, Switch A is elected as the root bridge. (This could happen if the bridge priority of all the switches is set to the default value [32,768] and Switch A has the lowest MAC address.) However, due to traffic patterns, the number of forwarding ports, or link types, Switch A might not be the ideal root bridge. By increasing the STP port priority (lowering the numerical value) of the ideal switch so that it becomes the root bridge, you force a spanning tree recalculation to form a new spanning tree topology with the ideal switch as the root.
Figure 22-1 Spanning Tree Topology
For example, assume that one port on Switch B is a fiber-optic link, and another port on Switch B (an unshielded twisted-pair [UTP] link) is the root port. Network traffic might be more efficient over the high-speed fiber-optic link. By changing the spanning tree port priority on the fiber-optic port to a higher priority (lower numerical value) than the priority set for the root port, the fiber-optic port becomes the new root port.
STP Port States
Propagation delays can occur when protocol information passes through a switched LAN. As a result, topology changes can take place at different times and at different places in a switched network. When a Layer 2 interface transitions directly from nonparticipation in the spanning tree topology to the forwarding state, it can create temporary data loops. Ports must wait for new topology information to propagate through the switched LAN before starting to forward frames. They must allow the frame lifetime to expire for frames that have been forwarded under the old topology.
Each Layer 2 interface on a switch that uses spanning tree exists in one of the following five states:
-
Blocking—In this state, the Layer 2 interface does not participate in frame forwarding.
-
Listening—This state is the first transitional state after the blocking state when spanning tree determines that the Layer 2 interface should participate in frame forwarding.
-
Learning—In this state, the Layer 2 interface prepares to participate in frame forwarding.
-
Forwarding—In this state, the Layer 2 interface forwards frames.
-
Disabled—In this state, the Layer 2 interface does not participate in spanning tree and does not forward frames.
MAC Address Allocation
The supervisor engine has a pool of 1024 MAC addresses that are used as the bridge IDs for the VLAN spanning trees. Use use the
show module
command to view the MAC address range (allocation range for the supervisor) that the spanning tree uses for the algorithm.
MAC addresses for the Catalyst 4506 switch are allocated sequentially, with the first MAC address in the range assigned to VLAN 1, the second MAC address in the range assigned to VLAN 2, and so forth. For example, if the MAC address range is 00-e0-1e-9b-2e-00 to 00-e0-1e-9b-31-ff, the VLAN 1 bridge ID is 00-e0-1e-9b-2e-00, the VLAN 2 bridge ID is 00-e0-1e-9b-2e-01, the VLAN 3 bridge ID is 00-e0-1e-9b-2e-02, and so on. On other Catalyst 4500 series platforms, all VLANS map to the same MAC address rather than mapping to separate MAC addresses.
STP and IEEE 802.1Q Trunks
802.1Q VLAN trunks impose some limitations on the spanning tree strategy for a network. In a network of Cisco switches connected through 802.1Q trunks, the switches maintain one instance of spanning tree for each VLAN allowed on the trunks. However, non-Cisco 802.1Q switches maintain only one instance of spanning tree for all VLANs allowed on the trunks.
When you connect a Cisco switch to a non-Cisco device (that supports 802.1Q) through an 802.1Q trunk, the Cisco switch combines the spanning tree instance of the 802.1Q native VLAN of the trunk with the spanning tree instance of the non-Cisco 802.1Q switch. However, all per-VLAN spanning tree information is maintained by Cisco switches separated by a network of non-Cisco 802.1Q switches. The non-Cisco 802.1Q network separating the Cisco switches is treated as a single trunk link between the switches.
Note For more information on 802.1Q trunks, see Chapter18, “Configuring Layer 2 Ethernet Interfaces”
Per-VLAN Rapid Spanning Tree
Beginning in Cisco IOS XE Release 3.8.0E and Cisco IOS Release 15.2(4)E, Per-VLAN Rapid Spanning Tree (PVRST+) is the default STP mode on Cisco Catalyst 4500 series, Cisco Catalyst 4900M, Cisco Catalyst 4948E and Cisco Catalyst 4948F switches.
Per-VLAN Rapid Spanning Tree is the same as PVST+, although PVRST+ utilizes a rapid STP based on IEEE 802.1w rather than 802.1D to provide faster convergence. PVRST+ uses roughly the same configuration as PVST+ and needs only minimal configuration. In PVRST+, dynamic CAM entries are flushed immediately on a per-port basis when any topology change is made. UplinkFast and BackboneFast are enabled but not active in this mode, because the functionality is built into the Rapid STP. PVRST+ provides for rapid recovery of connectivity following the failure of a bridge, bridge port, or LAN.
Like per-VLAN Spanning Tree (PVST+), per-VLAN Rapid Spanning Tree (PVRST+) instances are equal to the number of vlans configured on the switch and can go up to a maximum of 4094 instances.
For enabling information, see “Enabling Per-VLAN Rapid Spanning Tree” section.
Configuring STP
The following sections describe how to configure spanning tree on VLANs:
Note The spanning tree commands described in this chapter can be configured on any interface except those configured with the no switchport command.
Enabling STP
Note By default, spanning tree is enabled on all the VLANs.
You can enable a spanning tree on a per-VLAN basis. The switch maintains a separate instance of spanning tree for each VLAN (except on VLANs on which you have disabled a spanning tree).
To enable a spanning tree on a per-VLAN basis, perform this task:
|
|
|
Step 1
|
Switch# configure terminal
|
Enters global configuration mode.
|
Step 2
|
Switch(config)#
spanning-tree vlan
vlan_ID
|
Enables spanning tree for VLAN vlan_id. The vlan_ID value can range from 1 to 4094.
|
Step 3
|
|
Exits configuration mode.
|
Step 4
|
Switch#
show spanning-tree vlan
vlan_ID
|
Verifies that spanning tree is enabled.
|
This example shows how to enable a spanning tree on VLAN 200:
Switch# configure terminal Switch(config)# spanning-tree vlan 200
Note Because spanning tree is enabled by default, entering a show running command to view the resulting configuration does not display the command you entered to enable spanning tree.
This example shows how to verify that spanning tree is enabled on VLAN 200:
Switch# show spanning-tree vlan 200 VLAN200 is executing the ieee compatible Spanning Tree protocol Bridge Identifier has priority 32768, address 0050.3e8d.6401 Configured hello time 2, max age 20, forward delay 15 Current root has priority 16384, address 0060.704c.7000 Root port is 264 (FastEthernet5/8), cost of root path is 38 Topology change flag not set, detected flag not set Number of topology changes 0 last change occurred 01:53:48 ago Times: hold 1, topology change 24, notification 2 hello 2, max age 14, forward delay 10 Timers: hello 0, topology change 0, notification 0 Port 264 (FastEthernet5/8) of VLAN200 is forwarding Port path cost 19, Port priority 128, Port Identifier 129.9. Designated root has priority 16384, address 0060.704c.7000 Designated bridge has priority 32768, address 00e0.4fac.b000 Designated port id is 128.2, designated path cost 19 Timers: message age 3, forward delay 0, hold 0 Number of transitions to forwarding state: 1 BPDU: sent 3, received 3417
Enabling the Extended System ID
Note The extended system ID is enabled permanently on chassis that support 64 MAC addresses.
Use the
spanning-tree extend system-id comman
d to enable the extended system ID on chassis that support 1024 MAC addresses. See the “Understanding the Bridge ID” section.
To enable the extended system ID, perform this task:
|
|
|
Step 1
|
Switch(config)#
spanning-tree extend system-id
|
Enables the extended system ID.
|
|
Disables the extended system ID.
Note You cannot disable the extended system ID on chassis that support 64 MAC addresses or when you have configured extended range VLANs (see Table 22-4).
|
Step 2
|
|
Exits configuration mode.
|
Step 3
|
Switch#
show spanning-tree vlan
vlan_ID
|
Verifies the configuration.
|
Note When you enable or disable the extended system ID, the bridge IDs of all active STP instances are updated, which might change the spanning tree topology.
This example shows how to enable the extended system ID:
Switch# configure terminal Switch(config)# spanning-tree extend system-id
This example shows how to verify the configuration:
Switch# show spanning-tree summary | include extended Extended system ID is enabled.
Configuring the Root Bridge
A Catalyst 4500 series switch maintains an instance of spanning tree for each active VLAN configured on the switch. A bridge ID, consisting of the bridge priority and the bridge MAC address, is associated with each instance. For each VLAN, the switch with the lowest bridge ID becomes the root bridge for that VLAN. Whenever the bridge priority changes, the bridge ID also changes, resulting in the recomputation of the root bridge for the VLAN.
To configure a switch to become the root bridge for the specified VLAN, use the
spanning-tree vlan
vlan-ID
root
command to modify the bridge priority from the default value (32,768) to a significantly lower value. The bridge priority for the specified VLAN is set to 8192 if this value causes the switch to become the root for the VLAN. If any bridge for the VLAN has a priority lower than 8192, the switch sets the priority to 1 less than the lowest bridge priority.
For example, assume that all the switches in the network have the bridge priority for VLAN 100 set to the default value of 32,768. Entering the
spanning-tree vlan 100 root primary
command on a switch sets the bridge priority for VLAN 100 to 8192, causing this switch to become the root bridge for VLAN 100.
Note The root switch for each instance of spanning tree should be a backbone or distribution switch. Do not configure an access switch as the spanning tree primary root.
Use the
diameter
keyword to specify the Layer 2 network diameter (the maximum number of bridge hops between any two end stations in the network). When you specify the network diameter, a switch automatically picks an optimal hello time, forward delay time, and maximum age time for a network of that diameter. This action can significantly reduce the spanning tree convergence time.
Use the
hello-time
keyword to override the automatically calculated hello time.
Note We recommend that you avoid manually configuring the hello time, forward delay time, and maximum age time after configuring the switch as the root bridge.
To configure a switch as the root switch, perform this task:
|
|
|
Step 1
|
Switch(config)# [
no
]
spanning-tree vlan
vlan_ID
root primary
[
diameter
hops
[
hello-time
seconds
]]
|
Configures a switch as the root switch.
Use the
no
keyword to restore the defaults.
|
Step 2
|
|
Exits configuration mode.
|
This example shows how to configure a switch as the root bridge for VLAN 10, with a network diameter of 4:
Switch# configure terminal Switch(config)# spanning-tree vlan 10 root primary diameter 4
This example shows how the configuration changes when a switch becomes a spanning tree root. This configuration is the one before the switch becomes the root for VLAN 1:
Switch# show spanning-tree vlan 1 VLAN1 is executing the ieee compatible Spanning Tree protocol Bridge Identifier has priority 32768, address 0030.94fc.0a00 Configured hello time 2, max age 20, forward delay 15 Current root has priority 32768, address 0001.6445.4400 Root port is 323 (FastEthernet6/3), cost of root path is 19 Topology change flag not set, detected flag not set Number of topology changes 2 last change occurred 00:02:19 ago Times: hold 1, topology change 35, notification 2 hello 2, max age 20, forward delay 15 Timers:hello 0, topology change 0, notification 0, aging 300 Port 323 (FastEthernet6/3) of VLAN1 is forwarding Port path cost 19, Port priority 128, Port Identifier 129.67. Designated root has priority 32768, address 0001.6445.4400 Designated bridge has priority 32768, address 0001.6445.4400 Designated port id is 129.67, designated path cost 0 Timers:message age 2, forward delay 0, hold 0 Number of transitions to forwarding state:1 Port 324 (FastEthernet6/4) of VLAN1 is blocking Port path cost 19, Port priority 128, Port Identifier 129.68. Designated root has priority 32768, address 0001.6445.4400 Designated bridge has priority 32768, address 0001.6445.4400 Designated port id is 129.68, designated path cost 0 Timers:message age 2, forward delay 0, hold 0 Number of transitions to forwarding state:0
You can set the switch as the root:
Switch# configure terminal Switch(config)# spanning-tree vlan 1 root primary Switch(config)# spanning-tree vlan 1 root primary VLAN 1 bridge priority set to 8192 VLAN 1 bridge max aging time unchanged at 20 VLAN 1 bridge hello time unchanged at 2 VLAN 1 bridge forward delay unchanged at 15
This configuration is the one after the switch becomes the root:
Switch# show spanning-tree vlan 1 VLAN1 is executing the ieee compatible Spanning Tree protocol Bridge Identifier has priority 8192, address 0030.94fc.0a00 Configured hello time 2, max age 20, forward delay 15 We are the root of the spanning tree Topology change flag set, detected flag set Number of topology changes 3 last change occurred 00:00:09 ago Times: hold 1, topology change 35, notification 2 hello 2, max age 20, forward delay 15 Timers:hello 0, topology change 25, notification 0, aging 15 Port 323 (FastEthernet6/3) of VLAN1 is forwarding Port path cost 19, Port priority 128, Port Identifier 129.67. Designated root has priority 8192, address 0030.94fc.0a00 Designated bridge has priority 8192, address 0030.94fc.0a00 Designated port id is 129.67, designated path cost 0 Timers:message age 0, forward delay 0, hold 0 Number of transitions to forwarding state:1 BPDU:sent 9, received 105 Port 324 (FastEthernet6/4) of VLAN1 is listening Port path cost 19, Port priority 128, Port Identifier 129.68. Designated root has priority 8192, address 0030.94fc.0a00 Designated bridge has priority 8192, address 0030.94fc.0a00 Designated port id is 129.68, designated path cost 0 Timers:message age 0, forward delay 5, hold 0 Number of transitions to forwarding state:0 BPDU:sent 6, received 102
Note Because the bridge priority is now set at 8192, this switch becomes the root of the spanning tree.
Configuring a Secondary Root Switch
When you configure a switch as the secondary root, the spanning tree bridge priority is modified from the default value (32,768) to 16,384. This means that the switch is likely to become the root bridge for the specified VLANs if the primary root bridge fails (assuming the other switches in the network use the default bridge priority of 32,768).
You can run this command on more than one switch to configure multiple backup root switches. Use the same network diameter and hello time values that you used when configuring the primary root switch.
Note We recommend that you avoid manually configuring the hello time, forward delay time, and maximum age time after configuring the switch as the root bridge.
To configure a switch as the secondary root switch, perform this task:
|
|
|
Step 1
|
Switch(config)# [
no
]
spanning-tree vlan
vlan_ID
root secondary
[
diameter
hops
[
hello-time
seconds
]]
|
Configures a switch as the secondary root switch.
Use the
no
keyword to restore the defaults.
|
Step 2
|
|
Exits configuration mode.
|
This example shows how to configure the switch as the secondary root switch for VLAN 10, with a network diameter of 4:
Switch# configure terminal Switch(config)# spanning-tree vlan 10 root secondary diameter 4 VLAN 10 bridge priority set to 16384 VLAN 10 bridge max aging time set to 14 VLAN 10 bridge hello time unchanged at 2 VLAN 10 bridge forward delay set to 10
This example shows how to verify the configuration of VLAN 1:
Switch#sh spanning-tree vlan 1 Spanning tree enabled protocol ieee Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Status ---------------- ---- --- --------- -------- -------------------------------- Fa3/1 Desg FWD 19 128.129 P2p Fa3/2 Desg FWD 19 128.130 P2p Fa3/48 Desg FWD 19 128.176 Edge P2p
Configuring STP Port Priority
In the event of a loop, a spanning tree considers port priority when selecting an interface to put into the forwarding state. You can assign higher priority values to interfaces that you want a spanning tree to select first and lower priority values to interfaces that you want a spanning tree to select last. If all interfaces have the same priority value, a spanning tree puts the interface with the lowest interface number in the forwarding state and blocks other interfaces. The possible priority range is 0 through 240, configurable in increments of 16 (the default is 128).
Note The Cisco IOS software uses the port priority value when the interface is configured as an access port and uses VLAN port priority values when the interface is configured as a trunk port.
To configure the spanning tree port priority of an interface, perform this task:
|
|
|
Step 1
|
Switch(config)#
interface
{{
fastethernet
|
gigabitethernet
|
tengigabitethernet
}
slot
/
port
} | {
port-channel
port_channel_number
}
|
Specifies an interface to configure.
|
Step 2
|
Switch(config-if)# [
no
]
spanning-tree port-priority
port_priority
|
Configures the port priority for an interface. The
port_priority
value can be from 0 to 240, in increments of 16.
Use the
no
keyword to restore the defaults.
|
Step 3
|
Switch(config-if)# [
no
]
spanning-tree vlan
vlan_ID
port-priority
port_priority
|
Configures the VLAN port priority for an interface. The
port_priority
value can be from 0 to 240, in increments of 16.
Use the
no
keyword to restore the defaults.
|
Step 4
|
|
Exits configuration mode.
|
Step 5
|
Switch#
show spanning-tree
interface
{{
fastethernet
|
gigabitethernet
}
slot
/
port
} | {
port-channel
port_channel_number
}
show spanning-tree
vlan
vlan_ID
|
Verifies the configuration.
|
This example shows how to configure the spanning tree port priority of a Fast Ethernet interface:
Switch# configure terminal Switch(config)# interface fastethernet 5/8 Switch(config-if)# spanning-tree port-priority 100
This example shows how to verify the configuration of a Fast Ethernet interface when it is configured as an access port:
Switch# show spanning-tree interface fastethernet 3/1 Vlan Role Sts Cost Prio.Nbr Status ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.129 P2p VLAN1002 Desg FWD 19 128.129 P2p VLAN1003 Desg FWD 19 128.129 P2p VLAN1004 Desg FWD 19 128.129 P2p VLAN1005 Desg FWD 19 128.129 P2p
This example shows how to display the details of the interface configuration when the interface is configured as an access port:
Switch# show spanning-tree interface fastethernet 3/1 detail Port 129 (FastEthernet3/1) of VLAN0001 is forwarding Port path cost 19, Port priority 128, Port Identifier 128.129. Designated root has priority 32768, address 0003.6b10.e800 Designated bridge has priority 32768, address 0003.6b10.e800 Designated port id is 128.129, designated path cost 0 Timers:message age 0, forward delay 0, hold 0 Number of transitions to forwarding state:1 Link type is point-to-point by default BPDU:sent 187, received 1 Port 129 (FastEthernet3/1) of VLAN1002 is forwarding Port path cost 19, Port priority 128, Port Identifier 128.129. Designated root has priority 32768, address 0003.6b10.ebe9 Designated bridge has priority 32768, address 0003.6b10.ebe9 Designated port id is 128.129, designated path cost 0 Timers:message age 0, forward delay 0, hold 0 Number of transitions to forwarding state:1 Link type is point-to-point by default Port 129 (FastEthernet3/1) of VLAN1003 is forwarding Port path cost 19, Port priority 128, Port Identifier 128.129. Designated root has priority 32768, address 0003.6b10.ebea Designated bridge has priority 32768, address 0003.6b10.ebea Designated port id is 128.129, designated path cost 0 Timers:message age 0, forward delay 0, hold 0 Number of transitions to forwarding state:1 Link type is point-to-point by default Port 129 (FastEthernet3/1) of VLAN1004 is forwarding Port path cost 19, Port priority 128, Port Identifier 128.129. Designated root has priority 32768, address 0003.6b10.ebeb Designated bridge has priority 32768, address 0003.6b10.ebeb Designated port id is 128.129, designated path cost 0 Timers:message age 0, forward delay 0, hold 0 Number of transitions to forwarding state:1 Link type is point-to-point by default Port 129 (FastEthernet3/1) of VLAN1005 is forwarding Port path cost 19, Port priority 128, Port Identifier 128.129. Designated root has priority 32768, address 0003.6b10.ebec Designated bridge has priority 32768, address 0003.6b10.ebec Designated port id is 128.129, designated path cost 0 Timers:message age 0, forward delay 0, hold 0 Number of transitions to forwarding state:1 Link type is point-to-point by default
Note The show spanning-tree port-priority command displays only information for ports with an active link. If there is no port with an active link, enter a show running-config interface command to verify the configuration.
This example shows how to configure the spanning tree VLAN port priority of a Fast Ethernet interface:
Switch# configure terminal Switch(config)# interface fastethernet 5/8 Switch(config-if)# spanning-tree vlan 200 port-priority 64
This example shows how to verify the configuration of VLAN 200 on the interface when it is configured as a trunk port:
Switch# show spanning-tree vlan 200 Port 264 (FastEthernet5/8) of VLAN200 is forwarding Port path cost 19, Port priority 64, Port Identifier 129.8. Designated root has priority 32768, address 0010.0d40.34c7 Designated bridge has priority 32768, address 0010.0d40.34c7 Designated port id is 128.1, designated path cost 0 Timers: message age 2, forward delay 0, hold 0 Number of transitions to forwarding state: 1 BPDU: sent 0, received 13513
Configuring STP Port Cost
The default value for spanning tree port path cost is derived from the interface media speed. In the event of a loop, spanning tree considers port cost when selecting an interface to put into the forwarding state. You can assign lower cost values to interfaces that you want spanning tree to select first, and higher cost values to interfaces that you want spanning tree to select last. If all interfaces have the same cost value, spanning tree puts the interface with the lowest interface number in the forwarding state and blocks other interfaces. The possible cost range is 1 through 200,000,000 (the default is media-specific).
Spanning tree uses the port cost value when the interface is configured as an access port and uses VLAN port cost values when the interface is configured as a trunk port.
To configure the spanning tree port cost of an interface, perform this task:
|
|
|
Step 1
|
Switch(config)#
interface
{{
fastethernet
|
gigabitethernet
|
tengigabitethernet
}
slot
/
port
} | {
port-channel
port_channel_number
}
|
Specifies an interface to configure.
|
Step 2
|
Switch(config-if)# [
no
]
spanning-tree cost
port_cost
|
Configures the port cost for an interface. The
port_cost
value can be from 1 to 200,000,000.
Use the
no
keyword to restore the defaults.
|
Step 3
|
Switch(config-if)# [
no
]
spanning-tree vlan
vlan_ID
cost
port_cost
|
Configures the VLAN port cost for an interface. The
port_cost
value can be from 1 to 200,000,000.
Use the
no
keyword to restore the defaults.
|
Step 4
|
|
Exits configuration mode.
|
Step 5
|
Switch#
show spanning-tree
interface
{{
fastethernet
|
gigabitethernet
}
slot
/
port
} | {
port-channel
port_channel_number
}
show spanning-tree vlan
vlan_ID
|
Verifies the configuration.
|
This example shows how to change the spanning tree port cost of a Fast Ethernet interface:
Switch# configure terminal Switch(config)# interface fastethernet 5/8 Switch(config-if)# spanning-tree cost 18
This example shows how to verify the configuration of the interface when it is configured as an access port:
Switch# show spanning-tree interface fastethernet 5/8 Port 264 (FastEthernet5/8) of VLAN200 is forwarding Port path cost 18, Port priority 100, Port Identifier 129.8. Designated root has priority 32768, address 0010.0d40.34c7 Designated bridge has priority 32768, address 0010.0d40.34c7 Designated port id is 128.1, designated path cost 0 Timers: message age 2, forward delay 0, hold 0 Number of transitions to forwarding state: 1 BPDU: sent 0, received 13513
This example shows how to configure the spanning tree VLAN port cost of a Fast Ethernet interface:
Switch# configure terminal Switch(config)# interface fastethernet 5/8 Switch(config-if)# spanning-tree vlan 200 cost 17
This example shows how to verify the configuration of VLAN 200 on the interface when it is configured as a trunk port:
Switch# show spanning-tree vlan 200 Port 264 (FastEthernet5/8) of VLAN200 is forwarding Port path cost 17, Port priority 64, Port Identifier 129.8. Designated root has priority 32768, address 0010.0d40.34c7 Designated bridge has priority 32768, address 0010.0d40.34c7 Designated port id is 128.1, designated path cost 0 Timers: message age 2, forward delay 0, hold 0 Number of transitions to forwarding state: 1 BPDU: sent 0, received 13513
Note The show spanning-tree command displays only information for ports with an active link (green light is on). If there is no port with an active link, you can issue a show running-config command to confirm the configuration.
Configuring the Bridge Priority of a VLAN
Note Exercise care when configuring the bridge priority of a VLAN. In most cases, we recommend that you enter the spanning-tree vlan vlan_ID root primary and the spanning-tree vlan vlan_ID root secondary commands to modify the bridge priority.
To configure the spanning tree bridge priority of a VLAN, perform this task:
|
|
|
Step 1
|
Switch(config)# [
no
]
spanning-tree vlan
vlan_ID
priority
bridge_priority
|
Configures the bridge priority of a VLAN. The
bridge_priority
value can be from 1 to 65,534.
Use the
no
keyword to restore the defaults.
|
Step 2
|
|
Exits configuration mode.
|
Step 3
|
Switch#
show spanning-tree
vlan
vlan_ID
bridge
[
brief
]
|
Verifies the configuration.
|
This example shows how to configure the bridge priority of VLAN 200 to 33,792:
Switch# configure terminal Switch(config)# spanning-tree vlan 200 priority 33792
This example shows how to verify the configuration:
Switch# show spanning-tree vlan 200 bridge brief Vlan Bridge ID Time Age Delay Protocol ---------------- -------------------- ---- ---- ----- -------- VLAN200 33792 0050.3e8d.64c8 2 20 15 ieee
Configuring the Hello Time
Note Exercise care when configuring the hello time. In most cases, we recommend that you use the spanning-tree vlan vlan_ID root primary and the spanning-tree vlan vlan_ID root secondary commands to modify the hello time.
To configure the spanning tree hello time of a VLAN, perform this task:
|
|
|
Step 1
|
Switch(config)# [
no
]
spanning-tree vlan
vlan_ID
hello-time
hello_time
|
Configures the hello time of a VLAN. The
hello_time
value can be from 1 to 10 seconds.
Use the
no
keyword to restore the defaults.
|
Step 2
|
|
Exits configuration mode.
|
Step 3
|
Switch#
show spanning-tree
vlan
vlan_ID
bridge
[
brief
]
|
Verifies the configuration.
|
This example shows how to configure the hello time for VLAN 200 to 7 seconds:
Switch# configure terminal Switch(config)# spanning-tree vlan 200 hello-time 7
This example shows how to verify the configuration:
Switch# show spanning-tree vlan 200 bridge brief Vlan Bridge ID Time Age Delay Protocol ---------------- -------------------- ---- ---- ----- -------- VLAN200 49152 0050.3e8d.64c8 7 20 15 ieee
Configuring the Maximum Aging Time for a VLAN
Note Exercise care when configuring aging time. In most cases, we recommend that you use the spanning-tree vlan vlan_ID root primary and the spanning-tree vlan vlan_ID root secondary commands to modify the maximum aging time.
To configure the spanning tree maximum aging time for a VLAN, perform this task:
|
|
|
Step 1
|
Switch(config)# [
no
]
spanning-tree vlan
vlan_ID
max-age
max_age
|
Configures the maximum aging time of a VLAN. The
max_age
value can be from 6 to 40 seconds.
Use the
no
keyword to restore the defaults.
|
Step 2
|
|
Exits configuration mode.
|
Step 3
|
Switch#
show spanning-tree
vlan
vlan_ID
bridge
[
brief
]
|
Verifies the configuration.
|
This example shows how to configure the maximum aging time for VLAN 200 to 36 seconds:
Switch# configure terminal Switch(config)# spanning-tree vlan 200 max-age 36
This example shows how to verify the configuration:
Switch# show spanning-tree vlan 200 bridge brief Vlan Bridge ID Time Age Delay Protocol ---------------- -------------------- ---- ---- ----- -------- VLAN200 49152 0050.3e8d.64c8 2 36 15 ieee
Configuring the Forward-Delay Time for a VLAN
Note Exercise care when configuring forward-delay time. In most cases, we recommend that you use the spanning-tree vlan vlan_ID root primary and the spanning-tree vlan vlan_ID root secondary commands to modify the forward delay time.
To configure the spanning tree forward delay time for a VLAN, perform this task:
|
|
|
Step 1
|
Switch(config)# [
no
]
spanning-tree vlan
vlan_ID
forward-time
forward_time
|
Configures the forward time of a VLAN. The
forward_time
value can be from 4 to 30 seconds.
Use the
no
keyword to restore the defaults.
|
Step 2
|
|
Exits configuration mode.
|
Step 3
|
Switch#
show spanning-tree
vlan
vlan_ID
bridge
[
brief
]
|
Verifies the configuration.
|
This example shows how to configure the forward delay time for VLAN 200 to 21 seconds:
Switch# configure terminal Switch(config)# spanning-tree vlan 200 forward-time 21
This example shows how to verify the configuration:
Switch# show spanning-tree vlan 200 bridge brief Vlan Bridge ID Time Age Delay Protocol ---------------- -------------------- ---- ---- ----- -------- VLAN200 49152 0050.3e8d.64c8 2 20 21 ieee
This example shows how to display spanning tree information for the bridge:
Switch# show spanning-tree bridge Vlan Bridge ID Time Age Dly Protocol ---------------- --------------------------------- ----- --- --- -------- VLAN200 49152 0050.3e8d.64c8 2 20 15 ieee VLAN202 49152 0050.3e8d.64c9 2 20 15 ieee VLAN203 49152 0050.3e8d.64ca 2 20 15 ieee VLAN204 49152 0050.3e8d.64cb 2 20 15 ieee VLAN205 49152 0050.3e8d.64cc 2 20 15 ieee VLAN206 49152 0050.3e8d.64cd 2 20 15 ieee
Disabling Spanning Tree Protocol
To disable spanning tree on a per-VLAN basis, perform this task:
|
|
|
Step 1
|
Switch(config)#
no spanning-tree vlan
vlan_ID
|
Disables spanning tree on a per-VLAN basis.
|
Step 2
|
|
Exits configuration mode.
|
Step 3
|
Switch#
show spanning-tree vlan
vlan_ID
|
Verifies that spanning tree is disabled.
|
This example shows how to disable spanning tree on VLAN 200:
Switch# configure terminal Switch(config)# no spanning-tree vlan 200
This example shows how to verify the configuration:
Switch# show spanning-tree vlan 200 Spanning tree instance for VLAN 200 does not exist.
Enabling Per-VLAN Rapid Spanning Tree
Per-VLAN Rapid Spanning Tree (PVRST+) uses the existing PVST+ framework for configuration purposes and for interaction with other features. It also supports some of the PVST+ extensions.
Note Beginning in Cisco IOS XE Release 3.8.0E and Cisco IOS Release 15.2(4)E, Per-VLAN Rapid Spanning Tree (PVRST+) is the default STP mode on Cisco Catalyst 4500 series, Cisco Catalyst 4900M, Cisco Catalyst 4948E and Cisco Catalyst 4948F switches.
To enable PVRST+, perform this task:
:
|
|
|
Step 1
|
Switch(config)# [
no
] spantree mode rapid-pvst
|
Enables PVRST+.
|
Step 2
|
Switch(config)# interface interface/port
|
Switches to interface configuration mode.
|
Step 3
|
Switch(config-if)#
spanning-tree link-type point-to-point
|
Sets the link-type to point-to-point mode for the port.
|
Step 4
|
|
Exits interface mode.
|
Step 5
|
|
Exits configuration mode.
|
Step 6
|
Switch(config-if)# clear spantree detected-protocols mod/port
|
Detects any legacy bridges on the port
|
Step 7
|
Switch# show spanning-tree summary totals
|
Verifies the PVRST+ configuration.
|
The following example shows how to configure PVRST+:
Enter configuration commands, one per line. End with CNTL/Z. Switch(config)# spanning-tree mode rapid-pvst Switch(config)# int fa 6/4 Switch(config-if)# spanning-tree link-type point-to-point 23:55:32:%SYS-5-CONFIG_I:Configured from console by console Switch# clear spanning-tree detected-protocols
The following example shows how to verify the configuration:
Switch# show spanning-tree summary totals Switch is in rapid-pvst mode Extended system ID is disabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled EtherChannel misconfig guard is enabled Pathcost method used is short Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ----------
Specifying the Link Type
Rapid connectivity is established only on point-to-point links. Spanning tree views a point-to-point link as a segment connecting only two switches running the spanning tree algorithm. Because the switch assumes that all full-duplex links are point-to-point links and that half-duplex links are shared links, you can avoid explicitly configuring the link type. To configure a specific link type, use the
spanning-tree linktype
command.
Restarting Protocol Migration
A switch running both MSTP and RSTP supports a built-in protocol migration process that enables the switch to interoperate with legacy 802.1D switches. If this switch receives a legacy 802.1D configuration BPDU (a BPDU with the protocol version set to 0), it sends only 802.1D BPDUs on that port. When an MSTP switch receives a legacy BPDU, it can also detect the following:
-
A port is at the boundary of a region
-
An MST BPDU (version 3) that is associated with a different region
-
An RST BPDU (version 2)
The switch, however, does not automatically revert to the MSTP mode if it no longer receives 802.1D BPDUs because it cannot determine whether or not the legacy switch has been removed from the link unless the legacy switch is the designated switch. A switch also might continue to assign a boundary role to a port when the switch to which it is connected has joined the region.
To restart the protocol migration process on the entire switch (that is, to force renegotiation with neighboring switches), use the
clear spanning-tree detected-protocols
commands in privileged EXEC mode. To restart the protocol migration process on a specific interface, enter the
clear spanning-tree detected-protocols interface
command in interface-id
privileged EXEC mode.
About MST
The following sections describe how MST works on a Catalyst 4500 series switch:
IEEE 802.1s MST
MST extends the IEEE 802.1w rapid spanning tree (RST) algorithm to multiple spanning trees. This extension provides both rapid convergence and load balancing in a VLAN environment. MST converges faster than per-VLAN Spanning Tree Plus (PVST+) and is backward compatible with 802.1D STP, 802.1w (Rapid Spanning Tree Protocol [RSTP]), and the Cisco PVST+ architecture.
MST allows you to build multiple spanning trees over trunks. You can group and associate VLANs to spanning tree instances. Each instance can have a topology independent of other spanning tree instances. This architecture provides multiple forwarding paths for data traffic and enables load balancing. Network fault tolerance is improved because a failure in one instance (forwarding path) does not affect other instances.
In large networks, you can more easily administer the network and use redundant paths by locating different VLAN and spanning tree instance assignments in different parts of the network. A spanning tree instance can exist only on bridges that have compatible VLAN instance assignments. You must configure a set of bridges with the same MST configuration information, which allows them to participate in a specific set of spanning tree instances. Interconnected bridges that have the same MST configuration are referred to as an
MST region
.
MST uses the modified RSTP, MSTP. MST has the following characteristics:
-
MST runs a variant of spanning tree called Internal Spanning Tree (IST). IST augments Common Spanning Tree (CST) information with internal information about the MST region. The MST region appears as a single bridge to adjacent single spanning tree (SST) and MST regions.
-
A bridge running MST provides interoperability with SST bridges as follows:
– MST bridges run IST, which augments CST information with internal information about the MST region.
– IST connects all the MST bridges in the region and appears as a subtree in the CST that includes the whole bridged domain. The MST region appears as a virtual bridge to adjacent SST bridges and MST regions.
– The Common and Internal Spanning Tree (CIST) is the collection of the following: ISTs in each MST region, the CST that interconnects the MST regions, and the SST bridges. CIST is identical to an IST inside an MST region and identical to a CST outside an MST region. The STP, RSTP, and MSTP together elect a single bridge as the root of the CIST.
-
MST establishes and maintains additional spanning trees within each MST region. These spanning trees are termed MST instances (MSTIs). The IST is numbered 0, and the MSTIs are numbered 1, 2, 3, and so on. Any MSTI is local to the MST region and is independent of MSTIs in another region, even if the MST regions are interconnected.
MST instances combine with the IST at the boundary of MST regions to become the CST as follows:
– Spanning tree information for an MSTI is contained in an MSTP record (M-record).
M-records are always encapsulated within MST bridge protocol data units (BPDUs). The original spanning trees computed by MSTP are called M-trees, which are active only within the MST region. M-trees merge with the IST at the boundary of the MST region and form the CST.
-
MST provides interoperability with PVST+ by generating PVST+ BPDUs for the non-CST VLANs.
-
MST supports some of the PVST+ extensions in MSTP as follows:
– UplinkFast and BackboneFast are not available in MST mode; they are part of RSTP.
– PortFast is supported.
– BPDU filter and BPDU guard are supported in MST mode.
– Loop guard and root guard are supported in MST. MST preserves the VLAN 1 disabled functionality except that BPDUs are still transmitted in VLAN 1.
– MST switches operate as if MAC reduction is enabled.
– For private VLANs (PVLANs), you must map a secondary VLAN to the same instance as the primary.
IEEE 802.1w RSTP
RSTP, specified in 802.1w, supersedes STP specified in 802.1D, but remains compatible with STP. You configure RSTP when you configure the MST feature. For more information, see the “Configuring MST” section.
RSTP provides the structure on which the MST operates, significantly reducing the time to reconfigure the active topology of a network when its physical topology or configuration parameters change. RSTP selects one switch as the root of a spanning-tree-connected active topology and assigns port roles to individual ports of the switch, depending on whether that port is part of the active topology.
RSTP provides rapid connectivity following the failure of a switch, switch port, or a LAN. A new root port and the designated port on the other side of the bridge transition to the forwarding state through an explicit handshake between them. RSTP allows switch port configuration so the ports can transition to forwarding directly when the switch reinitializes.
RSTP provides backward compatibility with 802.1D bridges as follows:
-
RSTP selectively sends 802.1D-configured BPDUs and Topology Change Notification (TCN) BPDUs on a per-port basis.
-
When a port initializes, the migration delay timer starts and RSTP BPDUs are transmitted. While the migration delay timer is active, the bridge processes all BPDUs received on that port.
-
If the bridge receives an 802.1D BPDU after a port’s migration delay timer expires, the bridge assumes it is connected to an 802.1D bridge and starts using only 802.1D BPDUs.
-
When RSTP uses 802.1D BPDUs on a port and receives an RSTP BPDU after the migration delay expires, RSTP restarts the migration delay timer and begins using RSTP BPDUs on that port.
RSTP Port Roles
In RSTP, the port roles are defined as follows:
-
Root—A forwarding port elected for the spanning tree topology.
-
Designated—A forwarding port elected for every switched LAN segment.
-
Alternate—An alternate path to the root bridge to that provided by the current root port.
-
Backup—A backup for the path provided by a designated port toward the leaves of the spanning tree. Backup ports can exist only where two ports are connected together in a loopback mode or bridge with two or more connections to a shared LAN segment.
-
Disabled—A port that has no role within the operation of spanning tree.
The system assigns port roles as follows:
-
A root port or designated port role includes the port in the active topology.
-
An alternate port or backup port role excludes the port from the active topology.
RSTP Port States
The port state controls the forwarding and learning processes and provides the values of discarding, learning, and forwarding.
Table 22-5
shows the STP port states and RSTP port states.
Table 22-5 Comparison Between STP and RSTP Port States
|
|
|
Port Included in Active Topology
|
Enabled
|
Blocking
|
Discarding
|
No
|
Enabled
|
Listening
|
Discarding
|
No
|
Enabled
|
Learning
|
Learning
|
Yes
|
Enabled
|
Forwarding
|
Forwarding
|
Yes
|
Disabled
|
Disabled
|
Discarding
|
No
|
In a stable topology, RSTP ensures that every root port and designated port transitions to the forwarding state while all alternate ports and backup ports are always in the discarding state.
MST-to-SST Interoperability
A virtual bridged LAN may contain interconnected regions of SST and MST bridges. Figure 22-2 shows this relationship.
Figure 22-2 Network with Interconnected SST and MST Regions
To STP running in the SST region, an MST region appears as a single SST or pseudobridge, which operates as follows:
-
Although the values for root identifiers and root path costs match for all BPDUs in all pseudobridges, a pseudobridge differs from a single SST bridge as follows:
– The pseudobridge BPDUs have different bridge identifiers. This difference does not affect STP operation in the neighboring SST regions because the root identifier and root cost are the same.
– BPDUs sent from the pseudobridge ports may have significantly different message ages. Because the message age increases by one second for each hop, the difference in the message age is measured in seconds.
-
Data traffic from one port of a pseudobridge (a port at the edge of a region) to another port follows a path entirely contained within the pseudobridge or MST region. Data traffic belonging to different VLANs might follow different paths within the MST regions established by MST.
-
The system prevents looping by doing either of the following:
– Blocking the appropriate pseudobridge ports by allowing one forwarding port on the boundary and blocking all other ports.
– Setting the CST partitions to block the ports of the SST regions.
Common Spanning Tree
CST (802.1Q) is a single spanning tree for all the VLANs. On a Catalyst 4500 series switch running PVST+, the VLAN 1 spanning tree corresponds to CST. On a Catalyst 4500 series switch running MST, IST (instance 0) corresponds to CST.
MST Instances
We support 65 instances including instance 0. Each spanning tree instance is identified by an instance ID that ranges from 0 to 4094. Instance 0 is mandatory and is always present. Rest of the instances are optional.
MST Configuration Parameters
The MST configuration includes these three parts:
-
Name—A 32-character string (null padded) that identifies the MST region.
-
Revision number—An unsigned 16-bit number that identifies the revision of the current MST configuration.
Note You must set the revision number when required as part of the MST configuration. The revision number is not incremented automatically each time you commit the MST configuration.
-
MST configuration table—An array of 4096 bytes. Each byte, interpreted as an unsigned integer, corresponds to a VLAN. The value is the instance number to which the VLAN is mapped. The first byte that corresponds to VLAN 0 and the 4096th byte that corresponds to VLAN 4095 are unused and always set to zero.
You must configure each byte manually. Use SNMP or the CLI to perform the configuration.
MST BPDUs contain the MST configuration ID and the checksum. An MST bridge accepts an MST BPDU only if the MST BPDU configuration ID and the checksum match its own MST region configuration ID and checksum. If either value is different, the MST BPDU is considered to be an SST BPDU.
MST Regions
These sections describe MST regions:
MST Region Overview
Interconnected bridges that have the same MST configuration are referred to as an MST region. There is no limit on the number of MST regions in the network.
To form an MST region, bridges can be either of the following:
-
An MST bridge that is the only member of the MST region.
-
An MST bridge interconnected by a LAN. A LAN’s designated bridge has the same MST configuration as an MST bridge. All the bridges on the LAN can process MST BPDUs.
If you connect two MST regions with different MST configurations, the MST regions do the following:
-
Load balance across redundant paths in the network. If two MST regions are redundantly connected, all traffic flows on a single connection with the MST regions in a network.
-
Provide an RSTP handshake to enable rapid connectivity between regions. However, the handshaking is not as fast as between two bridges. To prevent loops, all the bridges inside the region must agree upon the connections to other regions. This situation introduces a delay. We do not recommend partitioning the network into a large number of regions.
Boundary Ports
A boundary port is a port that connects to a LAN, the designated bridge of which is either an SST bridge or a bridge with a different MST configuration. A designated port knows that it is on the boundary if it detects an STP bridge or receives an agreement message from an RST or MST bridge with a different configuration.
At the boundary, the role of MST ports do not matter; their state is forced to be the same as the IST port state. If the boundary flag is set for the port, the MSTP Port Role selection mechanism assigns a port role to the boundary and the same state as that of the IST port. The IST port at the boundary can take up any port role except a backup port role.
IST Master
The IST master of an MST region is the bridge with the lowest bridge identifier and the least path cost to the CST root. If an MST bridge is the root bridge for CST, then it is the IST master of that MST region. If the CST root is outside the MST region, then one of the MST bridges at the boundary is selected as the IST master. Other bridges on the boundary that belong to the same region eventually block the boundary ports that lead to the root.
If two or more bridges at the boundary of a region have an identical path to the root, you can set a slightly lower bridge priority to make a specific bridge the IST master.
The root path cost and message age inside a region stay constant, but the IST path cost is incremented and the IST remaining hops are decremented at each hop. Enter the
show spanning-tree mst
command to display the information about the IST master, path cost, and remaining hops for the bridge.
Edge Ports
A port that is connected to a nonbridging device (for example, a host or a switch) is an edge port. A port that connects to a hub is also an edge port if the hub or any LAN that is connected to it does not have a bridge. An edge port can start forwarding as soon as the link is up.
MST requires that you configure each port connected to a host. To establish rapid connectivity after a failure, you need to block the non-edge designated ports of an intermediate bridge. If the port connects to another bridge that can send back an agreement, then the port starts forwarding immediately. Otherwise, the port needs twice the forward delay time to start forwarding again. You must explicitly configure the ports that are connected to the hosts and switches as edge ports while using MST.
To prevent a misconfiguration, the PortFast operation is turned off if the port receives a BPDU. You can display the configured and operational status of PortFast by using the
show spanning-tree mst
interface
command.
Link Type
Rapid connectivity is established only on point-to-point links. You must configure ports explicitly to a host or switch. However, cabling in most networks meets this requirement. By entering the
spanning-tree linktype
command to treating all full-duplex links as point-to-point links, you can avoid explicit configuration.
Message Age and Hop Count
IST and MST instances do not use the message age and maximum age timer settings in the BPDU. IST and MST use a separate hop count mechanism that is very similar to the IP time-to live (TTL) mechanism. You can configure each MST bridge with a maximum hop count. The root bridge of the instance sends a BPDU (or M-record) with the remaining hop count that is equal to the maximum hop count. When a bridge receives a BPDU (or M-record), it decrements the received remaining hop count by one. The bridge discards the BPDU (M-record) and ages out the information held for the port if the count reaches zero after decrementing. The nonroot bridges propagate the decremented count as the remaining hop count in the BPDUs (M-records) they generate.
The message age and maximum age timer settings in the RST portion of the BPDU remain the same throughout the region, and the same values are propagated by the region’s designated ports at the boundary.
About MST-to-PVST+ Interoperability (PVST+ Simulation)
The PVST+ simulation feature enables seamless interoperability between MST and Rapid PVST+. You can enable or disable this per port, or globally. PVST+ simulation is enabled by default.
However, you may want to control the connection between MST and Rapid PVST+ to protect against accidentally connecting an MST-enabled port to a Rapid PVST+-enabled port. Because Rapid PVST+ is the default STP mode, you may encounter many Rapid PVST+-enabled connections.
Disabling this feature causes the switch to stop the MST region from interacting with PVST+ regions. The MST-enabled port moves to a PVST peer inconsistent (blocking) state once it detects it is connected to a Rapid PVST+-enabled port. This port remains in the inconsistent state until the port stops receiving Shared Spanning Tree Protocol (SSTP) BPDUs, and then the port resumes the normal STP transition process.
You can for instance, disable PVST+ simulation, to prevent an incorrectly configured switch from connecting to a network where the STP mode is not MSTP (the default mode is PVST+).
Observe these guidelines when you configure MST switches (in the same region) to interact with PVST+ switches:
-
Configure the root for all VLANs inside the MST region as shown in this example:
Switch# show spanning-tree mst interface gigabitethernet 1/1 GigabitEthernet1/1 of MST00 is root forwarding Edge port: no (trunk) port guard : none (default) Link type: point-to-point (auto) bpdu filter: disable (default) Boundary : boundary (PVST) bpdu guard : disable (default) Bpdus sent 10, received 310 Instance Role Sts Cost Prio.Nbr Vlans mapped -------- ---- --- --------- -------- ------------------------------- 0 Root FWD 20000 128.1 1-2,4-2999,4000-4094 3 Boun FWD 20000 128.1 3,3000-3999
The ports that belong to the MST switch at the boundary simulate PVST+ and send PVST+ BPDUs for all the VLANs.
If you enable loop guard on the PVST+ switches, the ports might change to a loop-inconsistent state when the MST switches change their configuration. To correct the loop-inconsistent state, you must disable and re-enable loop guard on that PVST+ switch.
-
Do not locate the root for some or all of the VLANs inside the PVST+ side of the MST switch because when the MST switch at the boundary receives PVST+ BPDUs for all or some of the VLANs on its designated ports, root guard sets the port to the blocking state.
-
When you connect a PVST+ switch to two different MST regions, the topology change from the PVST+ switch does not pass beyond the first MST region. In such a case, the topology changes are propagated only in the instance to which the VLAN is mapped. The topology change stays local to the first MST region, and the Cisco Access Manager (CAM) entries in the other region are not flushed. To make the topology change visible throughout other MST regions, you can map that VLAN to IST or connect the PVST+ switch to the two regions through access links.
-
When you disable the PVST+ simulation, note that the PVST+ peer inconsistency can also occur while the port is already in other states of inconsistency. For example, the root bridge for all STP instances must all be in either the MST region or the Rapid PVST+ side. If the root bridge for all STP instances are not on one side or the other, the software moves the port into a PVST + simulation-inconsistent state.
Note We recommend that you put the root bridge for all STP instances in the MST region.
Configuring PVST+ Simulation
PVST+ simulation is enabled by default. This means that all ports automatically interoperate with a connected device that is running in Rapid PVST+ mode. If you disabled the feature and want to re-configure it, refer to the following tasks.
To enable PVST+ simulation globally, perform this task:
|
|
|
Step 1
|
Switch#
configure terminal
|
Enters the global configuration mode.
|
Step 2
|
Switch(config)# [
no
]
spanning-tree mst simulate pvst global
|
Enables PVST+ simulation globally.
To prevent the switch from automatically interoperating with a connecting switch that is running Rapid PVST+, enter the
no
version of the command.
|
This example shows how to prevent the switch from automatically interoperating with a connecting switch that is running Rapid PVST+:
Switch# configure terminal Switch(config)# no spanning-tree mst simulate pvst global
To enable PVST+ simulation on a port, perform this task:
|
|
|
Step 1
|
Switch#
configure terminal
|
Enters the global configuration mode.
|
Step 2
|
Switch(config)#
interface
{
type slot
/
port
}
|
Selects a port to configure.
|
Step 3
|
Switch(config-if)#
spanning-tree mst simulate pvst
|
Enables PVST+ simulation on the specified interface.
To prevent a specified interface from automatically interoperating with a connecting switch that is not running MST, enter the
spanning-tree mst simulate pvst disable
command.
|
This example shows how to prevent a port from automatically interoperating with a connecting device that is running Rapid PVST+:
Switch(config)# interface gi3/13 Switch(config-if)# spanning-tree mst simulate pvst disable
The following sample output shows the system message you receive when a SSTP BPDU is received on a port and PVST+ simulation is disabled:
SPANTREE_PVST_PEER_BLOCK: PVST BPDU detected on port %s [port number]. A PVST+ peer was detected on the specified interface on the switch. PVST+ simulation feature is disabled, as a result of which the interface was moved to the spanning tree Blocking state. Identify the PVST+ switch from the network which might be configured incorrectly.
The following sample output shows the system message you receive when peer inconsistency on the interface is cleared:
SPANTREE_PVST_PEER_UNBLOCK: Unblocking port %s [port number]. The interface specified in the error message has been restored to normal spanning tree state.
This example shows the spanning tree status when port Gi3/14 has been configured to disable PVST+ simulation and is currently in the peer type inconsistent state:
Switch# show spanning-tree Spanning tree enabled protocol mstp Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32778 (priority 32768 sys-id-ext 10) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- ------------------------- Gi3/14 Desg BKN*4 128.270 P2p *PVST_Peer_Inc
This example shows the spanning tree summary when PVST+ simulation is enabled in the MSTP mode:
Switch# show spanning-tree summary Switch is in mst mode (IEEE Standard) EtherChannel misconfig guard is enabled Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled Pathcost method used is long PVST Simulation Default is enabled Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- ---------------------- -------- --------- -------- ---------- ----------
This example shows the spanning tree summary when PVST+ simulation is disabled in any STP mode:
Switch# show spanning-tree summary Switch is in mst mode (IEEE Standard) EtherChannel misconfig guard is enabled Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled Pathcost method used is long PVST Simulation Default is disabled Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- ---------------------- -------- --------- -------- ---------- ----------
This example shows the spanning tree summary when the switch is not in MSTP mode, that is, the switch is in PVST or Rapid-PVST mode. The output string displays the current STP mode:
Switch# show spanning-tree summary Switch is in rapid-pvst mode Root bridge for: VLAN0001, VLAN2001-VLAN2002 EtherChannel misconfig guard is enabled Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled Pathcost method used is short PVST Simulation Default is enabled but inactive in rapid-pvst mode Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- ---------------------- -------- --------- -------- ---------- ----------
This example shows the interface details when PVST+ simulation is globally enabled, or the default configuration:
Switch# show spanning-tree interface gi3/13 detail Port 269 (GigabitEthernet3/13) of VLAN0002 is forwarding Port path cost 4, Port priority 128, Port Identifier 128.297. Designated root has priority 32769, address 0013.5f20.01c0 Designated bridge has priority 32769, address 0013.5f20.01c0 Designated port id is 128.297, designated path cost 0 Timers: message age 0, forward delay 0, hold 0 Number of transitions to forwarding state: 1 Link type is point-to-point by default PVST Simulation is enabled by default BPDU: sent 132, received 1
This example shows the interface details when PVST+ simulation is globally disabled:
Switch# show spanning-tree interface gi3/13 detail Port 269 (GigabitEthernet3/13) of VLAN0002 is forwarding Port path cost 4, Port priority 128, Port Identifier 128.297. Designated root has priority 32769, address 0013.5f20.01c0 Designated bridge has priority 32769, address 0013.5f20.01c0 Designated port id is 128.297, designated path cost 0 Timers: message age 0, forward delay 0, hold 0 Number of transitions to forwarding state: 1 Link type is point-to-point by default PVST Simulation is disabled by default BPDU: sent 132, received 1
This example shows the interface details when PVST+ simulation is explicitly enabled on the port:
Switch# show spanning-tree interface gi3/13 detail Port 269 (GigabitEthernet3/13) of VLAN0002 is forwarding Port path cost 4, Port priority 128, Port Identifier 128.297. Designated root has priority 32769, address 0013.5f20.01c0 Designated bridge has priority 32769, address 0013.5f20.01c0 Designated port id is 128.297, designated path cost 0 Timers: message age 0, forward delay 0, hold 0 Number of transitions to forwarding state: 1 Link type is point-to-point by default PVST Simulation is enabled BPDU: sent 132, received 1
This example shows the interface details when the PVST+ simulation feature is disabled and a PVST Peer inconsistency has been detected on the port:
Switch# show spanning-tree interface gi3/13 detail Port 269 (GigabitEthernet3/13) of VLAN0002 is broken (PVST Peer Inconsistent) Port path cost 4, Port priority 128, Port Identifier 128.297. Designated root has priority 32769, address 0013.5f20.01c0 Designated bridge has priority 32769, address 0013.5f20.01c0 Designated port id is 128.297, designated path cost 0 Timers: message age 0, forward delay 0, hold 0 Number of transitions to forwarding state: 1 Link type is point-to-point by default PVST Simulation is disabled BPDU: sent 132, received 1
About Detecting Unidirectional Link Failure
The dispute mechanism that detects unidirectional link failures is included in the IEEE 802.1D-2004 RSTP and IEEE 802.1Q-2005 MSTP standard, and requires no user configuration.
The switch checks the consistency of the port role and state in the BPDUs it receives, to detect unidirectional link failures that could cause bridging loops. When a designated port detects a conflict, it keeps its role, but reverts to a discarding (blocking) state because disrupting connectivity in case of inconsistency is preferable to opening a bridging loop.
For example, in Figure 22-3, Switch A is the root bridge and Switch B is the designated port. BPDUs from Switch A are lost on the link leading to switch B.
Since Rapid PVST+ (802.1w) and MST BPDUs include the role and state of the sending port, Switch A detects (from the inferior BPDU), that switch B does not react to the superior BPDUs it sends, because switch B has the role of a designated port and not the root bridge.
As a result, switch A blocks (or keeps blocking) its port, thus preventing the bridging loop.
Figure 22-3 Detecting Unidirectional Link Failure
Note these guidelines and limitations relating to the dispute mechanism:
-
It works only on switches running RSTP or MST, because the dispute mechanism requires reading the role and state of the port initiating the BPDUs.
-
It may result in loss of connectivity. For example, in Figure 22-4, Bridge A cannot transmit on the port it elected as a root port. As a result of this situation, there is loss of connectivity (r1 and r2 are designated, a1 is root and a2 is alternate. There is only a one way connectivity between A and R).
Figure 22-4 Loss of Connectivity
-
It may cause permanent bridging loops on shared segments. For example, in Figure 22-5, suppose that bridge R has the best priority, and that port b1 cannot receive any traffic from the shared segment 1 and sends inferior designated information on segment 1. Both r1 and a1 can detect this inconsistency. However, with the current dispute mechanism, only r1 will revert to discarding while the root port a1 opens a permanent loop. However, this problem does not occur in Layer 2 switched networks that are connected by point-to-point links.
Figure 22-5 Bridging Loops on Shared Segments
This example shows the spanning tree status when port Gi3/14 has been configured to disable PVST+ simulation and the port is currently in the peer type inconsistent state:
Switch# show spanning-tree Spanning tree enabled protocol rstp Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32778 (priority 32768 sys-id-ext 10) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- ------------------------- Gi3/14 Desg BKN 4 128.270 P2p Dispute
This example shows the interface details when a dispute condition is detected:
Switch# show spanning-tree interface gi3/13 detail Port 269 (GigabitEthernet3/13) of VLAN0002 is designated blocking (dispute) Port path cost 4, Port priority 128, Port Identifier 128.297. Designated root has priority 32769, address 0013.5f20.01c0 Designated bridge has priority 32769, address 0013.5f20.01c0 Designated port id is 128.297, designated path cost 0 Timers: message age 0, forward delay 0, hold 0 Number of transitions to forwarding state: 1 Link type is point-to-point by default BPDU: sent 132, received 1