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

  1. 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
  2. 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
      • Per VLAN Spanning Tree fügt hier noch in der Bridge Priority das VLAN Feld hinzu. PVST ist Cisco Properiät
    • 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
  3. 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!
  4. 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

  1. Root Bridge
    1. Vergleiche Prio & MAC (kleiner gewinnt)
  2. Root Ports
    • Jeder SW hat 1 Root Port
    1. Switch Ports gegenüberliegend von den Designated Ports der Root Bridge sind automatisch Root Ports
    2. 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
  3. Verbleibende Verbindungen; Verbleibende Collision Domains
    1. Switch mit der niedrigsten Cost (zur Root Bridge) stellt seinen Port der Collision Domain auf Designated; wenn Costs gleich dann:
    2. Switch mit Lowest Bridge Priority oder lowest MAC stellt seinen Port in Designated (forwarding) State
    3. Der andere gegenüberliegende Port wird non-designated (blocking)

References