Spanning-tree has been around since the mid-80’s, and over time needed improvement. There have been several off-shoots of spanning-tree, but the most popular is Rapid Spanning-Tree.
As the name suggests, RSTP is faster to react to changes in the network, such as failures, adding new links and switches, and bringing ports up.
The basic concepts are still the same, but there are a few enhancements to know about. For one, all switches actively send BPDUs. Speaking of BPDUs, the format has changed a bit too. There are new timers, and new ways to bring ports online.
Cisco have their own flavour of RSTP too, called Rapid Per-VLAN Spanning-Tree.
BPDUs and the Root Bridge
Cisco switches combine the VLAN with the priority to create a slightly new priority. This means that a Cisco switch may have a priority that isn’t neatly divisible by 4096.
All switches now send BPDUs on a regular basis, but they’re not flooded through the network. They are sent only to the immediate neighbour. They have a ‘hello timer’ for this interval, which is 2 seconds by default. This makes it easy to see if a neighbour is up.
In RSTP, we still have root ports, and they still work the same way. There is still one per switch (except for the root bridge), and they still point out the best path to the root bridge.
Designated ports are still the same. They point away from the root bridge. There can only be one designated port per network segment (if there were more than one, we would have a loop). Take note though, a switch can still have more than one designated port – It can connect to more than one segment.
In a case where there is a hub in the network, we will see Backup ports. This is where there is more than one port on the network segment – Only one can be designated, so the other is ‘backup’, and is blocking traffic.
If you see backup ports in the network, you need to investigate if you have a hub somewhere, or if there is some other reason for this. There really shouldn’t be any backup ports in the modern network.
The other type of blocking port is the alternate port. This is an alternate path to the root, which may transition to forwarding if there is a path failure somewhere.
RSTP now only has three states; discarding, learning and forwarding. In addition, they don’t use timers; Switches negotiate with each other.
When a switch first sends BPDUs on a link they go into a sync state. Switches start synchronizing with with upstream switches first, while blocking downstream links. Once upstream links are negotiated, downstream will negotiate too.
RSTP defines ports by their topology. So, links between switches are point-to-point ports. interfaces connected to hubs are shared ports. And finally, the interfaces that have non-network equipment (printers, workstations, phones, etc) are edge ports.
Edge ports help things out, as they assume that there is no spanning-tree aware device connected. After all, we can’t have loops on edge devices. So there’s no need for the discarding, learning, and forwarding states.
The RSTP edge port is basically the official IEEE vendor-neutral version of Cisco’s PortFast feature.
Be careful though – If you connect a switch to an edge port/PortFast port, you could introduce a loop into the network. BPDUGuard can help prevent this (BPDUGuard is not on the exam).
Cisco do different things with spanning-tree to other vendors. One of these things is to run a separate spanning-tree instance Per VLAN.
This means that we can have a different spanning-tree topology for each VLANs. For example, some links might be blocking for some VLANs, but forwarding for others.
While this is a good solution, this makes it difficult to mix Cisco switches with other vendors.
|spanning-tree mode rapid-pvst||Global Config||Enable RSTP|
|spanning-tree vlan <id> hello-time <value>||Global Config||Change the BPDU hello time|
|spanning-tree cost <value>||Interface Config||Change the cost of a specific interface|
|spanning-tree portfast||Interface Config||Configure an edge port in spanning-tree|
|spanning-tree vlan <id> root [primary|secondary]||Global Config||Set a bridge priority to root or secondary|