Network Loop Prevention with the Rapid Spanning Tree Protocol (RSTP)
The Spanning Tree Protocol (STP) prevents loops from forming in a switched network, but it does this task inefficiently by comparison with the processing capabilities of modern equipment. This article takes a look at the Rapid Spanning Tree Protocol (RSTP), which was designed to take over the duties of STP. RSTP was standardized in IEEE 802.1w (now integrated into IEEE 802.1D). It tweaks the way that STP works, in an effort to minimize converge times on switches, both on startup and on link failure. We’ll examine how RSTP improves on STP and how to configure it on a Cisco switched (IOS) device.
Rapid Spanning Tree Protocol Operation
Let’s take a look at the mechanics of how RSTP works. To make this a bit easier to follow, we’ll start with an analogy. Think of (R)STP as a control mechanism for stoplights in a city. Occasionally, it might be necessary for the city’s traffic department to reroute traffic from one street to another in an effort to decrease congestion. But what happens if one intersection’s controller isn’t connected with another intersection’s controller?
Take a look at the traffic pattern in Figure 1. It quickly becomes obvious that traffic in this scenario could potentially run in a continuous loop around the same city block. If enough cars were routed into this loop, traffic would eventually stop (quickly, in city traffic). STP attempts to avoid this endless loop problem by removing the potential for a loop in the first place. In this example, STP would alter one of the stoplights to prevent cars from making that looping right turn, as shown in Figure 2.
Figure 1 Endless looping potential.
Figure 2 Avoiding loops.
The initial duty of (R)STP is to form a relationship to the switched network on which it exists. If this is the only switch in the network, by default it would become a root bridge (or switch). This root bridge is elected initially within the STP network, and the rest of the network is built on that switch being the center of the switching universe. This also means that you don’t want the switch that gains this title to be on an edge switch, or on a switch that exists on a remote site.
Typically the election is fixed to make one of the central switches in a network the root bridge. When the election isn’t fixed, the root bridge is selected based on the priority of the switch. However, by default the priority of a switch is the same across all switches, so the second selection is made based on the bridge ID. The bridge ID is typically a hardware-encoded MAC address assigned to the switch by the manufacturer.
These priorities and bridge IDs are relayed through the exchange of Bridge Protocol Data Units (BPDUs), which are sent by RSTP every “hello” interval—by default, every two seconds. The bridge that has the superior priority or bridge ID is elected the root bridge.
A big difference between the original STP and RSTP is in how they converge. With the original STP, all of the switches must wait as the interfaces go through listening and learning port states (15 seconds each) before deciding which switch will become the root bridge and which interfaces will become root interfaces. With RSTP, a proposal and agreement (P/A) process is put in place, which is automatically used as soon as an interface comes up. This P/A process drastically shortens the time needed for an interface to move into a forwarding state. However, this process only happens on what RSTP calls point-to-point (p2p) links.
Cisco switches use the duplex setting of an interface to determine the link type. Interfaces with a full-duplex setting follow the P/A process; interfaces with a half-duplex setting go through the slower STP convergence process (30 seconds total) before converging. An exception to this rule is root ports, which are automatically pushed into a forwarding state when a switch is brought up. In RSTP, these half-duplex links are referred to as shared (Shr) links. RSTP also defines a third type of link, edge links; these ports operate like older Cisco PortFast ports and are automatically put into a forwarding state.
The port states are also referenced differently in RSTP. STP has five port states: disabled, blocking, listening, learning, and forwarding. RSTP combines those states into a total of three: discarding (disabled, blocking, listening), learning, and forwarding.
One subject that is often confusing to new network students is the determination of an STP port state. Cisco’s show spanning-tree command always lists the port state as if it’s using RSTP. RSTP itself adds two port states, alternative and backup, which were previously part of the STP designated state. These states are a method of indicating preferred secondary paths. The alternative port state indicates that an interface will be the next potential root port if the current root port fails. The backup port state indicates that an interface will be the next potential designated port; this only happens when a switch has multiple links into the same Ethernet segment.
Cisco’s RSTP Implementation
You might already know that Cisco’s default implementation of STP differs from the standard. Instead of using a single STP instance that works over all of the network, including over all configured VLANs, Cisco implements an STP instance for each specific VLAN, which is referred to as Per-VLAN Spanning Tree (PVST+). Cisco’s RSTP implementation follows a similar path, using a proprietary version of RSTP called Rapid PVST+ (RPVST+).
The simplest thing about RSTP and the implementation of Cisco’s Rapid PVST+ is its unique configuration. To move from Cisco’s PVST+ to Rapid PVST+, use the commands shown in the following table
Enter global configuration mode.
Switch the STP mode to Rapid-PVST+.
switch(config)#spanning-tree mode rapid-pvst
These steps are all you would need to change to move from an existing PVST+ network to a Rapid-PVST+ network. If you’re creating a new STP network, some additional commands must be configured, to ensure that the location of the root bridge is centrally located in the network. These configuration commands are covered in my article “Spanning Tree Protocol Concepts and Configuration.”
RSTP differs internally from its much older parent, STP, in a number of ways. These changes greatly affect the time needed for a network to converge with initially brought up and during link changes and failures; this time is very valuable in modern organizations. Look over your existing switches to determine if they support RSTP; if they do, take the next step and enable its use.