In diesem Dokument wird die PortFast and Bridge Protocol Data Unit (BPDU) Guard Enhancement-Funktion des Spanning Tree Protocol (STP) beschrieben.
Es gibt keine spezifischen Anforderungen für dieses Dokument.
In folgenden Softwareversionen wurde der STP PortFast BPDU Guard eingeführt:
Cisco IOS® Softwareversion 12.0(7)XE für die Catalyst 6500-/6000-Plattformen
Cisco IOS Softwareversion 12.1(8a)EW für die Catalyst 4500/4000 Supervisor Engine III
Cisco IOS Softwareversion 12.1(12c)EW für die Catalyst 4500/4000 Supervisor Engine IV
Cisco IOS Softwareversion 12.0(5)WC5 für die Catalyst 2900XL- und 3500XL-Serie
Cisco IOS Softwareversion 12.1(11)AX für die Switches der Catalyst 3750-Serie
Cisco IOS Softwareversion 12.1(14)AX für die Catalyst 3750 Metro-Switches
Cisco IOS Softwareversion 12.1(19)EA1 für die Switches der Catalyst 3560-Serie
Cisco IOS Softwareversion 12.1(4)EA1 für die Switches der Catalyst 3550-Serie
Cisco IOS Softwareversion 12.1(11)AX für die Switches der Catalyst 2970-Serie
Cisco IOS Softwareversion 12.1(12c)EA1 für die Switches der Catalyst 2955-Serie
Cisco IOS Softwareversion 12.1(6)EA1 für die Switches der Catalyst 2950-Serie
Cisco IOS Softwareversion 12.1(11)EA1 für die Catalyst 2950 Long-Reach Ethernet (LRE)-Switches
Cisco IOS Softwareversion 12.1(13)AY für die Switches der Catalyst 2940-Serie
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
In einem ordnungsgemäß gestalteten Switch-Netzwerk verhindert das Spanning Tree Protocol (STP) Layer-2-Schleifen, indem redundante Pfade in einen Blockierungsstatus versetzt werden. Jeder Port, der in der Regel aktiviert wird, durchläuft den STP-Status (Überwachung, Lernen und schließlich Weiterleitung), bevor er Benutzerdatenverkehr weiterleitet. Diese Konvergenzverzögerung von ca. 30 Sekunden im Vergleich zu herkömmlichen 802.1D-Verbindungen eignet sich für Switch-to-Switch-Verbindungen, ist jedoch für Ports an End-Hosts wie PCs, Server oder Drucker, die keinen eigenständigen Switching-Loop erzeugen können, nicht erforderlich.
Die Herausforderung besteht darin, dass ein Port, der mit einem End-Host verbunden ist, überhaupt keine STP Bridge Protocol Data Units (BPDUs) empfangen darf. Wenn BPDUs an einem solchen Port eintreffen, signalisiert dies in der Regel eines von zwei Problemen: jemand hat einen nicht autorisierten Switch angeschlossen, oder ein Gerät führt eine Software aus, die eine Bridge emuliert. Beide Fälle können die Topologie destabilisieren, insbesondere wenn das unberechtigte Gerät eine übergeordnete Bridge-ID meldet und eine Root-Bridge-Auswahl erzwingt, an der es nie teilnehmen darf.
Ein Beispiel aus der realen Welt veranschaulicht das Risiko. Ein Benutzer-PC, auf dem eine Linux-basierte Bridging-Anwendung ausgeführt wird, wurde mit einem Access-Port verbunden. Da die Anwendung BPDUs mit niedriger Bridge-Priorität gesendet hat, wurde der PC vom Netzwerk als Root Bridge ausgewählt. Dadurch verlagerte sich die gesamte Spanning-Tree-Topologie auf einen unterversorgten Host, wodurch Verbindungen überlastet wurden und es zu einem Netzwerkausfall kam. BPDU Guard verhindert genau diese Art von Fehler.
PortFast wechselt einen Zugriffs- oder Trunk-Port sofort vom Blockierungsstatus direkt in den Weiterleitungsstatus und überspringt dabei die Phasen Überwachen und Lernen. Dadurch entfällt die Startverzögerung für Ports, die mit Endgeräten verbunden sind. Dies ist für Hosts wichtig, die sofortigen Netzwerkzugriff erwarten (z. B. Workstations, die DHCP beim Start verwenden).
PortFast ist nur für Ports vorgesehen, die mit einer einzigen Endstation verbunden sind. Durch die Aktivierung auf einem Port, der mit einem anderen Switch verbunden ist, wird das Loop-Risiko wieder eingeführt, das STP verhindern soll, da der Port mit der Weiterleitung beginnt, bevor STP einen redundanten Pfad erkennen kann.
BPDU Guard ergänzt die PortFast-Funktion, indem die Annahme durchgesetzt wird, dass ein PortFast-fähiger Port niemals eine BPDU sehen darf. Wenn BPDU Guard aktiviert ist und der Port eine BPDU empfängt, schaltet der Switch den Port sofort ab, indem er in den Status errdisable versetzt wird. Dadurch wird die Topologie auf zwei Arten geschützt:
Da der Port vom Administrator deaktiviert und nicht einfach blockiert wird, wird der Netzwerkbetreiber auf das Ereignis aufmerksam gemacht, und das betroffene Gerät wird sauber isoliert, bis das Problem behoben ist.
Ein Port, der in errdisable gesetzt wurde, stellt sich nur dann selbstständig wieder her, wenn errdisable recovery konfiguriert wurde. Sie können die Schnittstelle entweder manuell erneut aktivieren (Herunterfahren gefolgt von keinem Herunterfahren) oder die automatische Wiederherstellung für die BPDU Guard-Ursache konfigurieren.
Beispiel:
2000 May 12 15:13:32 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 2/1 2000 May 12 15:13:32 %PAGP-5-PORTFROMSTP:Port 2/1 left bridge port 2/1
Betrachten wir das nächste Beispiel:
Bridge-Verbindung
Die Topologie besteht aus drei Switches, die den Core- und den Access-Layer bilden, sowie einem Endgerät:
Wenn alle anderen STP-Parameter auf ihren Standardwerten belassen werden, wird STP wie erwartet konvergiert. Switch A wird als Root ausgewählt, und der redundante Pfad wird blockiert, um den Loop zu unterbrechen. Der Switch B zugewandte Switch C-Port wird in den Blockierungsstatus versetzt (dargestellt durch das rote "X" an diesem Link). Die gestrichelten Pfeile zeichnen den normalen Fluss von STP-BPDUs durch die Topologie auf. Dies kann als stabiles Netzwerk angesehen werden, in dem PortFast die sofortige Verbindung zu Gerät D herstellt, während STP die redundanten Core-Verbindungen ungestört verwaltet.
Linux-basierte Bridge-Anwendung wird auf einem PC gestartet
Dieses Beispiel zeigt, was passiert, wenn Gerät D aufhört, sich wie ein einfacher End-Host zu verhalten, und anfängt, an STP teilzunehmen, genau wie das Szenario, in dem BPDU Guard aufhören soll. Eine Linux-basierte Bridge-Anwendung wird auf dem PC gestartet (Gerät D). Die Anwendung kündigt eine Bridge-Priorität von 0 (oder einen Wert unterhalb der aktuellen Root-Priorität) an. Da STP immer die niedrigste Bridge-ID bevorzugt, gewinnt die Linux-basierte Bridge die Root-Wahl und übernimmt die Root-Bridge-Rolle von Switch A.
Diese Wiederwahl gestaltet die gesamte Topologie um. Die Hochgeschwindigkeits-Gigabit-Ethernet-Verbindung zwischen den beiden Core-Switches (A und B) wird blockiert (dargestellt durch das rote "X", das zur Core-Verbindung wechselt). Dadurch wird der gesamte VLAN-Datenverkehr, der zuvor den Gigabit-Core nutzte, auf einen langsameren Pfad mit 100 Mbit/s gezwungen. Wenn die Datenverkehrsnachfrage die Übertragungskapazität dieser Verbindung übersteigt, verwirft der Switch Pakete, und es kommt zu einem Verbindungsausfall.
Wie verhindert der BPDU-Guard das Problem? Da PortFast auf Switch C am Port von Gerät D aktiviert ist, darf dieser Port niemals BPDU empfangen. In dem Moment, in dem Gerät D eine STP-BPDU sendet, fährt der BPDU-Guard den Port herunter, indem er ihn in den errdisable-Status versetzt. Gerät D wird isoliert, bevor es jemals die Root-Auswahl beeinflussen kann, und die Core-Topologie bleibt intakt.
Der empfohlene Ansatz besteht darin, PortFast und BPDU Guard zusammen auf den Host-seitigen Access Ports zu aktivieren. Sie können STP PortFast BPDU Guard global oder pro Schnittstelle aktivieren oder deaktivieren. Standardmäßig ist STP BPDU Guard deaktiviert.
CatSwitch-IOS(config-if)#spanning-tree portfast CatSwitch-IOS(config-if)#spanning-tree bpduguard enable
CatSwitch-IOS(config)#spanning-tree portfast bpduguard default
Mit dem globalen Befehl erbt jeder Port, der mit PortFast konfiguriert ist, automatisch BPDU Guard, sodass Sie ihn nicht für jede Schnittstelle einzeln festlegen müssen.
Wenn STP BPDU Guard den Port deaktiviert, bleibt der Port deaktiviert, es sei denn, der Port wird manuell aktiviert. Sie können einen Port so konfigurieren, dass er sich im errdisable-Status automatisch wieder aktiviert. Führen Sie die folgenden Befehle aus, um das errdisable-timeout interval festzulegen und die timeout-Funktion zu aktivieren:
CatSwitch-IOS(config)#errdisable recovery cause bpduguard CatSwitch-IOS(config)#errdisable recovery interval 400
Führen Sie den nächsten zutreffenden Befehl aus, um zu überprüfen, ob die Funktion aktiviert oder deaktiviert ist:
CatSwitch-IOS#show spanning-tree summary totals Root bridge for: none. PortFast BPDU Guard is enabled UplinkFast is disabled BackboneFast is disabled Spanning tree default pathcost method used is short Name Blocking Listening Learning Forwarding STP Active -------------------- -------- --------- -------- ---------- ---------- 1 VLAN 0 0 0 1 1 CatSwitch-IOS#
| Überarbeitung | Veröffentlichungsdatum | Kommentare |
|---|---|---|
4.0 |
05-Jun-2026
|
Aktualisierte Rechtschreibung, Grammatik, Abstände und Einführung. |
3.0 |
12-May-2025
|
Formatierung entsprechend den Cisco Richtlinien aktualisiert. |
2.0 |
22-Mar-2024
|
Formatierung aktualisiert. Korrigierte CCW-Warnungen. Rezertifizierung. |
1.0 |
29-Nov-2001
|
Erstveröffentlichung |