Para parceiros
Este documento descreve problemas comuns encontrados quando você integra suas redes atuais de Árvore Estendida de Camada 2 (L2) nos switches Cisco IOS® com o Cisco Aggregation Services Router (ASR) 9000 Series que executa o Cisco IOS XR.
Os switches Cisco IOS que executam Per VLAN Spanning Tree Plus (PVST+) bloqueiam as portas do switch quando recebem uma BPDU (Bridge Protocol Data Unit) com um PVID inconsistente. Esse problema ocorre quando um dispositivo entre os switches altera ou converte as marcas IEEE 802.1Q nas BPDUs PVST+.
Quando um ASR 9000 fornece serviço L2VPN ponto a ponto ou multiponto entre switches que executam PVST+ e regrava as marcas de VLAN, essas mensagens de syslog podem ser exibidas nos switches baseados no 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.
Esse problema é devido à marca PVID incluída com os BPDUs PVST+. Essa marca foi projetada para detectar configurações incorretas e evitar loops acidentais. Mas, nesse cenário, faz com que cada extremidade seja bloqueada e não permita a passagem do tráfego.
Aqui está um exemplo:
Esta é a configuração para a configuração do ASR 9000 Series (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
Para evitar esse problema, você pode bloquear as BPDUs PVST+. Essa ação desabilita o Spanning Tree e pode resultar em loops se houver conexões redundantes disponíveis entre os switches.
As BPDUs são bloqueadas com o recurso de filtro de BPDU nos switches. O filtro BPDU bloqueia BPDUs em ambas as direções, o que efetivamente desabilita o Spanning Tree na porta. O filtro de BPDU impede a BPDU de entrada e saída. Se você habilitar a filtragem de BPDU em uma interface, ela será a mesma que se você desabilitar o Spanning Tree nela, o que pode resultar em loops de Spanning Tree.
No switch 1 e no switch 2, ative os filtros de BPDU com este comando:
interface TenGigabitEthernet1/2
spanning-tree bpdufilter enable
Esse problema é evitado se você configurar o ASR9000 para descartar as BPDUs PVST+. Isso é feito com uma lista de acesso de serviços de ethernet L2 para negar pacotes destinados ao endereço MAC de BPDU do PVST+.
O PVST+ BPDU para a VLAN não-VLAN 1 (não-nativa) são enviados para o endereço MAC PVST+ (também chamado de endereço MAC do Shared Spanning Tree Protocol [SSTP], 0100.0ccc.cccd) e marcados com uma marca de VLAN IEEE 802.1Q correspondente.
Essa lista de controle de acesso (ACL) pode ser usada para bloquear as BPDUs PVST+:
ethernet-services access-list l2acl
10 deny any host 0100.0ccc.cccd
20 permit any any
Aplique a ACL à interface configurada como 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
O ASR9000 não faz Spanning Tree por padrão, como a maioria dos switches Cisco IOS. No modelo de EVC (Ethernet Virtual Circuit), um BPDU é simplesmente outro pacote multicast L2. Um problema comum encontrado é as inconsistências de Spanning Tree devido a vários tipos de STPs executados em um domínio de bridge ASR 9000. Isso aparece de algumas maneiras diferentes.
Considere esta topologia simples:
Suponha que o switch1 execute Multiple Spanning Tree (MST) e que o switch2 execute PVST+. Se um9k1 não executa nenhuma forma de Spanning Tree, então o switch1 vê isso como uma porta de limite. Switch1 volta ao modo PVST para VLANs que não estão na Common Spanning Tree Instance 0 (CST0). Se este for o design desejado, você deve estar familiarizado com a interação MST e PVST, conforme descrito no white paper Understanding Multiple Spanning Tree Protocol (802.1s).
Agora suponha que você execute o MST no switch1 e na interface a9k1 que vai para o switch1, mas ainda execute o PVST+ no switch2. Os BPDUs PVST+ passam pelo domínio da bridge e chegam ao switch1. O Switch 1 vê, então, ambos os BPDUs MST de um9k1 e os BPDUs PVST+ do switch2, o que faz com que o Spanning Tree na porta do switch1 passe constantemente do bloqueio para o não bloqueio e resulta em perda de tráfego.
Switch1 relata estes 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.
A saída do comando show spanning-tree interface mostra que a saída muda constantemente no dispositivo IOS Cisco do switch1:
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
Há três opções a serem consideradas para evitar esse problema.
Quando um switch recebe uma BPDU do Spanning Tree que enviou na mesma interface, ele bloqueia essa VLAN devido a um loop automático. Esse é um problema comum que ocorre quando um switch com uma porta de tronco é conectado a um roteador ASR 9000 que fornece serviços multiponto L2, e o ASR 9000 não regrava marcas de VLAN nas interfaces de transporte l2no mesmo domínio de bridge.
Considere a mesma topologia simples mostrada anteriormente. Mas agora, por uma razão de projeto no a9k1, várias VLANs que vêm da mesma interface de tronco do switch são mescladas em um domínio de bridge.
Esta é a configuração de 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
Isso liga as VLANs de 2 a 4 juntas em um domínio de bridge no a9k1.
O modelo ASR 9000 EVC não regrava nenhuma marca ou pop por padrão. O PVST+ BPDU para VLAN2 entra na interface gig 0/1/0/31.2 e é encaminhado de volta para gig 0/1/0/31.3 e gig 0/1/0/31.4. Como a configuração não é uma regravação da ação pop de entrada, a BPDU retorna inalterada. O switch vê isso à medida que recebe seu próprio BPDU de volta, e bloqueia essa VLAN devido a um loop automático.
O comando show spanning-tree interface mostra a VLAN bloqueada:
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
Esse problema é eliminado através do uso do comando ethernet egress-filter strict nas interfaces de transporte ASR 9000 l2transport.
Este não é um projeto recomendado. No entanto, se esse for realmente o projeto desejado, você poderá usar essa solução para impedir que o switch receba a BPDU que ele enviou de volta na mesma interface.
Você pode usar o comando ethernet egress-filter strict nas interfaces de transporte a9k1 l2transport ou globalmente. Aqui está o exemplo sob a 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
O comando ethernet egress-filter strict permite a filtragem de ponto de fluxo Ethernet (EFP) de saída estrita na interface. Somente os pacotes que passam pelo filtro EFP de entrada na interface são transmitidos dessa interface. Outros pacotes são descartados no filtro de saída. Isso significa que se o pacote que sai não corresponder ao rótulo encapsulation dot1q configurado na interface, ele não será enviado.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
19-Sep-2013 |
Versão inicial |