Perfekt, an deinem Aufbau kann man STP sehr gut erklären. Du hast drei Switches, die ein Dreieck bilden. Genau dadurch entsteht ohne STP eine Layer-2-Schleife.
Ich nenne sie der Einfachheit halber:
- Switch1 = links
- Switch2 = rechts
- Switch0 = unten
1. Warum braucht man STP?
Zwischen den drei Switches gibt es drei Verbindungen:
Switch1
/ \
/ \
/ \
Switch0 ------ Switch2
Dadurch gibt es mehrere Wege zum selben Ziel.
Angenommen, ein Broadcast kommt bei Switch1 an. Switch1 schickt ihn zu Switch0 und Switch2. Diese schicken ihn wiederum weiter. Ethernet-Frames haben keinen TTL-Wert wie IP-Pakete.
Der Frame könnte deshalb theoretisch endlos im Kreis laufen:
Switch1 → Switch2 → Switch0 → Switch1 → Switch2 → ...
STP (Spanning Tree Protocol) verhindert das, indem es logisch eine der redundanten Verbindungen blockiert.
2. Wie entscheidet STP, was blockiert wird?
STP arbeitet im Wesentlichen in dieser Reihenfolge:
1. Root Bridge bestimmen
↓
2. Root Ports bestimmen
↓
3. Designated Ports bestimmen
↓
4. Übrige Ports blockieren
Das Wichtigste ist also zuerst die Root Bridge.
3. Schritt 1: Root Bridge auswählen
Jeder Switch besitzt eine sogenannte Bridge ID.
Vereinfacht:
Bridge ID = Priority + MAC-Adresse
Standardmäßig haben Cisco-Switches häufig dieselbe STP-Priority, z. B.:
32768
Wenn alle dieselbe Priority haben, gewinnt der Switch mit der kleinsten MAC-Adresse.
Beispiel:
Switch0: Priority 32768 | MAC 00:11:11:...
Switch1: Priority 32768 | MAC 00:22:22:...
Switch2: Priority 32768 | MAC 00:33:33:...
Dann wird Switch0 Root Bridge, weil 00:11... die niedrigste MAC-Adresse ist.
Wichtig:
Bei STP gewinnt immer die niedrigste Bridge ID.
In deinem Screenshot kann ich anhand der Portfarben nicht sicher sagen, welcher Switch tatsächlich Root ist. Das können wir aber in Packet Tracer sofort herausfinden mit:
enable
show spanning-tree
Dort steht dann z. B.:
Root ID
Priority 32769
Address 0001.1234.5678
Wenn zusätzlich
This bridge is the root
steht, weißt du: Das ist die Root Bridge.
4. Schritt 2: Root Ports auswählen
Jetzt wird es interessant.
Jeder Switch, der nicht Root Bridge ist, muss seinen besten Weg zur Root Bridge finden.
Der entsprechende Port heißt:
Root Port (RP)
Jeder Nicht-Root-Switch hat normalerweise genau einen Root Port.
Angenommen, bei dir wäre Switch0 die Root Bridge:
Switch1
/ \
/ \
/ \
Switch0 ------ Switch2
ROOT
Switch1 schaut:
Wie komme ich am günstigsten zu Switch0?
Es gibt zwei Möglichkeiten:
direkt:
Switch1 → Switch0
indirekt:
Switch1 → Switch2 → Switch0
Der direkte Weg hat normalerweise die geringeren STP-Kosten.
Also wird der Port von Switch1 Richtung Switch0:
Root Port
Bei Switch2 dasselbe:
Switch2 → Switch0
ist günstiger als:
Switch2 → Switch1 → Switch0
Also wird auch bei Switch2 der Port Richtung Switch0 Root Port.
Wir hätten:
Switch1
RP
|
|
ROOT --- Switch0 --- RP Switch2
Etwas schöner dargestellt:
Switch1
/ RP \
/ \
/ \
Switch0 ----- Switch2
ROOT RP
5. Woher kommen diese “Kosten”?
STP gibt Verbindungen sogenannte Path Costs.
Die hängen hauptsächlich von der Geschwindigkeit ab.
Zum Beispiel bei klassischen STP-Kosten:
10 Mbit/s → 100
100 Mbit/s → 19
1 Gbit/s → 4
10 Gbit/s → 2
Wenn deine Verbindungen beispielsweise 100 Mbit/s haben:
Direkter Weg:
Switch1 → Switch0
Cost = 19
Umweg:
Switch1 → Switch2 → Switch0
Cost = 19 + 19
= 38
STP nimmt:
19 < 38
also den direkten Weg.
6. Jetzt bleibt die Verbindung Switch1 ↔ Switch2
Und genau hier entscheidet STP, welcher Port blockiert wird.
Wir haben angenommen:
Switch1
RP \
/ \
/ \
/ \
Switch0 ----- Switch2
ROOT RP
Auf der Verbindung zwischen Switch1 und Switch2 braucht STP nur einen Designated Port.
STP vergleicht dafür, welcher Switch den besseren Weg zur Root Bridge hat.
Also beispielsweise:
Switch1 Root Path Cost = 19
Switch2 Root Path Cost = 19
Oh.
Gleichstand.
Dann braucht STP einen Tie-Breaker.
7. Die Tie-Breaker sind extrem wichtig
Vereinfacht entscheidet STP in dieser Reihenfolge:
niedrigster Root Path Cost
↓ bei Gleichstand
niedrigste Bridge ID
↓ bei Gleichstand
niedrigste Port ID
Angenommen:
Switch1 Bridge ID = 32768 + MAC 00:22...
Switch2 Bridge ID = 32768 + MAC 00:33...
Switch1 hat die kleinere Bridge ID.
Damit gewinnt Switch1 auf diesem Netzwerksegment.
Sein Port wird:
Designated Port (DP)
Der Port von Switch2 wird blockiert.
Switch1
/ \
RP DP
/ \
/ \
/ X BLOCKED
Switch0 ----------- Switch2
ROOT RP
Und damit haben wir keinen Kreis mehr.
8. Die Root Bridge ist besonders
Auf der Root Bridge sind grundsätzlich alle aktiven STP-Ports Designated Ports.
Wenn Switch0 Root ist:
Switch1
RP
/ \
/ \
DP/ \DP
/ X
Switch0 ---- Switch2
ROOT DP RP
Also:
Switch0:
→ Richtung Switch1 = Designated
→ Richtung Switch2 = Designated
Switch1:
→ Richtung Switch0 = Root Port
→ Richtung Switch2 = Designated
Switch2:
→ Richtung Switch0 = Root Port
→ Richtung Switch1 = Blocking
Die Ports zu den PCs spielen bei der Schleifenvermeidung zwischen den Switches normalerweise keine große Rolle und können Forwarding bleiben.
9. Das Wichtigste zum Merken
Wenn du in einer Aufgabe herausfinden musst, welcher Port blockiert wird, geh immer so vor:
1. Welche Bridge ID ist am kleinsten?
→ Das ist die Root Bridge.
2. Bei jedem anderen Switch:
Welcher Weg zur Root ist am billigsten?
→ Dieser Port ist der Root Port.
3. Für jede Verbindung:
Welcher Switch hat den besseren Weg zur Root?
→ Dessen Port ist Designated.
4. Was danach noch übrig bleibt?
→ wird blockiert.
Bei Gleichstand vergleichst du weiter:
Path Cost
↓
Bridge ID
↓
Port ID