Spanning Tree Protocol: Unterschied zwischen den Versionen

Aus Foxwiki
Subpages:
 
(222 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Das '''Spanning Tree Protocol''' ist ein Verfahren zur Schleifenunterdrückung in Netzwerken mit mehreren Bridges oder Switches
'''Spanning Tree Protocol''' - Schleifenunterdrückung bei redundanten Verbindungen zwischen [[Bridge]]s oder [[Switch]]es


== Beschreibung ==
== Beschreibung ==
{| class="wikitable" style="float:right; margin-left: 10px;"
=== Unterdrückung kreisender Frames ===
! bgcolor="#EEEEEE" colspan="3" font="size:larger" | STP (Spanning Tree Protocol)
{| class="wikitable float"
|+ STP (Spanning Tree Protocol)
|-
|-
! style="text-align:left" | Familie:
! style="text-align:left" | Familie
| rowspan="1" colspan="2" | Inter-Switch-Kommunikation
| rowspan="1" colspan="2" | Inter-Switch-Kommunikation
|-
|-
! style="text-align:left" | Einsatzgebiet:
! style="text-align:left" | Einsatzgebiet
| rowspan="1" colspan="2" | Management von logischen Ethernet-Verbindungen
| rowspan="1" colspan="2" | Management von logischen Ethernet-Verbindungen
|-
|-
| rowspan=2" style="background:#EEEEEE"| '''Protokollstapel:'''
| rowspan=2" | '''Protokollstapel'''
| rowspan="2" style="background:#d58300; text-align:center""| '''Netzzugang'''
| rowspan="2" text-align:center""| '''Netzzugang'''
| rowspan="1" colspan="1" style="background:#ffa500; text-align:center"| '''STP'''
| rowspan="1" colspan="1" text-align:center"| '''STP'''
|-
|-
| rowspan="1" colspan="6" style="background:#ffc93b; text-align:center""| '''Ethernet'''
| rowspan="1" colspan="6" text-align:center""| '''Ethernet'''
|-
! style="text-align:left" | Standards:
| rowspan="1" colspan="2" | IEEE-Normen 802.1D, 802.1w, 802.1s, IEEE 802.1aq, IEEE 802.1Q
|}
|}
; Unterdrückung von kreisenden Ethernet-Frames
Identifiziert Mehrfachwege
* Redundanten Wegen durch eine logische Blockierung bestimmter Pfade
* Baumtopologie aufbauen, die keine Schleifen besitzt
Dazu werden auf den Switches mit redundante Verbindungen zu anderen Switches bis auf eine blockiert
* Bei Ausfall der primären Verbindung können diese aktiviert
* Erzeugen so ein hohes Maß an Fehlertoleranz
[[Datei:Stp.png|mini| 400px|Beispiel einer Spanning Tree Topologie]]
; IEEE 802.1D
* Schleifenfreie logische Topologie zwischen [[Switch]]es und [[Bridge]]s
; Redundante Wege
* Ausgehend von einem "Root"-Punkt wird nur ein Weg aktiviert
; Switch-Infrastrukturen
* Rechnernetzwerke können mit einer Vielzahl von Switches aufgebaut werden


Das Spanning Tree Protocol (STP, deutsch: Spannbaum-Protokoll) ist ein Bestandteil von Switch-Infrastrukturen.
; Eindeutiger Datenpfad
* Rechnernetzwerke können mit einer Vielzahl von Switches als Koppelungselement aufgebaut werden.
* Pakete eindeutig weiterleiten
* Allerdings muss die Ethernet-Technologie sicherstellen, dass zwischen zwei Rechnern jeweils nur ein Datenpfad existiert, um Pakete eindeutig weiterleiten zu können.
* Ethernet-Technologie muss sicherstellen, dass
* zwischen zwei Rechnern jeweils nur ein Datenpfad existiert


Die Vermeidung von Effekten wie Broadcast-Stürmen wird nur erreicht, wenn ein Algorithmus existiert, der die Schleifenfreiheit der Topologie sicherstellt.
; Vermeidung von [[Broadcast-Sturm|Broadcast-Stürmen]]
* Der Spanning-Tree-Algorithmus sorgt nun dafür, dass es keine unerwünscht kreisenden Pakete gibt.
: Wird nur erreicht, wenn ein Algorithmus existiert, der die Schleifenfreiheit der Topologie sicherstellt
* Er identifiziert Mehrfachwege, indem er Topologien mit redundanten Wegen durch eine logische Blockierung bestimmter Pfade in eine Baumtopologie überführt, die keine Schleifen besitzt.
* Dazu werden auf den Switches mit mehreren Verbindungen zu anderen Switches alle bis auf eine Verbindung blockiert.
* Bei Ausfall der primären Verbindung können diese sofort aktiviert werden und erzeugen auf diese Weise ein hohes Maß an Fehlertoleranz.


Der Spanning-Tree Algorithmus wurde von Radia Perlman entworfen und 1990 als IEEE 802.1D standardisiert.
; Der Spanning Tree–Algorithmus (STA) wurde von Radia Perlman entworfen und 1990 als IEEE 802.1D standardisiert
* Voraussetzung für die Funktionsfähigkeit dieses Konzeptes ist, dass der aufspannende Baum für den Nutzer vollkommen transparent erstellt werden kann.  
* Voraussetzung für die Funktionsfähigkeit dieses Konzeptes ist, dass der aufspannende Baum für den Nutzer vollkommen transparent erstellt werden kann.
* Als einzige Aktion muss der Spanning-Tree-Algorithmus auf den Switches aktiviert sein.
* Als einzige Aktion muss der Spanning-Tree-Algorithmus auf den Switches aktiviert sein.
* Zum Austausch von Konfigurationsnachrichten wird eine Bridge Protocol Data Unit (BPDU) als Multicast-Paket genutzt, das standardmäßig alle zwei Sekunden versendet wird und damit eine nicht unerhebliche Netzlast verursacht.  


; Spanning Tree–Algorithmus (STA)
; Bridge Protocol Data Unit (BPDU)
* Legt eine schleifenfreie logische Topologie fest zwischen Swiches und Bridges
Austausch von Konfigurationsnachrichten
* Bestandteil von '''IEEE 802.1D'''
* Multicast-Paket
* Beschreibt Aufbau einer '''"loop-freien" Topologie''' ausgehend von einem "Root"-Punkt
* standardmäßig alle zwei Sekunden
* Lässt redundante Wege zu, aber '''nur genau ein Weg darf aktiv''' sein
* nicht unerhebliche Netzlast


== Überblick ==
; Redundanz
[[Datei:Stp.png|mini| 400px|Beispiel einer Spanning Tree Topologie]]
: Einerseits ist Redundanz in einem Netz besonders wichtig, weil damit Netzwerke fehlertolerant werden.
* Auf der einen Seite ist Redundanz in einem Netz besonders wichtig, weil damit Netzwerke fehlertolerant werden.
:* Redundante Topologien schützen vor unerwünschten Ausfallzeiten im Netz aufgrund von Fehlern einer einzigen Verbindung, eines Anschlusses oder einer Netzeinheit.
** Redundante Topologien schützen vor unerwünschten Ausfallzeiten im Netz auf Grund von Fehlern einer einzigen Verbindung, eines Anschlusses oder einer Netzeinheit.
: Andererseits wird durch diese Redundanz in der Topologie die Möglichkeit für die fehlerhafte Doppelübertragungen von Informationen eröffnet.
* Andererseits wird durch diese Redundanz in der Topologie die Möglichkeit für die fehlerhafte Doppelübertragungen von Informationen eröffnet.
:* Dem entgegenwirkt '''STP (Spanning Tree Protocol)''', indem es redundante Wege zwar erlaubt, aber immer nur genau einen Weg aktiv hält.
** Dem entgegenwirkt '''STP (Spanning Tree Protocol)''', indem es redundante Wege zwar erlaubt, aber immer nur genau einen Weg aktiv hält.
:* Dies führt zu einer schleifenfreien logischen Topologie, bei der zwischen zwei Rechnern im Netz immer nur ein aktiver Pfad besteht.
** Dies führt zu einer schleifenfreien logischen Topologie, bei der zwischen zwei Rechnern im Netz immer nur ein aktiver Pfad besteht.


== Aufspannen des Baumes ==
== Aufspannen des Baumes ==
=== Wahl der Root Brücke ===
; Ablauf
* Bestimmung erfolgt anhand der Bridge ID
{| class="wikitable options col1center"
|-
! Schritt !! Option
|-
| 1 || Einschalten („Power up“) aller Bridges
|-
| 2 ||Alle Bridges stellen ihre Ports auf „Blocked“
|-
| 3 || Jede Bridge nimmt an, sie sei die Root-Bridge, und sendet ihre Bridge ID  an eine bestimmte Multicast-Gruppe
|-
| 4 || Die Bridge mit der kleinsten Bridge-ID (besteht aus Bridge Priority & MAC-Adresse) wird zur Root-Bridge
|-
| 5 || Die Root-Bridge sendet sogenannte Konfigurations-BPDUs (Bridge Protocol Data Unit) aus
|-
| 6 || Jede Bridge bestimmt den Port mit den kleinsten Pfadkosten zur Root-Bridge als Root-Port (Bei Ports mit gleichen Kosten gewinnt die kleinere Port-ID)
|-
| 7 || Die Designated Bridge wird festgelegt, dies ist die Bridge mit dem Root-Port
|}
 
=== Wahl der Root-Bridge ===
; Bestimmung erfolgt anhand der Bridge ID
* Kleinste Bridge ID gewinnt
* Kleinste Bridge ID gewinnt
* Bei gleichen Bridge IDs entscheidet die kleinere MAC-Adresse
* Bei gleichen Bridge IDs entscheidet die kleinere MAC-Adresse


=== Festlegung der Root-Ports ===
=== Festlegung der Root-Ports ===
* Jede Nicht-Root-Brücke muss einen Root Port ausweisen
; Jede Nicht-Root-Brücke muss einen Root Port ausweisen
* Dieser wird durch den "billigsten" / "schnellsten" Weg der in Richtung Root Brücke zeigt ermittelt
* wird durch den ''billigsten/schnellsten'' Weg der in Richtung Root Brücke zeigt ermittelt


=== Bestimmung der Designated-Ports ===
=== Bestimmung der Designated-Ports ===
* Jedes Segment hat einen Designated-Port
; Jedes Segment hat einen Designated-Port
* Die Root Brücke hat nur Designated Ports, aufgrund ihrer Wegekosten von 0
* Die Root Bridge hat nur Designated Ports
* Jedem Root-Port liegt ein Designated-Port gegenüber
* Wegekosten '0'
** Auf Segmenten ohne Root-Port entscheiden die geringsten Wegekosten darüber
 
** Sind die Wegekosten gleich, entscheidet die kleinste MAC Adresse welcher Switch den Designated-Port erhält
; Jedem ''Root-Port'' liegt ein ''Designated-Port' gegenüber
** Dem Designated-Port liegt auf diesem Segment dann ein Blocked-Port gegenüber
* Auf Segmenten ohne Root-Port entscheiden die geringsten Wegekosten darüber
* Sind die Wegekosten gleich, entscheidet die kleinste MAC Adresse welcher Switch den Designated-Port erhält
* Dem Designated-Port liegt auf diesem Segment dann ein Blocked-Port gegenüber


== Ablauf ==
=== Zuordnung einer Bridge pro LAN ===
# Einschalten („Power up“) aller Bridges
; Zuordnung ist entscheidend, um entsehende Schleifen zu verhindern
# Alle Bridges stellen ihre Ports auf „Blocked“
Wenn nur eine Bridge an ein spezielles LAN angebunden ist, ist die Wahl einfach:
# Jede Bridge nimmt an, sie sei die Root-Bridge, und sendet ihre Bridge ID  an eine bestimmte Multicast-Gruppe
* Der Port, der zu diesem LAN gehöhrt wird ihm auch global zugeordnet.
# Die Bridge mit der kleinsten Bridge-ID (besteht aus Bridge Priority & MAC-Adresse) wird zur Root-Bridge
* Haben mehrere Bridges einen direkten Zugang zu einem LAN, wird der Port ausgewählt, welcher die geringsten Kosten bei einer Verknüpfung mit der Root-Bridge verursacht.
# Die Root-Bridge sendet sogenannte Konfigurations-BPDUs (Bridge Protocol Data Unit) aus
* Hat die dem LAN zugewiesene Bridge mehrere Ports in diesem LAN, so wird der Port mit der geringsten Priorität genutzt.
# Jede Bridge bestimmt den Port mit den kleinsten Pfadkosten zur Root-Bridge als Root-Port (Bei Ports mit gleichen Kosten gewinnt die kleinere Port-ID)
# Die Designated Bridge wird festgelegt, dies ist die Bridge mit dem Root-Port


== Pfadkosten ==
=== Pfadkosten ===
{| class="wikitable sortable"
{| class="wikitable big options"
! Bandbreite !! STP-Kosten
! Bandbreite !! STP-Kosten
|-
|-
Zeile 98: Zeile 131:
|}
|}


* Eine 40- und eine 100-GBit-Verbindung haben in Summe die gleichen Wegekosten, wie eine 10-GBit Verbindung
Eine 40- und eine 100-GBit-Verbindung haben in Summe die gleichen Wegekosten, wie eine 10-GBit Verbindung
* hier würde es Sinn machen, die Ports einzeln zu konfigurieren
* hier würde es Sinn machen, die Ports einzeln zu konfigurieren


== Begrifflichkeiten ==
=== Topologie-Erkennung ===
=== Bridge Protocol Data Unit - BPDU ===
; Portzustände
Bei der Bridge Protocol Data Unit (BPDU) handelt es sich um eine Protokoll-Dateneinheit für Brücken oder Switches, die das Spanning-Tree-Protokoll zum Austausch von Managementinformationen und Steuerinformationen zwischen den Brücken eines Netzwerks benutzt.
Um die logische Netzwerktopologie kennenzulernen, durchläuft jeder ''Trunk-Port'' folgende Zustände
 
* Für diesen Zustandsübergang werden in der Standardkonfiguration 50 Sekunden benötigt
[[Datei:BPDU.webp | 800px]]


; Bedeutung der Felder in der Konfigurations-BPDU
{| class="wikitable options big"
{| class="wikitable sortable"
! Zustand  !! Beschreibung
|-
|-
! Feld!!Beschreibung
| Disabled ||
* Verwirft Frames
* lernt keine Adressen
* empfängt und verarbeitet keine BPDUs
|-
|-
| Flags || Es werden nur zwei Flags verwendet: TC (Topology Change) und TCA (Topology Change Acknowledgement). Die Verwendung von beiden wird im Abschnitt "Topologieänderungen" beschrieben.
| Blocking ||  
* Verwirft Frames
* lernt keine Adressen
* empfängt und verarbeitet BPDUs
|-
|-
| Root Bridge ID || ID der Root Bridge. Dies ist, was die sendende Brücke für die aktuelle Root-Bridge hält.
| Listening ||  
* Verwirft Frames
* lernt keine Adressen
* empfängt, verarbeitet und überträgt BPDUs
|-
|-
| Root Path Cost || Kosten für den kürzesten Weg von der Sendebrücke zur Wurzelbrücke. Die Kosten betragen 0, wenn die sendende Brücke die Root-Brücke ist (oder glaubt, dass sie werden soll).
| Learning ||  
* Verwirft Frames
* lernt Adressen
* empfängt, verarbeitet und überträgt BPDUs
|-
|-
| Bridge ID || ID der Sendebrücke.
| Forwarding ||  
* Leitet Frames weiter
* lernt Adressen
* empfängt, verarbeitet und überträgt BPDUs
|}
 
=== Timer ===
; Zeitspanne in der ein Port in einem Zustand verweilt
Durch ''Timer'' festgelegt
* Nur die Root-Bridge kann die Einstellungen ändern
* Drei Timer beeinflussen den Zustandswechsel und damit die Ausführungsgeschwindigkeit des Algorithmus
 
{| class="wikitable options big"
|-
|-
| Port ID || Port-ID. Die Syntax finden Sie im Abschnitt "Bridge- und Port-IDs".
! Timer !! Beschreibung
|-
|-
| Message Age || Wie viel Zeit ist vergangen, seit die Root-Bridge die Informationen in dieser BPDU generiert hat.
| Hello timer || Legt fest, wie oft das Netzwerkgerät Hallo-Nachrichten an andere Netzwerkgeräte sendet
|-
|-
| Max Age || Maximale Lebensdauer für Konfigurations-BPDUs.
| Maximum age timer || Legt fest, wie lange Protokollinformationen, die an einem Port empfangen werden, vom Netzwerkgerät gespeichert werden
|-
|-
| Hello Time || Timeout benutzt  von Hello timer.
| Forward Delay || Vorwärtsverzögerung ist die Zeit, die im Zuhör- und Lernzustand verbracht wird. Standardmäßig 15 Sekunden, kann jedoch auf einen Wert zwischen 4 und 30 Sekunden einstellen werden
|}
 
== Bridge Protocol Data Unit (BPDU) ==
; Dateneinheit, die Briges/Switches austauschen, um Spanning Tree zu verwalten
 
{| class="header"
|+ '''Bridge Protocol Data Unit'''
|-
|-
| Forward Delay || Timeout benutzt von Forward Delay timer
! style="text-align:center !important; font-weight: normal;" "width="8%"| 2 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 1 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 1 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 1 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 8 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 2 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 2 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 2 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 2 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 2 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 2 Byte
! style="text-align:center !important; font-weight: normal;" "width="8%"| 2 Byte
|-
|-
| Bridge ID || Ist eine "Kennung" (8 Byte) die sich aus einer sogenannten Priority (2 Byte -> 2^16 Bit -> max. 65.536) und der MAC-Adresse (6 Byte) des Switch zusammensetzt
| style="background-color:#aaffcc;" | [[Protocol ID]]
| style="background-color:#aaffcc;" | [[Version]]
| style="background-color:#aaffcc;" | [[Message Type]]
| style="background-color:#aaffcc;" | [[Flags]]
| style="background-color:#aaffcc;" | [[Root ID]]
| style="background-color:#aaffcc;" | [[Cost of Path]]
| style="background-color:#aaffcc;" | [[Bridge ID]]
| style="background-color:#aaffcc;" | [[Port-ID]]
| style="background-color:#aaffcc;" | [[Message Age]]
| style="background-color:#aaffcc;" | [[Max age]]
| style="background-color:#aaffcc;" | [[Hello timer]]
| style="background-color:#aaffcc;" | [[Forward Delay]]
|}
|}


=== Portzustände ===
{| class="wikitable sortable options"
Um die logische Netzwerktopologie kennen zu lernen, durchläuft jeder Trunk-Port folgende Zustände:
|-
{| class="wikitable sortable"
! Feld!!Beschreibung
! Portzustand  !! Beschreibung
|-
| Flags ||
* TC (Topology Change)
* TCA (Topology Change Acknowledgement)
siehe [[#Topologieänderungen]]
|-
|-
| Disabled || Verwirft Frames; lernt keine Adressen; empfängt und verarbeitet keine BPDUs
| Root Bridge ID || ID der Root Bridge
|-
|-
| Blocking || Verwirft Frames; lernt keine Adressen; empfängt und verarbeitet BPDUs
| Root Path Cost || Kosten für den kürzesten Weg von der Sendebrücke zur Wurzelbrücke
* Die Kosten betragen 0, wenn die sendende Brücke die Root-Brücke ist (oder glaubt, dass sie werden soll)
|-
|-
| Listening || Verwirft Frames; lernt keine Adressen; empfängt, verarbeitet und überträgt BPDUs
| Bridge ID || ID der Sendebrücke
|-
|-
| Learning || Verwirft Frames; lernt Adressen; empfängt, verarbeitet und überträgt BPDUs
| Port ID || Port-ID
* siehe [[#Bridge- und Port-IDs]]
|-
|-
| Forwarding || Leitet Frames weiter, lernt Adressen; empfängt, verarbeitet und überträgt BPDUs
| Message Age || Zeit, seit die Root-Bridge die Informationen in dieser BPDU generiert hat
|}
 
Wenn STP aktiviert ist, passiert jeder Port auf jedem Switch die Zustände in der Reihenfolge:
 
* Blocking –> Listening –> Learning –> Forwarding
* Für diesen Zustandsübergang werden in der Standard Konfiguration 50 Sekunden benötigt.
 
=== Timer ===
* Die Zeitspanne, die ein Port in einem Zustand verweilt, wird durch Timer bestimmt.
* Nur die Root-Bridge kann die Einstellungen verändern.
* Drei Timer beeinflussen den Zustandswechsel und damit die Ausführungsgeschwindigkeit des Algorithmus:
 
{| class="wikitable sortable"
|-
|-
! Timer !! Beschreibung
| Max Age || Maximale Lebensdauer für Konfigurations-BPDUs
|-
|-
| Hello timer || Legt fest, wie oft das Netzwerkgerät Hallo-Nachrichten an andere Netzwerkgeräte sendet.
| Hello Time || Timeout benutzt  von Hello timer
|-
|-
| Maximum age timer || Legt fest, wie lange Protokollinformationen, die an einem Port empfangen werden, vom Netzwerkgerät gespeichert werden.
| Forward Delay || Timeout benutzt von Forward Delay timer
|-
|-
| Forward Delay || Vorwärtsverzögerung ist die Zeit, die im Zuhör- und Lernzustand verbracht wird. Standardmäßig 15 Sekunden, kann jedoch auf einen Wert zwischen 4 und 30 Sekunden einstellen werden.
| Bridge ID || Ist eine "Kennung" (8 Byte) die sich aus einer sogenannten Priority (2 Byte -> 2^16 Bit -> max. 65.536) und der MAC-Adresse (6 Byte) des Switch zusammensetzt
|}
|}


== STP Topologie Beispiel ==
== Topologie ==
 
=== STP ===
[[Datei:Spanning tree topology.png|ein beispiel für eine spanning-tree-topologie]]
[[Datei:Spanning tree topology.png| Beispiel einer Spanning Tree Topologie]]


* Rechnernetzwerke können mit einer Vielzahl von Switches als Koppelungselement aufgebaut werden.
=== RSTP ===
* Der Spanning-Tree-Algorithmus sorgt dafür, dass es keine unerwünscht kreisenden Pakete gibt.
; Funktionen wie STP
* Er identifiziert Mehrfachwege, indem er Topologien mit redundanten Wegen durch eine logische Blockierung bestimmter Pfade in eine Baumtopologie überführt, die keine Schleifen besitzt.
; schnellere Konvergenz
** Dazu werden auf den Switches mit mehreren Verbindungen zu anderen Switches alle bis auf eine Verbindung blockiert.
* Bei signalisierten Topologie Änderungen, wird die vorhandene Netzstruktur weiter genutzt, während ein Alternativpfad berechnet wird
** Bei Ausfall der primären Verbindung können diese sofort aktiviert werden und erzeugen auf diese Weise ein hohes Maß an Fehlertoleranz.
* Erst anschließend wird ein neuer Baum zusammengestellt


== RSTP ==
=== MSTP ===
* RSTP bietet die gleichen Funktionen wie STP, nur kann RSTP eine viel schnellere Konvergenz zwischen den einzelnen Bäumen bieten.
[[Datei:MSTP Concept.png|mini|MSTP]]
* Bei signalisierten Topologie Änderungen, wird die vorhandene Netzstruktur weiter genutzt, während ein Alternativpfad berechnet wird.
; Multiple Spanning Tree Protocol (MSTP)
* Erst anschließend wird ein neuer Baum zusammengestellt.
* Erweiterung von [[#RSTP|RSTP]]


== MSTP ==
; Ermöglicht mit VLANs verschiedene Instanzen des Spannbaums
* Das Multiple Spanning Tree Protocol (MSTP)ist eine Erweiterung des RSTPs.
* Für ein VLAN oder eine Gruppe von VLANs können unabhängige STP-Instanzen gebildet werden
* Es ermöglicht im Zusammenhang mit VLANs verschiedene Instanzen des Spannbaums.
** die innerhalb eines LANs jeweils eigene unterschiedliche Spannbäume nutzen
* Für ein VLAN oder eine Gruppe von VLANs können also voneinander unabhängige STP-Instanzen gebildet werden, die innerhalb eines LANs jeweils eigene unterschiedliche Spannbäume nutzen.


[[Datei:MSTP Concept.png|500px|MSTP]]
=== CIST ===
; Common Internal Spanning Tree
* Umfasst alle LANs, STP- und RSTP-Bridges und MSTP-Regionen in einem Netzwerk
* Das CIST bestimmt automatisch die MST-Regionen in einem Netzwerk und definiert die Root-Bridge (Switch) und den designierten Port für jede Region
* Der CIST umfasst den Common Spanning Tree (CST), den Internal Spanning Tree (IST) innerhalb jeder Region und alle multiplen Spanning-Tree-Instanzen (MSTIs) in einer Region


=== Common Internal Spanning Tree (CIST) ===
<noinclude>
*Identifiziert Regionen in einem Netzwerk und verwaltet die CIST-Root-Bridge für das Netzwerk für jede Region und für jede Spanning Tree-Instanz in jeder Region.
* Es ist auch die Standard-Spanning-Tree-Instanz von MSTP, sodass jedes VLAN, das nicht Mitglied einer bestimmten MSTI ist, Mitglied der CIST ist.
* Funktioniert außerdem genauso wie der Spanning Tree, der zwischen Regionen und zwischen MST-Regionen und SST-Entitäten (Single Spanning Tree) ausgeführt wird.


=== Zuordnung einer Bridge pro LAN ===
== Anhang ==
* Zuordnung ist entscheidend, um entsehende Schleifen zu verhindern.
=== Siehe auch ===
* Wenn nur eine Bridge an ein spezielles LAN angebunden ist, ist die Wahl einfach:
{{Special:PrefixIndex/Spanning Tree Protocol}}
** Der Port, der zu diesem LAN gehöhrt wird ihm auch global zugeordnet.
----
** Haben mehrere Bridges einen direkten Zugang zu einem LAN, wird der Port ausgewählt, welcher die geringsten Kosten bei einer Verknüpfung mit der Root-Bridge verursacht.
[[IEEE 802.1D]]
** Hat die dem LAN zugewiesene Bridge mehrere Ports in diesem LAN, so wird der Port mit der geringsten Priorität genutzt.


=== Shortest Path Bridging (SPB) ===
==== Dokumentation ====
* Um die Begrenzungen des Spanning Tree Protocol zu überwinden, wurde das Shortest Path Bridging entwickelt und in IEEE 802.1aq standardisiert (https://de.wikipedia.org/wiki/IEEE_802.1aq)
===== IEEE-Normen =====


== Sicherheit ==
{| class="wikitable sortable options"
== Dokumentation ==
|-
=== RFC ===
! IEEE-Norm !! Beschreibung
=== Man-Pages ===
|-
=== Info-Pages ===
| [[802.1D]] ||
== Siehe auch ==
|-
# [[Switch]]
| [[802.1w]] ||
|-
| [[802.1s]] ||
|-
| [[802.1aq]] ||
|-
| [[802.1Q]] ||
|}


== Links ==
==== Links ====
=== Projekt-Homepage ===
===== Weblinks =====
=== Weblinks ===
# https://de.wikipedia.org/wiki/Spanning_Tree_Protocol
# https://de.wikipedia.org/wiki/Spanning_Tree_Protocol
# https://www.admin-magazin.de/Das-Heft/2014/03/Wie-organisiert-Spanning-Tree-ein-Ethernet-Netzwerk
# http://www.bbs-1.de/bbs1/umat/netze/netz7.html
# https://www.tp-link.com/us/configuration-guides/configuring_spanning_tree/
=== Einzelnachweise ===
<references />
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Erläutern Sie, warum das Spanning Tree Protocol in einem geswitchten Netz mit redundanten Verbindungen eingesetzt wird?''
<div class="mw-collapsible-content">'''In einem Netz mit redundanten Verbindungen kommt es ohne STP zu Schleifen. Man spricht auch von Broadcaststürmen. STP "spannt einen sogenannten Baum auf" und verhindert durch logische Pfade und blockieren von entsprechenden Ports Schleifen im Netz.'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Erläutern Sie wie die Root-Brigde ermittelt wird?''
<div class="mw-collapsible-content">'''Eine Root Bridge wird anhang Ihrer Bridge ID ermittelt. Die Bridge mit der niedrigsten Brigde ID wird Root Bridge.'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Wie kann man in den "Aushandlungsprozess" der Root Bridge manuell eingreifen?''
<div class="mw-collapsible-content">'''Man kann die Priority der Bridge in 4096 Schritten ändern. Standarmäßig hat eine Bridge im Werkszustand eine Priority von 32768. Diese kann z.B. senken.'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
Pfadkosten:
Etage01 zu Core = 10Gbit -> 10.000.000.000 / 10GBit = Pfadkosten 1
Gesamt Pfadkosten Port 25 = 1
Etage01 über Etage02 = 1Gbit -> 10.000.000.000 / 1Gbit = Pfadkosten 10
Etage02 zu Core = 10Gbit -> 10.000.000.000 / 10Gbit = Pfadkosten 1
Gesamt Pfadkosten Port 26 = 11
Welcher Port wird deaktiviert?
<div class="mw-collapsible-content">
Port 26 wird deaktiviert, da Pfadkosten > Pfadkosten Port 25</div>
</div>


[[Kategorie:OSI:02]]
[[Kategorie:Switch]]
[[Kategorie:Switch]]
[[Kategorie:Ethernet]]
[[Kategorie:T2600G/L2/STP]]
[[Kategorie:OSI/2 Data Link]]
<noinclude>

Aktuelle Version vom 8. Februar 2024, 09:36 Uhr

Spanning Tree Protocol - Schleifenunterdrückung bei redundanten Verbindungen zwischen Bridges oder Switches

Beschreibung

Unterdrückung kreisender Frames

STP (Spanning Tree Protocol)
Familie Inter-Switch-Kommunikation
Einsatzgebiet Management von logischen Ethernet-Verbindungen
Protokollstapel Netzzugang STP
Ethernet
Unterdrückung von kreisenden Ethernet-Frames

Identifiziert Mehrfachwege

  • Redundanten Wegen durch eine logische Blockierung bestimmter Pfade
  • Baumtopologie aufbauen, die keine Schleifen besitzt

Dazu werden auf den Switches mit redundante Verbindungen zu anderen Switches bis auf eine blockiert

  • Bei Ausfall der primären Verbindung können diese aktiviert
  • Erzeugen so ein hohes Maß an Fehlertoleranz
Beispiel einer Spanning Tree Topologie
IEEE 802.1D
Redundante Wege
  • Ausgehend von einem "Root"-Punkt wird nur ein Weg aktiviert
Switch-Infrastrukturen
  • Rechnernetzwerke können mit einer Vielzahl von Switches aufgebaut werden
Eindeutiger Datenpfad
  • Pakete eindeutig weiterleiten
  • Ethernet-Technologie muss sicherstellen, dass
  • zwischen zwei Rechnern jeweils nur ein Datenpfad existiert
Vermeidung von Broadcast-Stürmen
Wird nur erreicht, wenn ein Algorithmus existiert, der die Schleifenfreiheit der Topologie sicherstellt
Der Spanning Tree–Algorithmus (STA) wurde von Radia Perlman entworfen und 1990 als IEEE 802.1D standardisiert
  • Voraussetzung für die Funktionsfähigkeit dieses Konzeptes ist, dass der aufspannende Baum für den Nutzer vollkommen transparent erstellt werden kann.
  • Als einzige Aktion muss der Spanning-Tree-Algorithmus auf den Switches aktiviert sein.
Bridge Protocol Data Unit (BPDU)

Austausch von Konfigurationsnachrichten

  • Multicast-Paket
  • standardmäßig alle zwei Sekunden
  • nicht unerhebliche Netzlast
Redundanz
Einerseits ist Redundanz in einem Netz besonders wichtig, weil damit Netzwerke fehlertolerant werden.
  • Redundante Topologien schützen vor unerwünschten Ausfallzeiten im Netz aufgrund von Fehlern einer einzigen Verbindung, eines Anschlusses oder einer Netzeinheit.
Andererseits wird durch diese Redundanz in der Topologie die Möglichkeit für die fehlerhafte Doppelübertragungen von Informationen eröffnet.
  • Dem entgegenwirkt STP (Spanning Tree Protocol), indem es redundante Wege zwar erlaubt, aber immer nur genau einen Weg aktiv hält.
  • Dies führt zu einer schleifenfreien logischen Topologie, bei der zwischen zwei Rechnern im Netz immer nur ein aktiver Pfad besteht.

Aufspannen des Baumes

Ablauf
Schritt Option
1 Einschalten („Power up“) aller Bridges
2 Alle Bridges stellen ihre Ports auf „Blocked“
3 Jede Bridge nimmt an, sie sei die Root-Bridge, und sendet ihre Bridge ID an eine bestimmte Multicast-Gruppe
4 Die Bridge mit der kleinsten Bridge-ID (besteht aus Bridge Priority & MAC-Adresse) wird zur Root-Bridge
5 Die Root-Bridge sendet sogenannte Konfigurations-BPDUs (Bridge Protocol Data Unit) aus
6 Jede Bridge bestimmt den Port mit den kleinsten Pfadkosten zur Root-Bridge als Root-Port (Bei Ports mit gleichen Kosten gewinnt die kleinere Port-ID)
7 Die Designated Bridge wird festgelegt, dies ist die Bridge mit dem Root-Port

Wahl der Root-Bridge

Bestimmung erfolgt anhand der Bridge ID
  • Kleinste Bridge ID gewinnt
  • Bei gleichen Bridge IDs entscheidet die kleinere MAC-Adresse

Festlegung der Root-Ports

Jede Nicht-Root-Brücke muss einen Root Port ausweisen
  • wird durch den billigsten/schnellsten Weg der in Richtung Root Brücke zeigt ermittelt

Bestimmung der Designated-Ports

Jedes Segment hat einen Designated-Port
  • Die Root Bridge hat nur Designated Ports
  • Wegekosten '0'
Jedem Root-Port liegt ein Designated-Port' gegenüber
  • Auf Segmenten ohne Root-Port entscheiden die geringsten Wegekosten darüber
  • Sind die Wegekosten gleich, entscheidet die kleinste MAC Adresse welcher Switch den Designated-Port erhält
  • Dem Designated-Port liegt auf diesem Segment dann ein Blocked-Port gegenüber

Zuordnung einer Bridge pro LAN

Zuordnung ist entscheidend, um entsehende Schleifen zu verhindern

Wenn nur eine Bridge an ein spezielles LAN angebunden ist, ist die Wahl einfach:

  • Der Port, der zu diesem LAN gehöhrt wird ihm auch global zugeordnet.
  • Haben mehrere Bridges einen direkten Zugang zu einem LAN, wird der Port ausgewählt, welcher die geringsten Kosten bei einer Verknüpfung mit der Root-Bridge verursacht.
  • Hat die dem LAN zugewiesene Bridge mehrere Ports in diesem LAN, so wird der Port mit der geringsten Priorität genutzt.

Pfadkosten

Bandbreite STP-Kosten
10 MBit/s 100
16 MBit/s 62
100 MBit/s 19
200 MBit/s 12
622 MBit/s 6
1 GBit/s 4
10 GBit/s 2
20+ GBit/s 1

Eine 40- und eine 100-GBit-Verbindung haben in Summe die gleichen Wegekosten, wie eine 10-GBit Verbindung

  • hier würde es Sinn machen, die Ports einzeln zu konfigurieren

Topologie-Erkennung

Portzustände

Um die logische Netzwerktopologie kennenzulernen, durchläuft jeder Trunk-Port folgende Zustände

  • Für diesen Zustandsübergang werden in der Standardkonfiguration 50 Sekunden benötigt
Zustand Beschreibung
Disabled
  • Verwirft Frames
  • lernt keine Adressen
  • empfängt und verarbeitet keine BPDUs
Blocking
  • Verwirft Frames
  • lernt keine Adressen
  • empfängt und verarbeitet BPDUs
Listening
  • Verwirft Frames
  • lernt keine Adressen
  • empfängt, verarbeitet und überträgt BPDUs
Learning
  • Verwirft Frames
  • lernt Adressen
  • empfängt, verarbeitet und überträgt BPDUs
Forwarding
  • Leitet Frames weiter
  • lernt Adressen
  • empfängt, verarbeitet und überträgt BPDUs

Timer

Zeitspanne in der ein Port in einem Zustand verweilt

Durch Timer festgelegt

  • Nur die Root-Bridge kann die Einstellungen ändern
  • Drei Timer beeinflussen den Zustandswechsel und damit die Ausführungsgeschwindigkeit des Algorithmus
Timer Beschreibung
Hello timer Legt fest, wie oft das Netzwerkgerät Hallo-Nachrichten an andere Netzwerkgeräte sendet
Maximum age timer Legt fest, wie lange Protokollinformationen, die an einem Port empfangen werden, vom Netzwerkgerät gespeichert werden
Forward Delay Vorwärtsverzögerung ist die Zeit, die im Zuhör- und Lernzustand verbracht wird. Standardmäßig 15 Sekunden, kann jedoch auf einen Wert zwischen 4 und 30 Sekunden einstellen werden

Bridge Protocol Data Unit (BPDU)

Dateneinheit, die Briges/Switches austauschen, um Spanning Tree zu verwalten
Bridge Protocol Data Unit
2 Byte 1 Byte 1 Byte 1 Byte 8 Byte 2 Byte 2 Byte 2 Byte 2 Byte 2 Byte 2 Byte 2 Byte
Protocol ID Version Message Type Flags Root ID Cost of Path Bridge ID Port-ID Message Age Max age Hello timer Forward Delay
Feld Beschreibung
Flags
  • TC (Topology Change)
  • TCA (Topology Change Acknowledgement)

siehe #Topologieänderungen

Root Bridge ID ID der Root Bridge
Root Path Cost Kosten für den kürzesten Weg von der Sendebrücke zur Wurzelbrücke
  • Die Kosten betragen 0, wenn die sendende Brücke die Root-Brücke ist (oder glaubt, dass sie werden soll)
Bridge ID ID der Sendebrücke
Port ID Port-ID
Message Age Zeit, seit die Root-Bridge die Informationen in dieser BPDU generiert hat
Max Age Maximale Lebensdauer für Konfigurations-BPDUs
Hello Time Timeout benutzt von Hello timer
Forward Delay Timeout benutzt von Forward Delay timer
Bridge ID Ist eine "Kennung" (8 Byte) die sich aus einer sogenannten Priority (2 Byte -> 2^16 Bit -> max. 65.536) und der MAC-Adresse (6 Byte) des Switch zusammensetzt

Topologie

STP

Beispiel einer Spanning Tree Topologie

RSTP

Funktionen wie STP
schnellere Konvergenz
  • Bei signalisierten Topologie Änderungen, wird die vorhandene Netzstruktur weiter genutzt, während ein Alternativpfad berechnet wird
  • Erst anschließend wird ein neuer Baum zusammengestellt

MSTP

MSTP
Multiple Spanning Tree Protocol (MSTP)
  • Erweiterung von RSTP
Ermöglicht mit VLANs verschiedene Instanzen des Spannbaums
  • Für ein VLAN oder eine Gruppe von VLANs können unabhängige STP-Instanzen gebildet werden
    • die innerhalb eines LANs jeweils eigene unterschiedliche Spannbäume nutzen

CIST

Common Internal Spanning Tree
  • Umfasst alle LANs, STP- und RSTP-Bridges und MSTP-Regionen in einem Netzwerk
  • Das CIST bestimmt automatisch die MST-Regionen in einem Netzwerk und definiert die Root-Bridge (Switch) und den designierten Port für jede Region
  • Der CIST umfasst den Common Spanning Tree (CST), den Internal Spanning Tree (IST) innerhalb jeder Region und alle multiplen Spanning-Tree-Instanzen (MSTIs) in einer Region


Anhang

Siehe auch


IEEE 802.1D

Dokumentation

IEEE-Normen
IEEE-Norm Beschreibung
802.1D
802.1w
802.1s
802.1aq
802.1Q

Links

Weblinks
  1. https://de.wikipedia.org/wiki/Spanning_Tree_Protocol