Das Spanning Tree Protocol (STP) baut einen Spannbaum zur Vermeidung redundanter Netzwerkpfade (Schleifen) im LAN, speziell in geswitchten Umgebungen auf. Der Implementierung liegt wesentlich ein Spanning Tree Algorithmus zu Grunde, sie wurde in der IEEE-Norm 802.1D standardisiert. Mittlerweile wurde das klassische STP durch RSTP nach IEEE 802.1w ersetzt.
Netzwerkpakete sollten zu jedem möglichen Ziel immer nur einen Pfad haben, um zu vermeiden, dass Datenpakete (Frames) dupliziert werden und mehrfach am Ziel eintreffen. Andererseits möchte man mitunter redundante Netzwerkpfade als Backup für den Fehlerfall zur Verfügung haben. Der Spanning Tree Algorithmus wird beiden Bedürfnissen gerecht.
Zur Kommunikation zwischen den Switches wird das Bridge Protokoll genutzt. Die Pakete dieses Protokolls werden Bridge Protocol Data Unit (BPDU) genannt.
Zunächst wird unter den Spanning-Tree fähigen Bridges im Netzwerk eine sog. Root Bridge gewählt, die die Wurzel des aufzuspannenden Baumes wird und Chef des Netzwerks ist. Dies geschieht, indem alle Bridges ihre Bridge-ID (die jede Bridge besitzt) an eine bestimmte Multicast-Gruppe mitteilen.Die Bridge ID ist 8Byte lang (2Bytes Bridge Priority und 6Bytes MAC Adresse). Die Bridge mit der niedrigsten Priorität wird zur Root Bridge.
Von der Root Bridge aus werden nun Pfade festgelegt, über die die anderen Bridges im Netzwerk erreichbar sind. Sind redundante Pfade vorhanden, so müssen die dortigen Bridges den entsprechenden Port deaktivieren. Die Pfade, über die kommuniziert werden darf, werden anhand von Pfadkosten bestimmt, die die dortige Bridge übermittelt. Die Kosten sind abhängig vom Abstand zur Root Bridge und dem zur Verfügung stehenden Uplink zum Ziel. Ein 10 Mbit/s-Uplink hat üblicherweise höhere Pfadkosten als ein 100 Mbit/s-Uplink zum gleichen Ziel, der 10 Mbit Link würde daher als redundanter Pfad geblockt werden. Die Pfadkosten sind nach IEEE Vorgaben genormt, können aber manuell abweichend festgelegt werden, beispielsweise um bei gleicher Geschwindigkeit einen bevorzugten Uplink auszuwählen um so die reellen Kosten von Standleitungen wiederzuspiegeln.
Auf diese Weise ist jedes Teilnetz im geswitchten LAN nur noch über eine einzige, die Designated Bridge erreichbar.
Die Root Bridge‘ teilt den in der Hierarchie eine Stufe unterhalb liegenden Designated Bridges im Abstand von 2 Sekunden mit, dass sie noch da ist, woraufhin die empfangende Designated Bridge ebenfalls an nachfolgende Bridges die entsprechende Information senden darf. Wenn diese Hello-Pakete ausbleiben, hat sich folglich an der Topologie des Netzwerks etwas geändert, und das Netzwerk muss sich reorganisieren. Diese Neuberechnung des Baumes dauert im schlimmsten Fall bis zu 30 Sekunden. Während dieser Zeit dürfen die Spanning-Tree fähigen Bridges außer Spanning-Tree-Informationen keine Pakete im Netzwerk weiterleiten. Dies ist einer der größten Kritikpunkte am klassischen Spanning Tree Protokoll, da es möglich ist, mit gefälschten Spanning-Tree-Paketen eine Topologieänderung zu signalisieren und das gesamte Netzwerk für bis zu 30 Sekunden lahmzulegen. Um diesen potenziellen Sicherheitsmangel zu beheben, aber auch, um bei echten Topologieänderungen das Netzwerk schnell wieder in einen benutzbaren Zustand zu bringen, wurden schon früh von verschiedenen Herstellern Verbesserungen an der Implementierung des Spanning Tree Protokolls bzw. der dazu verwendeten Algorithmen erdacht.
Vorgehen
- Power-Up aller Bridges
- Bridges stellen all ihre Anschlüsse auf Blocked
- Jede Bridge nimmt an, sie sei Root-Bridge und sendet BPDUs (Bridge Protocol Data Unit) aus
- Bridge mit kleinster BridgeID wird zur Root-Bridge (ID: PrioFeld + Teil der MAC)
- Aussenden von Konfigurations-BPDUs durch die Root-Bridge
- Jede Bridge bestimmt einen Root-Port (Port mit kleinsten Pfadkosten zur Root-Bridge. Bei Ports mit gleichen Kosten gewinnt die kleinere PortID)
- Bestimmen der Designated Bridge (LAN wählt die Designated-Bridge. Bridge mit Root-Port ins LAN mit den niedrigsten Pfadkosten)
RSTP
Die Idee hinter dem Rapid Spanning Tree Protocol (RSTP) ist, dass bei signalisierten Topologieänderungen nicht sofort die Netzwerkstruktur 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 Netzwerks lässt sich so von 30 Sekunden auf unter 1 Sekunde drücken. In der 2003 verabschiedeten Revision des 802.1d-Standards[1] wurde das alte STP zugunsten von RSTP (IEEE 802.1w) komplett ersetzt.
MSTP
Das Multiple Spanning Tree Protocol (MSTP) ist eine Erweiterung des RSTP Protokolls. Es ermöglicht im Zusammenhang mit VLANs verschiedene Instanzen des Spannbaums. Für ein VLAN oder eine Gruppe von VLANs können also von einander 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.3s definiert und später unter IEEE 802.1Q eingegliedert.