Ce document décrit les problèmes courants rencontrés lors de l'intégration de vos réseaux Spanning Tree de couche 2 (L2) actuels sur des commutateurs Cisco IOS® avec les routeurs à services d'agrégation Cisco (ASR) 9000 qui exécutent Cisco IOS XR.
Les commutateurs Cisco IOS qui exécutent le protocole PVST+ (Per VLAN Spanning Tree Plus) bloquent les ports des commutateurs lorsqu'ils reçoivent une unité BPDU (Bridge Protocol Data Unit) avec un PVID incohérent. Ce problème se produit lorsqu'un périphérique situé entre les commutateurs change ou traduit les balises IEEE 802.1Q sur les BPDU PVST+.
Lorsqu'un ASR 9000 fournit un service L2VPN point à point ou multipoint entre des commutateurs qui exécutent PVST+ et réécrit les balises VLAN, les messages syslog suivants peuvent s'afficher sur les commutateurs Cisco IOS :
%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.
Ce problème est dû à la balise PVID qui est incluse avec les BPDU PVST+. Cette balise est conçue pour détecter les erreurs de configuration et éviter les boucles accidentelles. Mais, dans ce scénario, cela bloque chaque extrémité et empêche le trafic de passer.
Voici un exemple :
Voici la configuration de la gamme 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
Afin d'éviter ce problème, vous pouvez bloquer les BPDU PVST+. Cette action désactive le Spanning Tree et peut entraîner des boucles si des connexions redondantes sont disponibles entre les commutateurs.
Les unités BPDU sont bloquées avec la fonctionnalité de filtre BPDU sur les commutateurs. Le filtre BPDU bloque les BPDU dans les deux directions, ce qui désactive le protocole Spanning Tree sur le port. Le filtre BPDU empêche les BPDU entrantes et sortantes. Si vous activez le filtrage BPDU sur une interface, c'est la même chose que si vous désactivez Spanning Tree sur elle, ce qui peut entraîner des boucles Spanning Tree.
Sur les commutateurs 1 et 2, activez les filtres BPDU avec cette commande :
interface TenGigabitEthernet1/2
spanning-tree bpdufilter enable
Ce problème est évité si vous configurez l'ASR9000 afin d'abandonner les BPDU PVST+. Cette opération est effectuée avec une liste d'accès de services Ethernet de couche 2 pour refuser les paquets destinés à l'adresse MAC BPDU PVST+.
Les BPDU PVST+ pour le VLAN non-VLAN 1 (non natif) sont envoyées à l'adresse MAC PVST+ (également appelée adresse MAC SSTP (Shared Spanning Tree Protocol), 0100.0ccc.ccd), et étiquetées avec une étiquette VLAN IEEE 802.1Q correspondante.
Cette liste de contrôle d'accès (ACL) peut être utilisée afin de bloquer les BPDU PVST+ :
ethernet-services access-list l2acl
10 deny any host 0100.0ccc.cccd
20 permit any any
Appliquez la liste de contrôle d’accès à l’interface configurée comme l2transport :
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
Par défaut, l'ASR9000 n'exécute pas le protocole Spanning Tree comme la plupart des commutateurs Cisco IOS. Dans le modèle EVC (Ethernet Virtual Circuit), une unité BPDU est simplement un autre paquet multicast de couche 2. Un problème courant rencontré est les incohérences Spanning Tree dues à plusieurs types de STP qui s'exécutent sur un domaine de pont ASR 9000. Ceci apparaît de différentes manières.
Considérez cette topologie simple :
Supposons que le commutateur 1 exécute MST (Multiple Spanning Tree) et que le commutateur 2 exécute PVST+. Si a9k1 n'exécute aucune forme de Spanning Tree, le commutateur 1 le voit comme un port de frontière. Le commutateur Switch1 repasse en mode PVST pour les VLAN qui ne se trouvent pas dans l’instance commune Spanning Tree 0 (CST0). Si c'est la conception souhaitée, vous devez vous familiariser avec l'interaction MST et PVST comme décrit dans le livre blanc Comprendre le protocole STP (Multiple Spanning Tree Protocol) (802.1s).
Supposons maintenant que vous exécutez MST sur switch1 et sur l’interface a9k1 qui va vers switch1, mais que vous exécutez toujours PVST+ sur switch2. Les unités BPDU PVST+ passent par le domaine du pont et arrivent au commutateur 1. Le commutateur Switch1 voit alors les deux BPDU MST de a9k1 et les BPDU PVST+ du commutateur Switch2, ce qui entraîne le passage constant du mode « blocage » au mode « non blocage » du Spanning Tree sur le port du commutateur Switch1 et entraîne une perte de trafic.
Le commutateur Switch1 signale ces 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.
Le résultat de la commande show spanning-tree interface montre que le résultat change constamment sur le périphérique Cisco IOS du commutateur 1 :
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
Il y a trois options à considérer afin d'éviter ce problème.
Lorsqu’un commutateur reçoit une trame BPDU Spanning Tree qu’il a envoyée sur la même interface, il bloque ce VLAN en raison d’une boucle automatique. Il s’agit d’un problème courant qui se produit lorsqu’un commutateur avec un port agrégé est connecté à un routeur ASR 9000 qui fournit des services multipoints de couche 2 et que l’ASR 9000 ne réécrit pas les balises VLAN sur les interfaces de transport de couche 2 dans le même domaine de pont.
Considérez la même topologie simple que celle présentée précédemment. Mais maintenant, pour une raison de conception sur le a9k1, plusieurs VLAN qui proviennent de la même interface d’agrégation de commutateur sont fusionnés dans un domaine de pont.
Voici la configuration a9k1 :
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
Cela relie les VLAN 2 à 4 dans un domaine de pont sur le a9k1.
Par défaut, le modèle EVC de l'ASR 9000 ne réécrit aucune balise ou fenêtre contextuelle. La BPDU PVST+ pour VLAN2 arrive sur l'interface gig 0/1/0/31.2 et est retransmise sur gig 0/1/0/31.3 et gig 0/1/0/31.4. Puisque la configuration n'est pas une réécriture de l'action de pop d'entrée, la BPDU retourne inchangée. Le commutateur le voit alors qu'il récupère sa propre BPDU et bloque ce VLAN en raison d'une boucle automatique.
La commande show spanning-tree interface montre le VLAN bloqué :
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
Ce problème est éliminé par l'utilisation de la commande ethernet egress-filter strict sur les interfaces ASR 9000 l2transport.
Cette conception n'est pas recommandée. Cependant, si c'est vraiment la conception souhaitée, alors vous pouvez utiliser cette solution afin d'empêcher le commutateur de recevoir la BPDU qu'il a renvoyée dans la même interface.
Vous pouvez utiliser la commande ethernet egress-filter strict sur les interfaces l2transport a9k1 ou globalement. Voici l'exemple sous l'interface :
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
La commande ethernet egress-filter strict active le filtrage strict des points de flux Ethernet (EFP) de sortie sur l'interface. Seuls les paquets qui passent le filtre EFP d'entrée sur l'interface sont transmis hors de cette interface. Les autres paquets sont abandonnés au niveau du filtre de sortie. Cela signifie que si le paquet qui sort ne correspond pas à l'étiquette d'encapsulation dot1q configurée sur l'interface, alors il n'est pas envoyé.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
19-Sep-2013 |
Première publication |