In diesem Dokument werden häufige Probleme beschrieben, die bei der Integration Ihrer aktuellen Layer 2 (L2) Spanning Tree-Netzwerke in Cisco IOS®-Switches mit Cisco Aggregation Services Router (ASR) der Serie 9000, auf denen Cisco IOS XR ausgeführt wird, auftreten.
Cisco IOS-Switches, die Per VLAN Spanning Tree Plus (PVST+) ausführen, blockieren Switch-Ports, wenn sie eine Bridge Protocol Data Unit (BPDU) mit einer inkonsistenten PVID erhalten. Dieses Problem tritt auf, wenn ein Gerät zwischen den Switches die IEEE 802.1Q-Tags auf den PVST+-BPDUs ändert oder übersetzt.
Wenn ein ASR 9000 einen L2VPN-Point-to-Point- oder Multipoint-Service zwischen Switches bereitstellt, die PVST+ ausführen und die VLAN-Tags neu schreiben, werden die folgenden Syslog-Meldungen möglicherweise auf den Cisco IOS-basierten Switches angezeigt:
%SPANTREE-2-RECV_PVID_ERR: Received BPDU with inconsistent
peer vlan id 10 on GigabitEthernet0/10 VLAN20.
%SPANTREE-2-BLOCK_PVID_LOCAL: Blocking GigabitEthernet0/10
on VLAN20. Inconsistent local vlan.
Dieses Problem ist auf das PVID-Tag zurückzuführen, das zu den PVST+-BPDUs gehört. Dieses Tag wurde entwickelt, um Fehlkonfigurationen zu erkennen und unbeabsichtigte Schleifen zu vermeiden. In diesem Szenario wird jedoch jedes Ende blockiert, und der Datenverkehr wird nicht weitergeleitet.
Hier ein Beispiel:
Nachfolgend finden Sie die Konfiguration für die Serie ASR 9000 (a9k1):
2vpn
bridge group bg1
bridge-domain bd1
interface TenGigE0/0/0/0.10
!
interface TenGigE0/0/0/1.20
interface TenGigE0/0/0/0.10 l2transport
encapsulation dot1q 10
rewrite ingress tag pop 1 symmetric
interface TenGigE0/0/0/1.20 l2transport
encapsulation dot1q 20
rewrite ingress tag pop 1 symmetric
Um dieses Problem zu vermeiden, können Sie die PVST+-BPDUs blockieren. Diese Aktion deaktiviert Spanning Tree und kann zu Schleifen führen, wenn redundante Verbindungen zwischen den Switches verfügbar sind.
Die BPDUs werden mithilfe der BPDU-Filterfunktion auf den Switches blockiert. Der BPDU-Filter blockiert BPDUs in beide Richtungen, wodurch Spanning Tree auf dem Port effektiv deaktiviert wird. Der BPDU-Filter verhindert ein- und ausgehende BPDUs. Wenn Sie die BPDU-Filterung für eine Schnittstelle aktivieren, ist dies dasselbe wie beim Deaktivieren von Spanning Tree für diese Schnittstelle, was zu Spanning Tree-Schleifen führen kann.
Aktivieren Sie auf Switch1 und Switch2 mit dem folgenden Befehl BPDU-Filter:
interface TenGigabitEthernet1/2
spanning-tree bpdufilter enable
Dieses Problem wird vermieden, wenn Sie den ASR9000 so konfigurieren, dass die PVST+-BPDUs verworfen werden. Dies geschieht mithilfe einer L2-Ethernet-Services-Zugriffsliste, um Pakete abzulehnen, die an die PVST+-BPDU-MAC-Adresse gerichtet sind.
PVST+-BPDUs für das nicht-VLAN 1 (nicht nativ) werden an die PVST+-MAC-Adresse (auch als Shared Spanning Tree Protocol [SSTP]-MAC-Adresse 0100.0ccc.cccd bezeichnet) gesendet und mit einem entsprechenden IEEE 802.1Q-VLAN-Tag versehen.
Diese Zugriffskontrollliste (ACL) kann verwendet werden, um die PVST+-BPDUs zu blockieren:
ethernet-services access-list l2acl
10 deny any host 0100.0ccc.cccd
20 permit any any
Wenden Sie die ACL auf die Schnittstelle an, die als l2transport konfiguriert ist:
interface TenGigE0/0/0/0.10 l2transport
encapsulation dot1q 10
rewrite ingress tag pop 1 symmetric
ethernet-services access-group l2acl ingress
interface TenGigE0/0/0/1.20 l2transport
encapsulation dot1q 20
rewrite ingress tag pop 1 symmetric
ethernet-services access-group l2acl ingress
Der ASR9000 verwendet standardmäßig kein Spanning Tree, wie dies bei den meisten Cisco IOS-Switches der Fall ist. Beim Ethernet Virtual Circuit (EVC)-Modell ist eine BPDU einfach ein anderes L2-Multicast-Paket. Ein häufig auftretendes Problem sind Spanning-Tree-Inkonsistenzen aufgrund verschiedener STP-Typen, die über eine ASR 9000-Bridge-Domäne ausgeführt werden. Dies geschieht auf verschiedene Weise.
Betrachten Sie diese einfache Topologie:
Angenommen, auf Switch1 wird Multiple Spanning Tree (MST) und auf Switch2 PVST+ ausgeführt. Wenn auf a9k1 keine Form von Spanning Tree ausgeführt wird, sieht Switch1 dies als Begrenzungsport. Switch1 wechselt für VLANs, die sich nicht in Common Spanning Tree Instance 0 (CST0) befinden, wieder in den PVST-Modus. Wenn dies das gewünschte Design ist, sollten Sie mit der MST- und PVST-Interaktion vertraut sein, wie im Whitepaper Understanding Multiple Spanning Tree Protocol (802.1s) beschrieben.
Angenommen, Sie führen MST auf Switch1 und auf der Schnittstelle a9k1 aus, die zu Switch1 führt, aber Sie führen weiterhin PVST+ auf Switch2 aus. Die PVST+-BPDUs passieren die Bridge-Domäne und erreichen Switch1. Switch1 erkennt dann sowohl MST-BPDUs von a9k1 als auch die PVST+-BPDUs von Switch2, was dazu führt, dass Spanning Tree auf dem Switch1-Port ständig nicht blockiert, sondern nicht blockiert wird, was zu Datenverkehrsverlusten führt.
Switch1 meldet diese Syslogs:
%SPANTREE-SP-2-PVSTSIM_FAIL: Superior PVST BPDU received on VLAN 2 port Gi2/13,
claiming root 2:000b.45b7.1100. Invoking root guard to block the port
%SPANTREE-SP-2-ROOTGUARD_BLOCK: Root guard blocking port GigabitEthernet2/13
on MST1.
%SPANTREE-SP-2-ROOTGUARD_UNBLOCK: Root guard unblocking port GigabitEthernet2/13
on MST0.
%SPANTREE-SP-2-PVSTSIM_FAIL: Superior PVST BPDU received on VLAN 2 port Gi2/13,
claiming root 2:000b.45b7.1100. Invoking root guard to block the port
%SPANTREE-SP-2-ROOTGUARD_BLOCK: Root guard blocking port GigabitEthernet2/13
on MST1.
Die Ausgabe des Befehls show spanning-tree interface zeigt, dass sich die Ausgabe auf dem Cisco IOS-Gerät switch1 ständig ändert:
show spanning-tree interface gig 2/13
Mst Instance Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- -------
MST0 Desg BKN*20000 128.269 P2p Bound(PVST) *ROOT_Inc
MST1 Desg BKN*20000 128.269 P2p Bound(PVST) *ROOT_Inc
MST2 Desg BKN*20000 128.269 P2p Bound(PVST) *ROOT_Inc
show spanning-tree interface gig 2/13
Mst Instance Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- ---------
MST0 Desg FWD 20000 128.269 P2p
MST1 Desg FWD 20000 128.269 P2p
MST2 Desg FWD 20000 128.269 P2p
Es gibt drei Optionen zu prüfen, um dieses Problem zu verhindern.
Wenn ein Switch eine Spanning Tree-BPDU empfängt, die er über dieselbe Schnittstelle gesendet hat, blockiert er dieses VLAN aufgrund einer Self-Loop-Verbindung. Dies ist ein häufiges Problem, das auftritt, wenn ein Switch mit einem Trunk-Port mit einem ASR 9000-Router verbunden ist, der L2-Multipoint-Dienste bereitstellt, und der ASR 9000 VLAN-Tags an den l2transport-Schnittstellen in derselben Bridge-Domäne nicht umschreibt.
Betrachten wir dieselbe einfache Topologie wie zuvor. Aus Designgründen werden nun auf dem a9k1 mehrere VLANs, die von derselben Switch-Trunk-Schnittstelle kommen, in einer Bridge-Domäne zusammengeführt.
Dies ist die a9k1-Konfiguration:
l2vpn
bridge group bg1
bridge-domain bd1
interface GigabitEthernet0/1/0/31.2
!
interface GigabitEthernet0/1/0/31.3
!
interface GigabitEthernet0/1/0/31.4
!
interface GigabitEthernet0/1/0/32.2
!
interface GigabitEthernet0/1/0/32.3
!
interface GigabitEthernet0/1/0/32.4
interface GigabitEthernet0/1/0/31.2 l2transport
encapsulation dot1q 2
!
interface GigabitEthernet0/1/0/31.3 l2transport
encapsulation dot1q 3
!
interface GigabitEthernet0/1/0/31.4 l2transport
encapsulation dot1q 4
Dadurch werden die VLANs 2 bis 4 in einer Bridge-Domäne auf a9k1 miteinander verbunden.
Beim EVC-Modell der ASR Serie 9000 werden standardmäßig keine Tags oder Pop-Tags umgeschrieben. Die PVST+-BPDU für VLAN2 wird mit Interface Gig 0/1/0/31.2 geliefert und nach Gig 0/1/0/31.3 und Gig 0/1/0/31.4 zurückgeleitet. Da es sich bei der Konfiguration nicht um ein Umschreiben einer eingehenden Popup-Aktion handelt, wird die BPDU unverändert zurückgegeben. Der Switch erkennt dies, wenn er seine eigene BPDU zurückerhält, und blockiert dieses VLAN aufgrund einer Self-Loop-Verbindung.
Der Befehl show spanning-tree interface gibt an, dass das VLAN blockiert ist:
6504-A#show spanning-tree interface gig 2/13
Vlan Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- --------
VLAN0002 Desg BLK 4 128.269 self-looped P2p
VLAN0003 Desg BLK 4 128.269 self-looped P2p
VLAN0004 Desg BLK 4 128.269 self-looped P2p
Dieses Problem wird durch die Verwendung des Befehls ethernet egress-filter strict an den ASR 9000 l2-Transportschnittstellen behoben.
Dies ist kein empfohlenes Design. Wenn dies jedoch wirklich das gewünschte Design ist, können Sie diese Lösung verwenden, um zu verhindern, dass der Switch die BPDU erhält, die er über dieselbe Schnittstelle zurückgesendet hat.
Sie können den Befehl ethernet egress-filter strict auf den a9k1 l2transport-Schnittstellen oder global verwenden. Hier ist das Beispiel unter der Schnittstelle:
interface GigabitEthernet0/1/0/31.2 l2transport
encapsulation dot1q 2
ethernet egress-filter strict
!
interface GigabitEthernet0/1/0/31.3 l2transport
encapsulation dot1q 3
ethernet egress-filter strict
!
interface GigabitEthernet0/1/0/31.4 l2transport
encapsulation dot1q 4
ethernet egress-filter strict
Der Befehl ethernet egress-filter strict ermöglicht die strikte EFP-Filterung (Egress Ethernet Flow Point) an der Schnittstelle. Nur Pakete, die den Eingangs-EFP-Filter der Schnittstelle passieren, werden von dieser Schnittstelle übertragen. Andere Pakete werden am Ausgangsfilter verworfen. Das bedeutet, dass das ausgetretene Paket nicht an das auf der Schnittstelle konfigurierte Kapselungs-dot1q-Label gesendet wird, wenn es nicht mit diesem übereinstimmt.
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
19-Sep-2013 |
Erstveröffentlichung |