Routelearn.net
Course menu

Course 6: Spanning Tree ProtocolLesson 3.5 (15 of 24 in this course)36 of 91 in the CCNA series

UplinkFast and BackboneFast

Cisco's classic speed-ups for direct and indirect failures, and why RSTP replaced them.

Advanced · 7 min read

UplinkFast and BackboneFast are Cisco extensions to classic 802.1D Spanning Tree that shorten convergence. UplinkFast lets an access switch move to a backup root port almost immediately when its root port fails (a direct failure), and BackboneFast lets a switch skip the max age wait when a link elsewhere in the network fails (an indirect failure).

In simple terms: Classic Spanning Tree can take 30 to 50 seconds to recover from a failed link. These two Cisco features cut that wait: one for a switch’s own uplink, and one for failures further away.

Classic STP takes 30 seconds to recover from a direct failure, and 50 seconds from an indirect one (the “Port states and timers” lesson). Cisco added two features to make this faster. Both are old now: Rapid PVST+ (the Rapid Spanning Tree lessons) does the same jobs by itself. But they are still worth learning, because they help explain why RSTP works the way it does.

UplinkFast: direct failures on access switches

Situation: an access switch (AS1) has two uplinks. One is its root port to DS1 (the root). The other is a blocked backup to DS2. The uplink on the root port fails.

DPRPDPBLKDS1 (root)DS2AS1UplinkFast
  1. 1. Normal. AS1 uses its root port to DS1.
  2. 2. The root-port uplink fails. Classic STP would now wait 30 s in listening and learning.
  3. 3. UplinkFast switches over at once. AS1 already knows its backup uplink leads to the root. So it moves it straight to forwarding.
  4. 4. Upstream tables updated. AS1 sends frames using its users' MAC addresses as the source. So the distribution switches learn the new path at once.
spanning-tree uplinkfast

For the whole switch. Use it on access switches only.

Side effects (on purpose): turning on UplinkFast raises the switch's bridge priority to 49152. It also adds 3000 to its port costs. So the switch never becomes the root, and other switches never send traffic through it. That's why it is only for access switches.

Why skipping listening and learning is safe here

Listening and learning are there to stop short loops. But when an access switch's own root port fails, the loop through it is gone, because the broken cable was part of that loop. The backup uplink is now the only path, so it can forward at once.

Example output · based on Cisco documentation; exact format varies by platform and software version
AS1#! root port Gi1/0/1 fails, without UplinkFast
09:00:00.200: STP: VLAN0010 new root port Gi1/0/2, cost 8
09:00:00.200: STP: VLAN0010 Gi1/0/2 -> listening
09:00:15.200: STP: VLAN0010 Gi1/0/2 -> learning
09:00:30.200: STP: VLAN0010 Gi1/0/2 -> forwarding
The new root port is chosen at once, but users are cut off for 30 seconds.
Example output · based on Cisco documentation; exact format varies by platform and software version
AS1#! the same failure, with UplinkFast
09:10:00.200: STP: VLAN0010 new root port Gi1/0/2, cost 3008
09:10:00.200: %SPANTREE_FAST-7-PORT_FWD_UPLINK: VLAN0010 GigabitEthernet1/0/2 moved to Forwarding (UplinkFast).
It forwards at once. Notice the cost, 3008: UplinkFast added 3000 to the port's cost of 4, plus 4 for the next link.

Step by step

  1. Turn it on once, for the whole switch. It works for every VLAN. There is no per-port setting (unlike PortFast).
  2. Normal work. The switch keeps a list of its uplinks (the uplink group): the root port, plus the blocked ports that receive BPDUs from the switches above.
  3. Notice the failure. Only a direct failure counts: the root port's own link going down. A failure somewhere else still takes the normal 30–50 s.
  4. Recover. The best backup uplink becomes the root port and forwards at once.
  5. Fix the MAC tables above. The distribution switches still think AS1's users are behind the broken link. So AS1 sends one frame for each MAC in its table, to the address 0100.0ccd.cdcd. Each frame uses a user's MAC as the source. The switches above then learn the users on the new path.
Example output · based on Cisco documentation; exact format varies by platform and software version
AS1#show spanning-tree uplinkfast
UplinkFast is enabled

Station update rate set to 150 packets/sec.

UplinkFast statistics
-----------------------
Number of transitions via uplinkFast (all VLANs)            : 1
Number of proxy multicast addresses transmitted (all VLANs) : 42

Name                 Interface List
-------------------- ------------------------------------
VLAN0010             Gi1/0/1(fwd), Gi1/0/2
The uplinks for each VLAN, with the forwarding one marked (fwd). The "station update rate" limits how fast those MAC-update frames are sent (default 150 per second). This stops a big MAC table from filling the uplink. Change it with spanning-tree uplinkfast max-update-rate (0 sends none).

⚠️ Never use it on the root bridge, or on distribution or core switches. The higher priority and costs are meant to keep the switch at the edge of the tree.

BackboneFast: indirect failures

Situation: the SW1–SW2 link fails. SW2 loses its path to the root, so it starts saying it is the root. It sends worse (inferior) BPDUs to SW3. With classic STP, SW3 ignores them until its stored information runs out (max age, 20 s).

✕ link downDPRPDPRPDPALTSW1priority 24576SW2priority 32768SW3priority 32768PC APC B
  1. 1. A link that SW3 is not on fails. SW2 loses its root port.
  2. 2. SW2 says it is the root. SW3 receives a worse BPDU on its blocked port. Without BackboneFast, it would wait 20 s.
  3. 3. SW3 checks with the root. BackboneFast sends a Root Link Query (RLQ) out of its root port, to ask if the root is still there.
  4. 4. Root is reachable. SW3 throws away the old information at once, without waiting for max age.
  5. 5. SW2 learns the real root. SW3's port toward SW2 becomes designated (after listening and learning). SW2 now reaches SW1 through SW3. This takes about 30 s instead of 50.
spanning-tree backbonefast

For the whole switch, on every switch in the network. RLQs only work if all switches understand them.

Why RSTP replaced them

Old featureHow RSTP does it
PortFastEdge ports (still configured with PortFast)
UplinkFastAlternate ports that start forwarding at once
BackboneFastSwitches accept worse information and agree with each other at once. No max-age wait.

On a switch that runs Rapid PVST+, you don't need UplinkFast or BackboneFast.

Check yourself

Predict · scenario 1

Where should UplinkFast be enabled?

Predict · scenario 2

How much time does BackboneFast save after an indirect failure?