Sommario

Introduzione

Problema - Incoerenza dell'ID VLAN (PVID) della porta

Soluzione

Filtro BPDU sugli switch

Blocco di PVST+ BPDU su ASR 9000

Problema - Quando si utilizzano più tipi di Spanning Tree Protocol (STP) con un ASR 9000, le porte dello switch sfasano tra il blocco e l'inoltro

Soluzione

Problema - Porte dello Spanning Tree bloccate a causa del rilevamento di un self-loop

Soluzione

Informazioni correlate

Introduzione

In questo documento vengono descritti i problemi comuni incontrati quando si integrano le reti Spanning Tree di layer 2 (L2) correnti sugli switch Cisco IOS® con Cisco Aggregation Services Router (ASR) serie 9000 con Cisco IOS XR.

Problema - Incoerenza dell'ID VLAN (PVID) della porta

Gli switch Cisco IOS che eseguono PVST+ (Per VLAN Spanning Tree Plus) bloccano le porte degli switch quando ricevono una BDPU (Bridge Protocol Data Unit) con un PVID incoerente. Questo problema si verifica quando un dispositivo tra gli switch modifica o converte i tag IEEE 802.1Q sui PVST+ BPDU.

Quando un ASR 9000 fornisce il servizio L2VPN point-to-point o multipoint tra gli switch con PVST+ e riscrive i tag VLAN, questi messaggi syslog potrebbero essere visualizzati sugli switch con 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.

Questo problema è dovuto al tag PVID incluso nelle PVST+ BPDU. Questo tag è progettato per rilevare configurazioni errate ed evitare loop accidentali. In questo scenario, tuttavia, ciascuna estremità viene bloccata e il traffico non può passare.

Di seguito è riportato un esempio:

Di seguito è riportata la configurazione di ASR serie 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

Soluzione

Per evitare questo problema, è possibile bloccare le PVST+ BPDU. Questa azione disabilita lo Spanning Tree e può generare loop se sono disponibili connessioni ridondanti tra gli switch.

Attenzione: prestare attenzione quando si bloccano le BPDU e si disabilita efficacemente lo Spanning Tree.

Filtro BPDU sugli switch

Le BPDU sono bloccate dalla funzione di filtro BPDU sugli switch. Il filtro BPDU blocca le BPDU in entrambe le direzioni, disabilitando di fatto lo Spanning Tree sulla porta. Il filtro BPDU impedisce le BPDU in entrata e in uscita. L'abilitazione del filtro BPDU su un'interfaccia equivale alla disabilitazione dello Spanning Tree che può generare loop nello Spanning Tree.

Sullo switch1 e sullo switch2, abilitare i filtri BPDU con questo comando:

interface TenGigabitEthernet1/2

spanning-tree bpdufilter enable

Blocco di PVST+ BPDU su ASR 9000

Per evitare questo problema, è possibile configurare l'ASR9000 in modo da eliminare le PVST+ BPDU. A tal fine, viene usato un elenco degli accessi ai servizi Ethernet di L2 per rifiutare i pacchetti destinati all'indirizzo MAC PVST+ BPDU.

La PVST+ BPDU per la VLAN non nativa 1 viene inviata all'indirizzo MAC PVST+ (detto anche indirizzo MAC SSTP (Shared Spanning Tree Protocol), ossia 0100.0ccc.cccd) e contrassegnata con un tag VLAN IEEE 802.1Q corrispondente.

Questo Access Control List (ACL) può essere usato per bloccare le PVST+ BPDU:

ethernet-services access-list l2acl

10 deny any host 0100.0ccc.cccd

20 permit any any

Applicare l'ACL all'interfaccia configurata come 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

Problema - Quando si utilizzano più tipi di Spanning Tree Protocol (STP) con un ASR 9000, le porte dello switch sfasano tra il blocco e l'inoltro

per impostazione predefinita, ASR9000 non esegue Spanning Tree come la maggior parte degli switch Cisco IOS. Nel modello Ethernet Virtual Circuit (EVC), una BPDU è semplicemente un altro pacchetto multicast L2. Molto spesso si verificano incoerenze nello Spanning Tree dovute a diversi tipi di STP eseguiti su un dominio bridge ASR 9000. Questo appare in diversi modi.

Si consideri la seguente topologia semplice:

Si supponga che lo switch 1 esegua Multiple Spanning Tree (MST) e lo switch 2 esegua PVST+. se a9k1 non esegue alcuna forma di Spanning Tree, lo switch 1 la vede come una porta limite. Lo switch 1 ritorna alla modalità PVST per le VLAN non presenti nella CST 0 (Common Spanning Tree Instance 0). Se questa è la progettazione desiderata, è necessario avere familiarità con l'interazione MST e PVST come descritto nel white paper Understanding Multiple Spanning Tree Protocol (802.1s).

Si supponga ora di eseguire MST sullo switch1 e sull'interfaccia a9k1 che va allo switch1, ma di eseguire comunque PVST+ sullo switch2. I PVST+ BPDU attraversano il dominio bridge e arrivano allo switch 1. Lo switch 1 rileva quindi entrambe le BPDU MST da a9k1 e le BPDU PVST+ dallo switch 2, che fanno sì che lo Spanning Tree sulla porta dello switch 1 passi costantemente dal blocco a non blocco e determini una perdita di traffico.

Switch1 riporta i seguenti syslog:

%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.

L'output del comando show spanning-tree interface mostra che l'output cambia costantemente sul dispositivo switch1 Cisco IOS:

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

Soluzione

Per evitare questo problema, è necessario considerare tre opzioni.

- Configurare MST sullo switch 2 e abilitare MST sulle interfacce a9k1 sia sullo switch 1 che sullo switch 2.

- Utilizzare un elenco degli accessi ai servizi Ethernet su a9k1 per eliminare le PVST+ BPDU in entrata dallo switch 2 o in uscita allo switch 1.

- Eseguire il comando Per VLAN Spanning Tree Access Gateway (PVSTAG) sull'interfaccia a9k1 verso lo switch2. In questo modo, a9k1 consuma le PVST+ BPDU dallo switch 2.

Problema - Porte dello Spanning Tree bloccate a causa del rilevamento di un self-loop

Quando uno switch riceve un BPDU Spanning Tree inviato sulla stessa interfaccia, blocca tale VLAN a causa di un loop automatico. Questo è un problema comune che si verifica quando uno switch con porta trunk è collegato a un router ASR 9000 che fornisce servizi multipoint L2 e ASR 9000 non riscrive i tag VLAN sulle interfacce l2transport nello stesso dominio bridge.

Si consideri la stessa topologia semplice mostrata in precedenza. Ora, per un motivo legato alla progettazione su a9k1, più VLAN che provengono dalla stessa interfaccia dello switch trunk vengono unite in un unico dominio bridge.

Di seguito è riportata la configurazione 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

Questo collega le VLAN da 2 a 4 in un dominio bridge sull'appliance a9k1.

Per impostazione predefinita, il modello ASR 9000 EVC non riscrive alcun tag o pop. La PVST+ BPDU per VLAN2 arriva sull'interfaccia gig 0/1/0/31.2 e viene inoltrata indietro sul gig 0/1/0/31.3 e sul gig 0/1/0/31.4. Poiché la configurazione non prevede la riscrittura dell'azione in entrata pop, la BPDU restituisce invariata. Lo switch riconosce questa condizione quando recupera la propria BPDU e blocca la VLAN a causa di un autoblocco.

Il comando show spanning-tree interface mostra la VLAN bloccata:

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

Soluzione

Per eliminare il problema, usare il comando ethernet exit-filter strict sulle interfacce ASR 9000 l2transport.

Questa non è una struttura consigliata. Tuttavia, se il design è quello desiderato, è possibile usare questa soluzione per evitare che lo switch riceva la BPDU che ha inviato alla stessa interfaccia.

È possibile utilizzare il comando ethernet exit-filter strict sulle interfacce a9k1 l2transport o globalmente. Di seguito è riportato l'esempio di questa opzione nell'interfaccia:

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

Il comando ethernet egress-filter strict attiva un filtro EFP (Ethernet Flow Point) preciso sull'interfaccia. Da questa interfaccia vengono trasmessi solo i pacchetti che passano il filtro EFP in entrata sull'interfaccia. Altri pacchetti vengono scartati in corrispondenza del filtro di uscita. Ciò significa che se il pacchetto che esce non corrisponde all'etichetta dot1q di incapsulamento configurata sull'interfaccia, non viene inviato.

Informazioni correlate

- Implementazione di Multiple Spanning Tree Protocol

- Risoluzione dei problemi relativi alle incoerenze di PVID e tipo del protocollo Spanning Tree

- Informazioni sul protocollo Multiple Spanning Tree (802.1s)

- Documentazione e supporto tecnico – Cisco Systems