In Layer-2-Netzwerken (L2) kann nur ein Pfad zwischen zwei beliebigen Geräten vorhanden sein. Die Redundanz wird durch das Spanning Tree Protocol (STP) unterstützt, das redundante Pfade erkennt und blockiert und so Weiterleitungsschleifen vermeidet. Bestimmte Fehlkonfigurationen können zu STP-Ausfällen und Netzwerkausfällen führen. Um Ausfallzeiten zu vermeiden, wurden einige Erweiterungen implementiert, sodass STP bestimmte Fälle von Fehlkonfigurationen erkennt und der entsprechende Port in einen "inkonsistenten" Zustand versetzt wird.
Es können verschiedene Arten von STP-Inkonsistenzen auftreten:
Schleifeninkonsistenz - Diese wird von der Loop Guard-Funktion erkannt. Weitere Informationen finden Sie unter Spanning Tree Protocol Enhancements using Loop Guard and BPDU Skew Detection Features.
Root Inkonsistency (Wurzelinkonsistenz): Diese wird von der Root Guard-Funktion erkannt. Weitere Informationen finden Sie unter Spanning-Tree Protocol Root Guard Enhancement (STP-Root-Guard).
EtherChannel-Inkonsistenz - Diese wird von der EtherChannel-Konsistenzerkennungsfunktion erkannt. Weitere Informationen finden Sie unter Understanding EtherChannel Inkonsistency Detection.
PVID-Inkonsistenz (Port VLAN ID) - Eine PVST+ (PVST+) Bridge Protocol Data Unit (BPDU) wird in einem anderen VLAN empfangen als ursprünglich: (Port VLAN ID Mismatch oder *PVID_Inc).
Typinkonsistenz - Ein PVST+ BPDU wird auf einem Nicht-802.1Q-Trunk empfangen.
In diesem Dokument wird erläutert, wie die Ursache der beiden letzten Inkonsistenzen, PVID und Type, behoben werden kann. Weitere Inkonsistenzen können Sie den zuvor genannten Dokumenten entnehmen.
Leser dieses Dokuments sollten über Kenntnisse von STP-Konzepten verfügen.
Dieses Dokument ist nicht auf bestimmte Software- oder Hardwareversionen beschränkt.
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 Netz Live ist, überprüfen Sie, ob Sie die mögliche Auswirkung jedes möglichen Befehls verstehen.
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
Cisco Catalyst Switches implementieren PVST mithilfe von ISL-Trunks (Inter-Switch Link). Dank der Unterstützung von IEEE 802.1Q und ISL-Trunking war eine Möglichkeit für die Zusammenarbeit zwischen PVST und dem IEEE 802.1Q-Konzept eines einzigen Spanning Tree für alle VLANs erforderlich. Die PVST+-Funktion wurde eingeführt, um diese Anforderung zu erfüllen.
Hinweis: Aus STP-Sicht ist IEEE 802.1D nicht VLAN-kompatibel, und IEEE 802.1Q ist VLAN-basiert, verwendet jedoch eine einzelne STP-Instanz für alle VLANs. Das heißt, wenn der Port blockiert, blockiert er alle VLANs an diesem Port. Dasselbe gilt für die Weiterleitung.
Diese Liste zeigt die Interoperabilität von PVST+ mit IEEE 802.1Q oder IEEE 802.1D, wenn das native VLAN eines IEEE 802.1Q-Trunks VLAN 1 ist:
VLAN 1 STP-BPDUs werden ohne Tagging an die IEEE STP-MAC-Adresse (0180.c200.000) gesendet.
VLAN 1-STP-BPDUs werden auch ohne Tags an die PVST+-MAC-Adresse gesendet.
STP-BPDUs, die nicht VLAN 1 sind, werden an die PVST+ MAC-Adresse gesendet (auch als Shared Spanning Tree Protocol [SSTP] MAC-Adresse, 0100.0ccc.cccd bezeichnet), die mit einem entsprechenden IEEE 802.1Q VLAN-Tag versehen ist.
Wenn das native VLAN auf einem IEEE 802.1Q-Trunk nicht VLAN 1 ist:
VLAN 1-STP-BPDUs werden an die PVST+-MAC-Adresse gesendet, die mit einem entsprechenden IEEE 802.1Q-VLAN-Tag markiert ist.
VLAN 1 STP-BPDUs werden auch ohne Tags an die IEEE STP-MAC-Adresse im nativen VLAN des IEEE 802.1Q-Trunks gesendet.
Nicht-VLAN 1-STP-BPDUs werden an die PVST+-MAC-Adresse gesendet, die mit einem entsprechenden IEEE 802.1Q-VLAN-Tag getaggt ist.
Hinweis: Native VLAN STP-BPDUs werden nicht markiert gesendet.
Auf diese Weise wird VLAN 1 STP von PVST+ mit dem STP von IEEE 802.1D oder 802.1Q zusammengeführt, während andere VLANs über die Cloud von IEEE 802.1D oder 802.1Q Bridges getunnelt werden. Die IEEE 802.1D- oder 802.1Q-Cloud ähnelt beispielsweise einem "Draht" zu anderen PVST+-VLANs als 1.
Damit STP ordnungsgemäß funktioniert, beachten Sie bestimmte Regeln, wenn Sie PVST+-Bridges an IEEE 802.1D- oder 802.1Q-Bridges anschließen. Die Hauptregel besteht darin, dass PVST+-Bridges über einen IEEE 802.1Q-Trunk mit einem konsistenten nativen VLAN über alle Bridges, die mit der Cloud von IEEE 802.1Q oder 802.1D Bridges verbunden sind, mit IEEE 802.1D oder 802.1D verbunden werden müssen.
Die PVST+ BPDU enthält eine VLAN-Nummer, mit der PVST+-Bridges erkennen können, ob die vorherige Regel nicht eingehalten wird. Wenn ein Catalyst Switch eine Fehlkonfiguration erkennt, werden die entsprechenden Ports in einen "PVID-inkonsistenten" oder "Type-Inkonsistent" Status versetzt, der den Datenverkehr im entsprechenden VLAN auf einem entsprechenden Port effektiv blockiert. Diese Zustände verhindern Weiterleitungsschleifen, die zu Fehlkonfigurationen oder fehlerhaften Verkabelungen führen.
Um die Notwendigkeit einer Inkonsistenzerkennung zu verdeutlichen, sollten Sie folgende Topologie betrachten, bei der Switches A und C PVST+ STP und Switch B 802.1Q STP ausführen:
Wenn die BPDU des Roots in VLAN 1 besser ist als die BPDU des Roots in VLAN 2, gibt es keinen blockierenden Port in der VLAN 2-Topologie. Die BPDU von VLAN 2 bildet nie einen "vollständigen Kreis" um die Topologie. Er wird durch die BPDU VLAN 1 für die B-C-Verbindung ersetzt, da B nur ein STP mit VLAN 1 STP von PVST+ zusammenführt. Es gibt also eine Weiterleitungsschleife. Glücklicherweise sendet Switch A PVST+ BPDUs von VLAN 2 (an die SSTP-Adresse, die von Switch B geflutet wird) an Switch C. Switch C versetzt Port C-B in einen typinkonsistenten Zustand, der die Schleife verhindert.
Hinweis: In einigen Befehlsausgaben wird der *-inkonsistente STP-Status als "kaputt" bezeichnet.
Wenn STP-Inkonsistenzen erkannt werden, senden Switches diese Syslog-Meldungen:
%SPANTREE-2-RECV_1Q_NON_TRUNK: Received IEEE 802.1Q BPDU on non trunk FastEthernet0/1 on vlan 1. %SPANTREE-2-BLOCK_PORT_TYPE: Blocking FastEthernet0/1 on vlan 1. Inconsistent port type. %SPANTREE-2-RX_1QPVIDERR: Rcved pvid_inc BPDU on 1Q port 3/25 vlan 1 %SPANTREE-2-RX_BLKPORTPVID: Block 3/25 on rcving vlan 1 for inc peer vlan 10 %SPANTREE-2-TX_BLKPORTPVID: Block 3/25 on xmtting vlan 10 for inc peer vlan
In diesem Beispiel wurde die BPDU in VLAN 1 empfangen, und in VLAN 10 wurde die BPDU erstellt. Wenn Inkonsistenzen erkannt werden, werden beide VLANs auf dem Port blockiert, an dem diese BPDU empfangen wird
Hinweis: Die Meldungen können je nach Typ und Version des verwendeten Betriebssystems Cisco IOS® Software Release oder Catalyst OS (CatOS) variieren.
Hinweis: Wenn der Port nicht mehr inkonsistente BPDUs empfängt, wird der *-inkonsistente Status gelöscht, und STP ändert den Portstatus basierend auf dem normalen STP-Betrieb. Eine Syslog-Meldung weist auf die Änderung hin:
%SPANTREE-SP-2-UNBLOCK_CONSIST_PORT: Unblocking FastEthernet0/1 on vlan 1. Port consistency restored.
Weitere Informationen zum PVST+-Betrieb finden Sie unter Bridging Between IEEE 802.1Q VLANs.
Um die Liste inkonsistenter Ports anzuzeigen, unterstützt die aktuelle Cisco IOS-basierte STP-Implementierung den Befehl show spanning-tree inkonsistent ports (Spanning-Tree-Inkonsistenzen anzeigen).
In den meisten Fällen ist der Grund für die Erkennung von STP-Inkonsistenzen auf dem Port offensichtlich:
Der Access-Port empfängt eine SSTP-BPDU mit dem SSTP-Kennzeichnung IEEE 802.1Q.
In diesem Szenario empfängt der Zugriffsport auf Bridge A von Bridge B eine markierte PVST+ BPDU vom STP eines anderen VLAN als 1. Der Port auf A wird in einen typinkonsistenten Zustand versetzt.
Hinweis: Die Switches müssen nicht direkt angeschlossen werden. Wenn sie über einen oder mehrere IEEE 802.1D- oder IEEE 802.1Q-Switches oder sogar Hubs verbunden sind, hat dies die gleiche Wirkung.
Der IEEE 802.1Q-Trunking-Port empfängt eine nicht getaggte SSTP-BPDU mit einem VLAN-Typ, einer Länge und einem Wert (TLV), der nicht mit dem VLAN übereinstimmt, in dem die BPDU empfangen wurde.
In diesem Szenario empfängt der Trunk-Port auf A eine PVST+-BPDU vom STP von VLAN 2 mit dem Tag VLAN 2. Dadurch wird der Port auf A sowohl im VLAN 1 als auch im VLAN 2 blockiert.
Wenn die Geräte an beiden Enden einer Point-to-Point-Verbindung Cisco Catalyst Switches sind, zeigt eine Prüfung der Konfiguration der lokalen und Remote-Ports in der Regel die Konfigurationsungleichheit:
Der Port ist für IEEE 802.1Q-Trunking auf der einen Seite konfiguriert, auf der anderen Seite jedoch für den Access Port.
IEEE 802.1Q-Trunks befinden sich auf beiden Seiten, aber die nativen VLANs unterscheiden sich.
Beheben Sie in diesen Fällen die Konfigurationsungleichheit, um die STP-Inkonsistenz zu beseitigen.
In einigen Fällen ist es möglicherweise nicht so einfach, den Grund zu ermitteln:
Eine BPDU wird von einem gemeinsam genutzten Medium mit mehreren Geräten empfangen.
Eine BPDU wird von der Switch-Cloud empfangen, die ein IEEE 802.1D- oder 802.1Q STP-Modell implementiert, während PVST+-Switches mit der Cloud verbunden sind.
Eine BPDU kommt hinter einem Tunnel (z. B. Data Link Switch Plus [DLSw+] Cloud, L2-Protokoll-Tunneling, EoMPLS, Virtual Path Links [VPLs], LAN-Emulation [LANE] usw.).
In diesem Beispiel ist Switch B falsch konfiguriert und injiziert eine SSTP-BPDU in die Cloud. Dadurch werden die Ports an den Switches A, C und D typinkonsistent. Das Problem besteht darin, dass das Gerät, von dem die BPDU ausgeht, nicht direkt mit den betroffenen Switches verbunden ist. Daher kann es bei vielen Geräten im Trunk zu einem zeitaufwendigen Unterfangen von allen Geräten kommen.
Glücklicherweise gibt es einen systematischen Ansatz zur Behebung dieses Problems:
Legen Sie die Quell-MAC-Adresse fest und senden Sie eine Bridge-ID der BPDU. Dies muss während des Auftretens des Problems geschehen.
Finden Sie die Bridge, die die "verletzende" BPDU auslöst. Dies kann zu einem späteren Zeitpunkt erfolgen, nicht unbedingt, wenn das Problem auftritt.
Für Schritt 1 gibt es normalerweise zwei Optionen: Verwenden Sie einen Paketanalyzer oder aktivieren Sie debug, um das Dump der empfangenen BPDUs anzuzeigen.
Weitere Informationen zur Verwendung eines Debuggens zum Dump von STP-BPDUs finden Sie im STP Debugging Commands-Abschnitt STP-Fehlerbehebung auf Catalyst Switch mit Cisco Integrated IOS (Native Mode).
Dies ist ein Beispiel für eine Debugausgabe, die empfangene BPDU anzeigt:
*Mar 14 19:33:27: STP SW: PROC RX: 0100.0ccc.cccd<-0030.9617.4f08 type/len 0032 *Mar 14 19:33:27: encap SNAP linktype sstp vlan 10 len 64 on v10 Fa0/14 *Mar 14 19:33:27: AA AA 03 00000C 010B SSTP *Mar 14 19:33:27: CFG P:0000 V:00 T:00 F:00 R:8000 0050.0f2d.4000 00000000 *Mar 14 19:33:27: B:8000 0050.0f2d.4000 80.99 A:0000 M:1400 H:0200 F:0F00 *Mar 14 19:33:27: T:0000 L:0002 D:0001
Sobald Sie die Quell-MAC-Adresse kennen und eine Bridge-ID senden, müssen Sie das Gerät finden, zu dem diese MAC-Adresse gehört. Dies kann dadurch kompliziert werden, dass Switches in der Regel keine MAC-Adressen einer Quelle von BPDU-Frames lernen. Wenn Sie den Befehl show mac-address address BPDU_mac_address (für Cisco IOS-basierte Switches) oder den Befehl show cam_MAC_address (für CatOS-basierte Switches) eingeben, wird in der Regel kein Eintrag gefunden.
Eine Möglichkeit, die "beleidigende" MAC-Adresse zu finden, besteht darin, von allen mit der Cloud verbundenen Switches die Ausgabe vom show spanning-tree (für Cisco IOS) oder vom show spantree (für CatOS) zu erfassen. Diese Befehlsausgaben enthalten Informationen zur Bridge-ID jeder Bridge.
Boris# show spanning-tree !--- Use with Cisco IOS. VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 0 Address 0007.4f1c.e847 Cost 131 Port 136 (GigabitEthernet3/8) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address 00d0.003f.8800 !--- Output suppressed. Doris (enable) show spantree !--- Use with CatOS. VLAN 1 Spanning tree mode RAPID-PVST+ Spanning tree type ieee Spanning tree enabled Designated Root 00-07-4f-1c-e8-47 Designated Root Priority 0 Designated Root Cost 123 Designated Root Port 9/7 Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Bridge ID MAC ADDR 00-d0-03-ef-4c-00 !--- Output suppressed.
Hinweis: Je nach Modell, Softwareversion und Konfiguration kann ein Switch mehrere Bridge-ID-MAC-Adressen haben. Glücklicherweise befinden sich alle Adressen in einem bestimmten Bereich (z. B. 0001.1234.5600 bis 0001.1234.5640). Wenn Sie eine Bridge-ID-MAC-Adresse kennen, können Sie überprüfen, ob die MAC-Adresse der sendenden Bridge-ID (wie in Schritt 1 beschrieben) im Bereich der angegebenen Bridge-ID-MAC-Adressen liegt.
Sie können auch Netzwerkverwaltungstools verwenden, um die Bridge-IDs aller Bridges zu erfassen.
Nachdem Sie die Bridge gefunden haben, die das "beleidigende" BPDU sendet, müssen Sie die Konfiguration des Ports überprüfen, der mit der Cloud verbunden ist: stellen sicher, dass sie konsistent ist (Trunking statt Nicht-Trunking und natives VLAN) mit anderen Switches, die mit derselben Cloud verbunden sind.
Möglicherweise sendet die Bridge korrekte BPDUs, die jedoch in der Tunneling-Cloud falsch geändert werden. In diesem Fall können Sie sehen, dass die in die Cloud eintretende "beleidigende" BPDU mit der Konfiguration der anderen Bridges konsistent ist. Dieselbe BPDU wird jedoch inkonsistent, wenn sie die Cloud verlässt (z. B. verlässt die BPDU die Cloud in einem anderen VLAN oder wird getaggt oder nicht markiert). In einem solchen Fall kann es hilfreich sein zu überprüfen, ob die Quell-MAC-Adresse der "beleidigenden" BPDU zu derselben Bridge gehört wie die sender-Bridge-ID. Ist dies nicht der Fall, können Sie versuchen, die Bridge zu finden, die die Quell-MAC-Adresse der BPDU besitzt, und deren Konfiguration überprüfen.
Um den Switch zu finden, der die Quell-MAC-Adresse des BPDUs besitzt, können Sie den gleichen Ansatz verwenden, der für die Suche der Bridge-ID verwendet wird, es sei denn, die Befehlsausgabe des Anzeigemoduls wird geprüft (für Catalyst 4000, 5000 und 600). Für Catalyst 2900 XL, 3500 XL, 2950 und 3550 müssen Sie die Ausgabe des Befehls show interface prüfen, um die MAC-Adressen anzuzeigen, die zu den Ports gehören.
Cat4000-IOS# show module !--- Use for Catalyst 4000,5000,6000 Mod Ports Card Type Model Serial No. ----+-----+--------------------------------------+-----------------+----------- 1 2 1000BaseX (GBIC) Supervisor(active) WS-X4515 ZZZ00000001 5 14 1000BaseT (RJ45), 1000BaseX (GBIC) WS-X4412-2GB-T ZZZ00000002 M MAC addresses Hw Fw Sw Status --+--------------------------------+---+------------+----------------+--------- 1 000a.4172.ea40 to 000a.4172.ea41 1.2 12.1(12r)EW 12.1(14)E1, EARL Ok 5 0001.4230.d800 to 0001.4230.d80d 1.0 Ok !--- Output suppressed. cat3550# show interface | i bia Hardware is Gigabit Ethernet, address is 0002.4b28.da80 (bia 0002.4b28.da80) Hardware is Gigabit Ethernet, address is 0002.4b28.da83 (bia 0002.4b28.da83) Hardware is Gigabit Ethernet, address is 0002.4b28.da86 (bia 0002.4b28.da86) Hardware is Gigabit Ethernet, address is 0002.4b28.da88 (bia 0002.4b28.da88) Hardware is Gigabit Ethernet, address is 0002.4b28.da89 (bia 0002.4b28.da89) !--- Output suppressed.
Hinweis: Wenn die Cloud DLSw+ ist, finden Sie weitere Informationen unter Grundlagen und Konfigurieren von DLSw und 802.1Q.