|
|
Zeile 101: |
Zeile 101: |
| </div> | | </div> |
| </div> | | </div> |
|
| |
| = TMP =
| |
| == Beschreibung ==
| |
| {| class="wikitable" style="float:right; margin-left: 10px;"
| |
| ! bgcolor="#EEEEEE" colspan="3" font="size:larger" | STP (Spanning Tree Protocol)
| |
| |-
| |
| ! style="text-align:left" | Familie:
| |
| | rowspan="1" colspan="2" | Inter-Switch-Kommunikation
| |
| |-
| |
| ! style="text-align:left" | Einsatzgebiet:
| |
| | rowspan="1" colspan="2" | Management von logischen Ethernet-Verbindungen
| |
| |-
| |
| | rowspan=2" style="background:#EEEEEE"| '''Protokollstapel:'''
| |
| | rowspan="2" style="background:#d58300; text-align:center""| '''Netzzugang'''
| |
| | rowspan="1" colspan="1" style="background:#ffa500; text-align:center"| '''STP'''
| |
| |-
| |
| | rowspan="1" colspan="6" style="background:#ffc93b; 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
| |
| |}
| |
|
| |
| ; Spanning-Tree sorgt dafür, dass es keine unerwünscht kreisenden Pakete gibt
| |
| * 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 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
| |
|
| |
| ; Eindeutiger Datenpfad
| |
| * Pakete eindeutig weiterleiten
| |
| * Ethernet-Technologie muss sicherstellen, dass
| |
| * zwischen zwei Rechnern jeweils nur ein Datenpfad existiert
| |
|
| |
| ; Vermeidung von [[Broadcast-Sturm|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
| |
| {| class="wikitable sortable options"
| |
| |-
| |
| ! 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 ===
| |
| {| class="wikitable sortable"
| |
| ! 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
| |
|
| |
| {| class="wikitable options"
| |
| ! Portzustand !! 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
| |
| |}
| |
|
| |
| ; Für diesen Zustandsübergang werden in der Standardkonfiguration 50 Sekunden benötigt
| |
|
| |
| === Timer ===
| |
| ; Zeitspanne in der 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 options"
| |
| |-
| |
| ! 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
| |
| |}
| |
|
| |
| == Topologie ==
| |
| === STP ===
| |
| [[Datei:Spanning tree topology.png| Beispiel einer Spanning Tree Topologie]]
| |
|
| |
| === RSTP ===
| |
| ; Gleichen Funktionen wie STP
| |
| ; Viel 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 ===
| |
| [[Datei:MSTP Concept.png|400px|mini|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
| |
|
| |
| == Bridge Protocol Data Unit ==
| |
| Die ''Bridge Protocol Data Unit'' (BPDU) ist die Dateneinheit, die Briges und Switches austauschen, um den Spanning Tree zu verwalten.
| |
|
| |
| {| class="header" border="1" cellpadding="4" cellspacing="0" style="text-align:center;margin:auto;"
| |
| |+ '''Bridge Protocol Data Unit'''
| |
| |-
| |
| ! 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
| |
| |-
| |
| | 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]]
| |
| |}
| |
|
| |
| {| class="wikitable sortable options"
| |
| |-
| |
| ! Feld!!Beschreibung
| |
| |-
| |
| | Flags || Es werden zwei Flags verwendet:
| |
| * TC (Topology Change)
| |
| * TCA (Topology Change Acknowledgement).
| |
| Die Verwendung von beiden wird im Abschnitt "Topologieänderungen" beschrieben.
| |
| |-
| |
| | Root Bridge ID || ID der Root Bridge. Dies ist, was die sendende Brücke für die aktuelle Root-Bridge hält.
| |
| |-
| |
| | 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. Die Syntax finden Sie im Abschnitt "Bridge- und Port-IDs".
| |
| |-
| |
| | Message Age || Wie viel Zeit ist vergangen, 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
| |
| |}
| |
|
| |
|
| [[Kategorie:Switch]] | | [[Kategorie:Switch]] |
| [[Kategorie:T2600G/L2/STP]] | | [[Kategorie:T2600G/L2/STP]] |
| [[Kategorie:OSI 2 Data Link]] | | [[Kategorie:OSI 2 Data Link]] |