Spanning Tree Protokoll
- PVST
- RSTP
- MST
- Kann über mehrere VLANs ein Tree bauen
Overview
- Ethernet hat keine TTL
- STP soll Switching Loops / Broadcast Storms verhindern
- Durch der Eigenschaft “flooding” auf dem Ethernet Layer, werden Broadcasts im Kreis geleitet
- Blockieren von Ports (Kein Shutdown); nur kein Learning, kein Flooding, und keine Annahme von Frame
- STP ist standardmäßig aktiviert auf den Switches
Load Balancing
- STP arbeitet auf Layer 2
- Auf “normalen” Rapid Spanning Tree und STP kann kein Loadbalancing gemacht werden
- Die Spanning Tree Instanz arbeitet auf allen VLANs
- Bei PVST(+) und Multiple Spanning Tree Protokoll gibt es mehrere Spanning Tree Instanzen
- Eine STP Instanz für jedes VLAN
- Dadurch kann für jedes VLAN eine separate Root Bridge gesetzt werden (manuell)
- MSTP gruppiert die VLANs anstatt für jedes VLAN einen Tree zu bauen (bspw. VLAN 1-5 → Instanz 1 und VLAN 10-20 → Instanz 2)
Begriffe
- BPDU: Bridge Protocol Data Unit - So werden die STP Pakete genannt (eigenes Protokoll im Header)
- Bridge ID: Bridge Priority (2Bytes) and MAC (6Bytes) forms the Bridge ID
- Bridge Priority: Setzt sich zusammen aus der eigentlichen Priority und der System ID Extension (VLAN) - Default Prio: 32768
- Root Bridge
- Port Rolle
- Designated Port von der Root in den Baum
- Beschreibt Topologie
- Root hat nur Designated Port
- Status: Forwarding
- Root Port
- Port welcher zum Root Bridge Zeit
- Hat jeder Switch
- Status: Forwarding
- Non Designated
- Priority Vergleich
- Höhere Priority
- Status: Blocking
- Pakete werden gedroppt
- Nur BDPUs werden empfangen (aber nicht gesendet)
- Es werden keine MAC Adresse über das Interface gelernt
- Port States:
- Blocking:
- No normal Traffic
- Only Receives BDPUs
- Listening:
- Nur Designated oder Root Ports
- Listening State 15 Sek default
- ONLY Forwards and Receives BDPUs
- No MAC learning
- Learning
- Duration 15 Sek default
- ONLY Sends and Receives BDPUs
- No normal traffic (drop)
- Switch lernt MAC Adressen von dem Traffic auf den Interface
- Forwarding
- Stable
- Sends and receives BDPUs and normal Traffic

- STP Toolkit
- PortFast
- Bringt Interface sofort in den Forwarding Status
- Sollte nur in Verbindung mit BPDU Guard verwendet werden
- Sollte nur verwendet werden wenn Endgeräte angeschlossen sind und keine Switches
- Wird auf Interface level gesetzt und nur wenn Interface ist in Access Mode
- BPDU Guard
- Wenn BPDU Pakete erhalten werden, geht das Interface in den errdisable status und droped die Pakete - wird shutdown gesetzt
- Für Aktivieren → shut & no shut
- Kann ebenfalls auf Interface Level gesetzt werden
- BPDU Filter
- Ignorierst Spanning Tree
- Nur nutzen wenn man ganz sicher keine weitere Layer 2 Verbindung hat
- Loop Guard
- Interface was keine BDPUs mehr empfängt, wechselt nicht zu Forwarding
- Interface will be disabled
- Root Guard
- Switch akzeptiert nicht den neuen Switch als neue Root Bridge
- Interface auf dem der höhere BDPU ankam wird deaktiviert
- STP Timers
- Root Bridge Timers zählen für alle Teilnehmer
- Hello - 2 sek
- Listening / Learning - 15 sek each (30sec total)
- Max Age - 20 sek
- Wenn Timer abgelaufen wird STP neu evaluiert
BDPUs
- Dst MAC (auf Cisco): 01:00:0c:cc:cc:cd
- Dst MAC (default STP): 01:80:c2:00:00:00
Prozess STP
- Wenn STP enabled: Switch sendet (und empfängt) alle 2 Sekunden auf allen Interfaces Hello BDPUs.
- Default Timer 2 Sekunden
- Wenn auf einen Interface Hello BDPUs empfangen werden, weiß der Switch das auf diesem Interface ein weiterer Switch angeschlossen ist
- Andere Geräte (bspw. PC oder Router) verschicken keine STP Pakete
- Root Bridge Election
- Innerhalb der BDPU wird die Bridge ID genutzt um die Root Bridge zu bestimmen
- Lowest Bridge ID oder Lowest MAC Address
- Auf der Root Bridge sind alle Ports (Role: Designated) auf dem Status “Forwarding”
- Das Feld der Bridge ID (Default: 32768 (+1)) besteht auf der Bridge Priority und der MAC Adresse

- Bridge ID kann nur in 4096er Schritten hoch oder runtergesetzt werden (Least Signifikant bit in der Bridge Priority)
- Wenn das Netzwerk gebildet wurde, nur die Root Bridge versendet BDPUs
- Andere Switches leiten die BDPUs weiter aber schicken keine eigenen
- Ermitteln der Root Ports und Kosten
- Kosten werden auf Basis des Interface Speeds ermittelt
- Jeder andere Switch hat nur einen Root Port

- Dabei werden nur Outgoing Interfaces berücksichtigt
- Die Root Bridge Ports haben Kosten von “0”
- Das Interface mit den niedrigsten Kosten wird als Root Port (zeigend zur Root Bridge) markiert
- Root Ports sind im Status “forwarding”
- Wenn Costs gleich sind, dann wird über die lowest Neighbors Bridge ID entschieden
- Priority und MAC Adresse vergleichen!
- Danach wird nach Neighbor Port ID verglichen

- Wenn Switch doppelte Verbindungen haben, kann es sein das sowohl Bridge ID als auch Costs gleich sind
- Dann entscheidet die Neighbor Port ID (Port Priority (default=128)+Port No.)
- Lowest Win!

- Verbleibende Verbindungen, müssen einen Designated Port (forwarding) und einen Non-Designated Port (blocking) auswählen
- Auswahl geschieht über Bridge Priority oder (wenn Bridge Priorty gleich) über die MAC - lowest wins!
Kurzfassung
- Root Bridge
- Vergleiche Prio & MAC (kleiner gewinnt)
- Root Ports
- Switch Ports gegenüberliegend von den Designated Ports der Root Bridge sind automatisch Root Ports
- Vergleiche Kosten (Speed) zur Root Bridge
- Wenn Kosten gleich; vergleiche Bridge ID
- Wenn Kosten und Bridge ID gleich (bei doppelten Verbindungen), dann zählt die kleinere Neighbor Port ID
- Verbleibende Verbindungen; Verbleibende Collision Domains
- Switch mit der niedrigsten Cost (zur Root Bridge) stellt seinen Port der Collision Domain auf Designated; wenn Costs gleich dann:
- Switch mit Lowest Bridge Priority oder lowest MAC stellt seinen Port in Designated (forwarding) State
- Der andere gegenüberliegende Port wird non-designated (blocking)
References