Cisco - Advanced Spanning Tree Protocol

Rapid Spanning Tree Protocol (RSTP)

  • Traditional STP is considered too slow for modern networks
  • RSTP is defined in IEEE 802.1w
  • When combined with PVST+ it is called RPVST+
  • Used as part of MST (IEEE 802.1s)
  • Allows switches to interact through each port to gain quicker convergence times
  • Uses same election process as traditional STP (IEEE 802.1d)
  • Different Names are used for the port roles than in STP
    • Root Port - Has the best root path cost, won’t exist on the root bridge
    • Designated Port - One per segment, best port to reach root on each segment
    • Alternate Port - The next-best path to the root bridge
    • Backup Port - Redudant connection on each segment
  • Different port states are also used than in STP
    • Discarding - Combines the STP disabled, Blocking and Listening states
    • Learning - Frames dropped, MAC adresses learned
    • Forwarding - Full Operation

BPDUs in RSTP

  • Uses 802.1D BPDU format
  • Sending switches identify by role and state
  • BPDU version is set to 2
  • Neighbouring switches negotiate using BPDU flags
  • Sent every hello interface out all switch ports
  • 3 lost BPDUs (6 seconds) mark the neighbour as down causing information to be aged out
  • Can operate with traditional STP based on received BPDU version
  • BPDU version is help until “Migration Delay Timer” expires

RSTP Convergence

  • Two stages
    • Common Root bridge is elected
    • Switch port states assigned to build loop free topology
  • Upon first joining network, RSTP bases it’s forwarding decision on port type
  • RSTP Port Types
    • Edge Port - Single host, portfast configure port
    • Root Port - Best Cost to Root bridge
    • Point-To-Point port - Any switch connecting to another switch and becomes designated port
  • Ports running half-duplex cannot be point-to-point, traditional STP (802.1d) convergence used on these ports
  • Complete convergence is done via propagation of handshakes over point-to-point links
  • After each successful decision, the handshake moves to the next switch towards the edge of the network
  • During handshaking, loops are avoided via a synchronisation process

RSTP Synchronisation

  • Non-edge ports begin in discarding state
  • After root bridge identifed thhrough BPDU exhcnage, port receiving support BPDU becomes root port
  • Each switch assumes its port should be designated for the segment. Proposal sent to neighbouring switch
  • If proposal is superior, synchronisation occurs
    • All non-edge ports put into discarding state
    • Aggrement message sent in reply
    • Root port moved to the forwarding state
    • On each non-edge port currently discarding, a proposal is sent to the next neighbour switch
    • Aggrement message received
    • Non-Edge port moved to forwarding state
  • No timers are used
  • If no agreement is received, falls back to 802.1d rules

Topology Changes and RSTP

  • Detected only when non-edge port transitions to forwarding state
  • Used only so briding tables are updates
  • Topology Change (TC) messages propagate through the the network
  • MAC Addresses flushed from the CAM table

Rapid Spanning Tree Configuration

Set a port as an RSTP edge port

interface <name>
  spanning-tree portfast

Force a port to act as a point-to-point port

interface <name>
  spanning-tree link-type point-to-point

Enable use of RPVST+

spanning-tree mode rapid-pvst

Revert To PVST+

spanning-tree mode pvst

Verify STP mode used by Switch and neighbours

show spanning-tree [vlan <id>]

Multiple Spanning Tree (MST) Protocol

Overview

  • Allow for better management oof switch resources whilst still permitting load balancing over redudant links
  • One or more VLANs are mapped to a single STP instance
  • Multiple instances of STP

Implementing MST

  • Determine numbber of STP instances
  • Map a set of VLANs to each instance

MST Regions

  • Defined by a set of attributes
    • Configuration name (32 characters)
    • Revision number (0 - 65535)
    • Instance to VLAN Mapping (0 - 4096 entries)
  • Two switches with same attributes are in the same MST region
  • MST BPDUs contain the attributes
  • Region boundaries are defined where attributes differ or 802.1d (STP) is used
  • Mapping of VLANs must be configured on each switch as they are not sent in the BPDU

Spanning-Tree Instances within MST

  • MST interoperates with all forms of STP
  • MST treats the entire network as a single Common Spanning Tree (CST) topology
  • CST regards each MST instance as a “Black Box” with no idea what happens inside
  • CST maintains a loop free topology with links connecting outside the region

Internal Spanning Tree (IST) Regions

  • An IST instance uns to calculate a loop free topology within an MST region
  • IST presents the entire region as a single bridge to the CST outside
  • BPDUs exchanged at BPDU boundaries only over native VLAN trunks

MST Instances (MSTI)

  • Maximum of 15 MSTIs (0-15)
  • MSTI 0 (zero) is reserved for the IST
  • Instances define the VLAN mapping for each topology
  • Only the IST (MSTI 0) is permitted to send BPDUs
  • M-Records are added to MST BPDU’s for each MSTI
  • A single BPDU is needed regardless of number of instances
  • If a BPDU is detected on more than one VLAN, MST assumes PVST+ is used so the BPDU is replicated to all VLANs on the trunk link.

MST Configuration

Enable MST on a Switch

spanning-tree mode mst

Enter MST configuration mode and define attributes

spanning-tree mst configuration
  name <region-name>
  revision <0-65535>
  instance <number> vlan <vlan-list>

Show pending MST configuration changes

show pending

Commit outstanding changes from MST configuration mode

exit

Set The MST root bridge via a macro

spanning-tree mst <instance> root {primary | secondary} [diameter <number>]

Manually set MST Bridge Priority

spannning-tree mst <instance> priority <number>

Set MST port cost

interface <name>
  spanning-tree mst <instance> port-priority <number>

Set MST timers

spanning-tree mst hello-time <seconds>
spanning-tree mst forward-time <seconds>
spanning-tree mst <max-age> <seconds>