Spanning Tree Protocol
Das Spanning Tree Protocol verhindert Broadcast-Stürme und andere Störungen der Kommunikation in einem Netzwerk. Die vergleichsweise lange Ausfallzeit, die durch die Neustrukturierung des namensgebenden Spannbaums entsteht, macht das Verfahren allerdings anfällig für Angriffe.
Was ist das Spanning Tree Protocol?
Das Spanning Tree Protocol (kurz: STP) ist ein Verfahren, das in Ethernet-Netzwerken eingesetzt wird und dort die Bildung doppelter Frames verhindert. STP wurde von der US-amerikanischen Netzwerktechnikerin und Software-Entwicklerin Radia Perlman erfunden und 1990 vom Institute of Electrical and Electronics Engineers (IEEE) als Standard 802.1D festgelegt. Indem es das Netzwerk auf redundante Pfade prüft und diese abschaltet, verhindert das Spanning Tree Protocol, dass zwei oder mehr parallele Frames entstehen. Denn dies würde beispielsweise zu Schleifen führen. Das Verfahren spannt das physikalische Netzwerk zu einem Baum auf, der ohne mehrfache Verbindungen zwischen Quelle und Ziel auskommt.
Wofür ist das Spanning Tree Protocol wichtig?
Das Problem, das das Spanning Tree Protocol behebt, entsteht, wenn zwischen zwei Switches in einem Netzwerk mehrere gleichzeitige Datenpfade entstehen. Gibt es mehrere Frames, über die Datenpakete geleitet werden können, kann dies zu einem Fehlverhalten des gesamten Systems führen. Eine mögliche Konsequenz, die durch zwei oder mehr gleichzeitige Pfade zwischen zwei Punkten entsteht, ist der sogenannte Broadcast-Sturm. Dabei wird der gesamte Broadcast- oder Multicast-Verkehr in einem Netzwerk gleichzeitig übertragen und angehäuft, was zu einem Schneeballeffekt führen kann und im schlimmsten Fall die gesamte Kommunikation lahmlegt. Mit Hilfe eines Spanning Tree Protocols wird dies verhindert, und das Netzwerk bleibt intakt.
Die Baumtopologie von STP
Um sicherzustellen, dass es zu keinen doppelten Frames kommen kann, etabliert das Spanning Tree Protocol einen Spannbaum (engl. spanning tree). In diesem findet die Verbindung zwischen zwei Punkten innerhalb des Netzwerks nur über einen einzigen Weg statt. Zudem wird die jeweils bestmögliche Verbindung über diese Methode gefunden. Sollte jedoch ein Frame ausfallen oder durch eine Störung beeinträchtigt werden, wird der Spannbaum durch das Spanning Tree Protocol schnellstmöglich neuorganisiert und ein neuer Verbindungspfad geöffnet. So kommt es höchstens zu geringen Verzögerungen, und die Verbindung zwischen den einzelnen Switches bleibt bestehen.
Wie funktioniert das Spanning Tree Protocol?
Die Kommunikation zwischen zwei Switches oder Bridges innerhalb eines Netzwerks findet beim Spanning Tree Protocol über Bridge Protocol Data Units (BPDU) statt. Diese werden in sehr kurzen Abständen ausgetauscht und als Multicast-Frames an die MAC-Adresse 01-80-C2-00-00-10 gesendet. Alle zwei Sekunden erfolgt eine solche Übermittlung an die jeweils nächst- und tiefergelegene Bridge. So erhält das Spanning Tree Protocol nicht nur eine Übersicht über alle verfügbaren Wege, sondern kann gleichzeitig auch die schnellste Verbindung ermitteln. Hierfür spielen insbesondere die Datenrate und die Entfernung zwischen zwei Punkten eine entscheidende Rolle. Ist der beste Weg ermittelt, werden die übrigen Ports bis auf Weiteres deaktiviert.
Das Rapid Spanning Tree Protocol
Diese Neuberechnung und die damit einhergehende längere Ausfallzeit sind leider ein Einfallstor für Angriffe auf das Netzwerk. Wird ein falsches Frame eingespeist und vom System nicht abgeblockt, kann dadurch eine Neuorganisation ausgelöst werden, die das Netzwerk für 30 Sekunden oder länger außer Kraft setzen würde. Aus diesem Grund wurde 2003 das Rapid Spanning Tree Protocol (IEEE 802.1w) entwickelt. Dieses ist abwärtskompatibel und sorgt dafür, dass die aktuelle Struktur des Netzwerks so lange aufrecht gehalten wird, bis die ausgefallene Strecke ersetzt wurde. Erst dann wird der Baum neustrukturiert. Diese Umstellung dauert nur etwa eine Sekunde.
Die Portzustände im Spanning Tree Protocol
Beim Spanning Tree Protocol wird zwischen insgesamt fünf Portzuständen unterschieden. Dies beugt der Entstehung einer Schleife vor und sorgt außerdem dafür, dass keinerlei Informationen zur Baumtopologie verloren gehen. Die einzelnen Zustände sind folgende:
- Forwarding: Ports, die als forwarding gelistet sind, können Frames weiterleiten, Adressen lernen und Bridge Protocol Data Units empfangen, verarbeiten und übertragen.
- Blocking: Ports, die auf blocking stehen, verwerfen zwar Frames und lernen keine Adressen, empfangen und verarbeiten dafür aber Bridge Protocol Data Units.
- Listening: Listening Ports verwerfen Frames, lernen keine Adressen, empfangen, verarbeiten und übertragen allerdings Bridge Protocol Data Units.
- Learning: Learning Ports verwerfen zwar Frames, lernen aber Adressen und empfangen, verarbeiten und übertragen Bridge Protocol Data Units.
- Disabled: Ports, die auf disabled gestellt sind, verwerfen Frames, lernen keine Adressen und können Bridge Protocol Data Units weder empfangen noch verarbeiten.
Ist das Spanning Tree Protocol aktiviert, durchläuft jeder Port die Zustände Blocking, Listening, Learning und Forwarding hintereinander.
Die Root Bridge im Spanning Tree Protocol
Im ersten Schritt wird beim Spanning Tree Protocol eine Root Bridge ausgewählt, die als Ausgangspunkt für den Spannbaum fungiert. Von dort werden dann die einzelnen Pfade ausgebaut, indem der Algorithmus Ports aktiviert oder deaktiviert. Nur über die Root Bridge können auch Einstellungen verändert und die folgenden Timer neu justiert werden.
- Hello-Timer: Dieser Timer definiert den Zeitraum zwischen zwei Bridge Protocol Data Units, in der Regel zwei Sekunden.
- Forward-Delay: Der zweite Timer bestimmt die Zeit in den Zuständen Listening und Learning, die zusammen 30 Sekunden beträgt.
- Maximum Age: Der dritte Timer nennt sich Maximum Age und gibt an, wie lange ein Port die Konfigurationsinformationen verwahrt. Dieser Wert beträgt standardmäßig 20 Sekunden.
Vor- und Nachteile des Spanning Tree Protocols
Der große Vorteil des Spanning Tree Protocols ist die Vermeidung von Überlastungen oder Störungen innerhalb eines Netzwerks. Schleifen werden ausgeschlossen und parallele Strecken so vermieden. Auch die Identifikation der kürzesten Verbindung ist ein Vorteil für das Netzwerk. Nachteilig am Spanning Tree Protocol ist seine vergleichsweise lange Konvergenzzeit, die Angreifenden in die Karten spielt. Durch die Einführung des Rapid Spanning Tree Protocols und dessen Weiterentwicklung Multiple Spanning Tree Protocol, bei der innerhalb eines LANs mehrere unabhängige Spannbäume erstellt werden können, werden diese Ausfallzeiten allerdings minimiert. Dies schützt das Netzwerk vor eventuellen Angriffen.