Netzwerke:Spanning Tree Protocol

Aus ITWiki
Zur Navigation springen Zur Suche springen

1 Spanning Tree–Algorithmus

Der Algorithmus ist ebenfalls in IEEE 802.10 spezifiziert.Er wird eingesetzt um bei Verknüpfungen von Netzwerken redundante Pfade (sog. Loops) durch einen deterministischen logischen Pfad im Netz zu ersetzen. Im folgenden Beispiel sind verschiedene LANs durch Bridges miteinander verknüpft, die im Bild durch Pfeile repräsentiert werden.

Ein Beispiel für eine Spanning Tree Algorithm

Alle Bridge-Links gemeinsam würden redundante Pfade im Netz ermöglichen, was endlos kreisende Pakete zur Folge hätte. Mit dem "Spanning Tree"-Algorithmus wird einer der möglichen logischen Pfade im Netz ausgewählt, der keine Schleifen enthät. Das Ergebnis wird durch die blauen Pfeile dargestellt die eine baumartige Struktur bilden. Im Extremfall kann hierdurch eine Bridge sogar ganz aus dem Netzverkehr herausfallen.

1.1 Arbeitsweise des Spanning Tree - Algorithmus

Die Bridges kommunizieren untereinander mit Hilfe der sog. Bridge Protocol Data Units (BPDU). Jede Bridge benötigt eine gewisse Grundkonfiguration, um den Algorithmus einsetzen zu können:

  • Bridge: Eindeutige Bridge-ID.
  • Port: Eindeutige Port-ID.
  • Port: Relative Port-Priorität.
  • Port: "Kostenfaktor" für jeden Port (je höher die Netzwerk-Performance im angeschlossenen LAN, desto geringer die Kosten).

In Abhängigkeit der Parameter wird der logische Baum folgendermaßen automatisch von allen Bridges zusammen aufgespannt(Beispielgrafik 8k): 1.Auswahl der Root-Bridge Die Root-Bridge ist die Bridge mit der kleinsten Bridge-ID. Haben zwei Bridges die selbe ID, so wird diejenige mit der kleinsten MAC-Adresse ausgewählt. 2.Auswahl eines Root-Ports pro Bridge Mit Außnahme der Root-Bridge, wird bei jeder Bridge einer der Ports als Root-Port festgelegt.Dieser Port wird mit Hilfe des gewählten Kostenfaktors ermittelt. Die Verbindung mit dem geringsten Kostenfaktor zur Root-Bridge ist dann der Root-Port. 3.Zuordnung einer Bridge pro LAN Diese Zuordnung ist entscheidend, da sonst Schleifen entstehen können. 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.

2 Spanning Tree Protocol

STP (Spanning Tree Protocol)
Familie: Inter-Switch-Kommunikation
Einsatzgebiet: Management von logischen Ethernet-Verbindungen
Netzzugang: STP / Ethernet
Standards: IEEE-Normen 802.1D, 802.1w, 802.1s, IEEE 802.1aq, IEEE 802.1Q


Ein Beispiel für eine Spanning-Tree-Topologie

Das Spanning Tree Protocol (STP, deutsch: Spannbaum-Protokoll) ist ein zentraler Teil von Switch-Infrastrukturen. Rechnernetzwerke können mit einer Vielzahl von Switches als Koppelungs-element aufgebaut werden. Allerdings muss die Ethernet-Technologie sicherstellen, dass zwischen zwei Rechnern jeweils nur ein Datenpfad existiert, um Pakete eindeutig weiterleiten zu können. Die Vermeidung von Effekten wie Broadcast-Stürmen wird nur erreicht, wenn ein Algorithmus existiert, der die Schleifenfreiheit der Topologie sicherstellt. Der Spanning-Tree-Algorithmus sorgt nun dafür, dass es keine unerwünscht kreisenden Pakete gibt. 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.

2.1 Funktionsweise

Um den logischen Spanning-Tree kennenzulernen, geht jeder Switch durch einen Ablauf von Portzuständen, die durch drei Timer beeinflusst werden. Wenn ein Switchport unmittelbar von einem blockierenden in einen weiterleitenden Status versetzt würde, bestünde die Gefahr, Topologie informationen zu verlieren und eine Schleife zu erzeugen. Dies ist der Grund, warum fünf Portzustände unterschieden werden:

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

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:

  • Common Internal Spanning Tree (CIST):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.
  • 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 : 15 sec (4-30)Die Vorwärtsverzögerung ist die Zeit, die im Zuhör- und Lernzustand verbracht wird.Diese Zeit entspricht standardmäßig 15 Sekunden, Sie können die Zeit jedoch auf einen Wert zwischen 4 und 30 Sekunden einstellen.
  • TxHoldCount : 5 pps (1-20)Transmit-Hold-Count, wird von der Port Transmit-Statusmaschine verwendet, um die Übertragungsrate zu begrenzen.
  • Max Hops :20 hop (1-40)Anzahl der Brücken, die BPDU in einem MSTP-fähigen Netzwerk in derselben Region passieren kann, bevor BPDU ignoriert wird.Diese Eigenschaft wirkt sich nur aus, wenn der Protokollmodus auf MSTP gesetzt ist.

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 eine im Netzwerkbereich relativ lange Zeitspanne. Die Konvergenz, also die Zeit, die benötigt wird, um den Spanning Tree im Falle des Ausfalls einer Verbindung neu zu berechnen, ist damit nicht unerheblich und ein Kritikpunkt an diesem Verfahren.

2.2 RSTP

Die Idee hinter dem Rapid Spanning Tree Protocol (RSTP) ist, dass bei signalisierten Topologie änderungen nicht sofort die Netzstruktur gelöscht wird, sondern erst einmal wie gehabt weiter gearbeitet wird und Alternativpfade berechnet werden. Erst anschließend wird ein neuer Baum zusammengestellt. Die Ausfallzeit des Netzes lässt sich so von 30 Sekunden auf unter 1 Sekunde reduzieren. In der 2003 verabschiedeten Revision des 802.1d-Standards wurde das alte STP zugunsten von RSTP (IEEE 802.1w) ersetzt. Inzwischen ist dieses durch IEEE 802.1D-2004 ersetzt worden.

2.3 MSTP

Das Multiple Spanning Tree Protocol (MSTP)ist eine Erweiterung des RSTPs. Es ermöglicht im Zusammenhang mit Virtual Local Area Networks(VLANs) verschiedene Instanzen des Spannbaums. 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. Das MSTP wurde ebenfalls erstmals in der 2003 verabschiedeten Revision des 802.1D- Standards unter IEEE 802.1s definiert und später unter IEEE 802.1Q eingegliedert.

2.4 Shortest Path Bridging (SPB)

Um die Begrenzungen des Spanning Tree Protocol zu überwinden, wurde das Shortest Path Bridging entwickelt und in IEEE 802.1aq standardisiert.

→Hauptartikel: IEEE 802.1aq
 https://de.wikipedia.org/wiki/IEEE_802.1aq

2.5 Schrittweiser Aufbau des Baumes

  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 BPDUs (Bridge Protocol Data Unit) aus.
  4. Die Bridge mit der kleinsten Bridge-ID(= Priority & MAC-Adresse) wird zur Root-Bridge.
  5. Die Root-Bridge sendet Konfigurations-BPDUs 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 vom LAN festgelegt, dies ist die Bridge mit dem Root-Port ins LAN mit den niedrigsten Pfadkosten.

3 Der Baum im Netzwerk

Ethernet ist so beliebt, weil es einfach funktioniert und nicht viel kostet. Doch die Seite des Administrators sieht etwas komplizierter aus: Damit das Netzwerk rundläuft, muss er wichtige Entscheidungen treffen und den Spanning Tree planen. Spanning Tree ist eins der grundlegenden Protokolle in Ethernet-Netzwerken. Es sorgt dafür, dass keine Netzwerkschleifen (Loops) entstehen, denn durch einen Broadcast-Sturm führen sie innerhalb kürzester Zeit zur Überlastung eines Netzwerksegments. Ethernet-Frames haben im Gegensatz zu IP-Paketen keine maximale Lebensdauer (Time to Live, TTL) und bewegen sich deshalb potenziell unendlich lange im Kreis.Das Spanning-Tree-Protokoll erreicht die Schleifenfreiheit, indem es bestimmte Verbindungen zwischen Switches deaktiviert. Abbildung 1 zeigt drei Beispiele (A, B, C) für Netzwerktopologien, die ohne die Blockade einiger Switchports durch Spanning Tree zum Zusammenbruch des Netzwerks führen würden.

Abbildung 1- Das Spanning-Tree-Protokoll verhindert Schleifen in Netzwerktopologien.

4 BPDU-Guard und -Filter

  • BPDU-Guard deaktiviert einen Switchport, sobald er ein BPDU-Paket empfängt. Die Ursache kann in einem Angriff oder im unerlaubten Anschließen eines Switches liegen. Optional aktiviert der BPDU-Guard einen abgeschalteten Switchport mit einem Timer nach Ablauf einer gewissen Zeit automatisch wieder. BPDU-Guard sollte auf jedem Access-Switchport konfiguriert sein. Das geschieht im Interface mit »spanning-tree bpduguard enable« oder global mit »spanning-tree portfast bpduguarddefault« .
  • BPDU-Filter verhindert, dass ein Switch BPDUs über einen Switchport verschickt. Auch dieses Feature sollte auf jedem Access-Port aktiviert sein mit »spanning-tree bpdu-filter enable« im Interface oder global mit »spanning-tree portfast bpdufilter default« .

Auch nachdem die Root Bridge gewählt und der gesamte Spanning Tree aktiv ist, können weitere Switches dem Netzwerk beitreten, beispielsweise bei der Installation eines neuen Stockwerk-Switches. Hat eins der neuen Geräte eine niedrigere Bridge Priority, würde es dann zur neuen Root Bridge. Das zöge allerdings eine Änderung der gesamten Netzwerktopologie und damit möglicherweise suboptimale Pfade sowie Performance-Engpässe nach sich.

Schutz gegen eine versehentliche oder auch böswillige Änderung der Root Bridge bietet der Root Guard .

Abbildung 2 zeigt eine Ausgangslage, in der Switch D zum Netzwerk hinzukommt. Unterbietet dessen Bridge Priority aus einem der genannten Gründe die der bisherigen Root Bridge, ändert sich die Topologie daraufhin wie in Abbildung 3.

Abbildung 2- Hat der neue Switch D eine niedrigere Bridge-Priority als Switch A.png


Abbildung 3- … ändert Spanning Tree die Netzwerktopologie..png

5 Kosten

Beim Betrieb des Netzwerks stehen neben der Zuweisung der Root Bridge weitere Berechnungen an. Bei der Wahl der Root Ports und der Designated Ports, spielen die Verbindungskosten eine wichtige Rolle. Die Spanning-Tree-Standardkosten für unterschiedliche Bandbreiten stellt Tabelle dar. Die vordefinierten Werte führen allerdings dazu, dass eine 40- und eine 100-GBit-Verbindung die gleichen Spanning-Tree-Kosten ergeben wie auch ein PortChannel aus zwei 10-GBit-Verbindungen, bei dem sich die Kosten aus der Gesamtbandbreite aller zusammengefügten Verbindungen berechnet. Um in solchen Situationen detaillierter zu reagieren, sind die Spanning-Tree-Verbindungskosten falls nötig pro Port einzeln konfigurierbar.

Verbindungskosten
Bandbreite 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

Abbildung 4 stellt eine Beispieltopologie aus vier 100-MBit-Switches dar, in der Switch 4 die Root Bridge übernimmt. Da alle Verbindungen eine Geschwindigkeit von 100 MBit pro Sekunde haben, belaufen sich die Kosten für jeden Port gemäß Tabelle 1 auf 19. Die einzige Ausnahme bildet der PortChannel zwischen Switch 3 und Switch 4, der in Summe 200 MBit pro Sekunde und damit einen Kostenwert von 12 vorweist.

Abbildung 4- Bei 100-MBit-Leitungen zwischen allen Ports ergeben sich für alle Wegkosten Werte von 19, außer für die gebündelten Leitungen zwischen den Switches 3 und 4. .png

6 Verbindung

Mithilfe eines Kabels, kann man auf einem Computer eine serielle Verbindung zu bspw. einem Switch herstellen und das CLI (Command Line Interface) aufrufen. Diese Seite beschreibt die Vorgehensweise, um darauf zuzugreifen.

  • Kabel mit einem RJ-45-Stecker und einem RS232-Stecker (oder USB)
RJ-45-Stecker
USB
  • Mithilfe von dmesg|grep tty die Schnittstellen herausfinden

6.1 Software

  • Ein serielles Kommunikationsprogramm wie minicom installieren und konfigurieren
# apt install minicom
# minicom -s
  • Minicom konfigurieren :
- Einstellungen zum seriellen Anschluss: 
   - A - Serieller Anschluss      : /dev/ttyS0
   - E - Bps/Par/Bits             : 38400 8N1  
   - F - Hardware Flow Control    : Nein 
 - Speichern als »dfl«  
  • Unter Einstellung zum seriellen Anschluss auf Serieller Anschluss die Schnittstelle eingeben
  • Darauffolgende Konsolenbefehle:
# enable
# configure
# interface vlan 1                                          
# ip address 10.0.0.254 255.0.0.0

7 Quellen