Este documento descreve o recurso de aprimoramento de proteção de PortFast e BPDU (Bridge Protocol Data Unit) do STP (Spanning Tree Protocol).
Não existem requisitos específicos para este documento.
Estas versões de software introduziram o STP PortFast BPDU guard:
Software Cisco IOS® versão 12.0(7)XE para as plataformas Catalyst 6500/6000
Software Cisco IOS versão 12.1(8a)EW para Supervisor Engine III do Catalyst 4500/4000
Software Cisco IOS versão 12.1(12c)EW para Supervisor Engine IV do Catalyst 4500/4000
Software Cisco IOS versão 12.0(5)WC5 para as séries Catalyst 2900XL e 3500XL
Software Cisco IOS versão 12.1(11)AX para switches Catalyst 3750 Series
Software Cisco IOS versão 12.1(14)AX para Catalyst 3750 Metro Switches
Software Cisco IOS versão 12.1(19)EA1 para switches Catalyst 3560 Series
Software Cisco IOS versão 12.1(4)EA1 para Catalyst 3550 Series Switches
Software Cisco IOS versão 12.1(11)AX para os switches Catalyst série 2970
Software Cisco IOS versão 12.1(12c)EA1 para os switches Catalyst série 2955
Software Cisco IOS versão 12.1(6)EA2 para os switches Catalyst série 2950
Software Cisco IOS versão 12.1(11)EA1 para switches Ethernet de longo alcance (LRE) Catalyst 2950
Software Cisco IOS versão 12.1(13)AY para os switches Catalyst série 2940
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Consulte as Convenções de dicas técnicas da Cisco para obter mais informações sobre as convenções do documento.
Em uma rede comutada projetada corretamente, o Spanning Tree Protocol (STP) evita loops de Camada 2 colocando caminhos redundantes em um estado de bloqueio. Cada porta que é ativada normalmente passa pelos estados de STP (escuta, aprendizagem e, finalmente, encaminhamento) antes de passar o tráfego do usuário. Esse atraso de convergência, aproximadamente 30 segundos com o 802.1D tradicional, é apropriado para links switch a switch, mas desnecessário para portas conectadas a hosts finais, como PCs, servidores ou impressoras, que não podem criar um loop de switching sozinhos.
O desafio é que uma porta que se conecta a um host final não deve estar recebendo Unidades de Dados de Protocolo de Bridge (BPDUs - Bridge Protocol Data Units) STP. Se os BPDUs chegarem em tal porta, isso geralmente sinalizará um dos dois problemas a seguir: alguém conectou um switch não autorizado ou um dispositivo está executando um software que emula uma bridge. Qualquer caso pode desestabilizar a topologia, particularmente se o dispositivo invasor anunciar um ID de bridge superior e forçar uma eleição de bridge raiz da qual ele nunca deve participar.
Um exemplo real ilustra o risco. Um PC de usuário executando um aplicativo de bridging baseado em Linux foi conectado a uma porta de acesso. Como o aplicativo enviou BPDUs reivindicando uma baixa prioridade de bridge, a rede elegeu o PC como a bridge raiz. Isso deslocou toda a topologia spanning-tree em direção a um host sem energia, congestionando os links e causando uma interrupção da rede. O BPDU Guard existe precisamente para evitar essa classe de falha.
O PortFast faz imediatamente a transição de uma porta de acesso ou tronco do estado blocking diretamente para o estado forwarding, ignorando as fases de listening e learning. Isso elimina o atraso de inicialização para portas conectadas a dispositivos finais, que é importante para hosts que esperam acesso imediato à rede (por exemplo, estações de trabalho que usam DHCP na inicialização).
O PortFast destina-se apenas para portas conectadas a uma única estação final. Ativá-lo em uma porta que se conecta a outro switch reintroduz o risco de loop que o STP deve evitar, pois a porta começa a encaminhar antes que o STP tenha a chance de detectar um caminho redundante.
O BPDU Guard complementa o recurso de PortFast reforçando a suposição de que uma porta habilitada para PortFast nunca deve ver um BPDU. Quando o BPDU Guard está ativado e a porta recebe um BPDU, o switch imediatamente desliga a porta colocando-a no estado errdisable. Isso protege a topologia de duas maneiras:
Como a porta é desativada administrativamente em vez de simplesmente bloqueada, um operador de rede chama a atenção para o evento e o dispositivo ofensivo é isolado cuidadosamente até que o problema seja resolvido.
Uma porta colocada em errdisable não se recupera sozinha, a menos que a recuperação errdisable esteja configurada. Você pode reativar a interface manualmente (shutdown seguido por no shutdown) ou configurar a recuperação automática para a causa do BPDU Guard.
Esta mensagem é um exemplo:
2000 May 12 15:13:32 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 2/1 2000 May 12 15:13:32 %PAGP-5-PORTFROMSTP:Port 2/1 left bridge port 2/1
Considere o próximo exemplo:
Conexão de Bridge
A topologia consiste em três switches que formam as camadas de núcleo e de acesso, além de um dispositivo final:
Com todos os outros parâmetros de STP deixados em seus padrões, o STP converge conforme esperado. O Switch A é escolhido como raiz e o caminho redundante é bloqueado para quebrar o loop, especificamente, a porta do Switch C voltada para o Switch B é colocada no estado blocking (mostrado pelo "X" vermelho nesse link). As setas pontilhadas rastreiam o fluxo normal de BPDUs de STP através da topologia. Isso pode ser visto como uma rede estável onde o PortFast fornece conectividade imediata ao Device D, enquanto o STP gerencia silenciosamente os enlaces de núcleo redundantes.
Aplicativo de Bridge baseado em Linux é Iniciado em um PC
Este exemplo mostra o que acontece quando o Dispositivo D para de se comportar como um host final simples e começa a participar do STP, exatamente como o cenário para o qual o BPDU Guard foi projetado para parar. Um aplicativo de ponte baseado em Linux é iniciado no PC (Dispositivo D). O aplicativo anuncia uma prioridade de bridge de 0 (ou qualquer valor inferior à prioridade de raiz atual). Como o STP sempre favorece o ID de bridge mais baixo, a bridge baseada em Linux ganha a eleição de raiz e assume a função de bridge raiz do Switch A.
Essa reeleição remodela toda a topologia. O link Gigabit Ethernet de alta velocidade entre os dois switches centrais (A e B) faz a transição para o bloqueio (mostrado pelo "X" vermelho que se move para o link central). Como resultado, todo o tráfego de VLAN que anteriormente usava o núcleo de Gigabit é forçado a um caminho mais lento, de 100 Mbps. Quando a demanda de tráfego excede o que esse link pode transportar, o switch começa a descartar quadros e o resultado é uma falha de conectividade.
Como o BPDU Guard evita o problema? Como o Switch C tem o PortFast habilitado na porta para o Dispositivo D, essa porta nunca deve receber um BPDU. No momento em que o Dispositivo D envia uma BPDU do STP, o BPDU Guard desliga a porta colocando-a no estado errdisable. O dispositivo D é isolado antes que possa influenciar a escolha da raiz e a topologia do núcleo permanece intacta.
A abordagem recomendada é ativar o PortFast e o BPDU Guard juntos nas portas de acesso voltadas para o host. Você pode ativar ou desativar o STP PortFast BPDU guard em uma base global ou por interface. Por padrão, o protetor de BPDU do STP está desabilitado.
CatSwitch-IOS(config-if)#spanning-tree portfast CatSwitch-IOS(config-if)#spanning-tree bpduguard enable
CatSwitch-IOS(config)#spanning-tree portfast bpduguard default
Com o comando global, cada porta configurada com o PortFast herda automaticamente o BPDU Guard, portanto, você não precisa defini-lo em cada interface individualmente.
Quando o STP BPDU guard desativa a porta, a porta permanece em um estado desativado, a menos que a porta seja ativada manualmente. Você pode configurar uma porta para reativar-se automaticamente a partir do estado errdisable. Emita estes comandos, que definem o intervalo errdisable-timeout e ativam o recurso timeout :
CatSwitch-IOS(config)#errdisable recovery cause bpduguard CatSwitch-IOS(config)#errdisable recovery interval 400
Para verificar se o recurso está habilitado ou desabilitado, execute o próximo comando aplicável:
CatSwitch-IOS#show spanning-tree summary totals Root bridge for: none. PortFast BPDU Guard is enabled UplinkFast is disabled BackboneFast is disabled Spanning tree default pathcost method used is short Name Blocking Listening Learning Forwarding STP Active -------------------- -------- --------- -------- ---------- ---------- 1 VLAN 0 0 0 1 1 CatSwitch-IOS#
| Revisão | Data de publicação | Comentários |
|---|---|---|
4.0 |
05-Jun-2026
|
Ortografia, gramática, espaçamento e introdução atualizados. |
3.0 |
12-May-2025
|
Formatação atualizada para estar em conformidade com as Diretrizes da Cisco. |
2.0 |
22-Mar-2024
|
Formatação atualizada. Alertas do CCW corrigidos. Recertificação. |
1.0 |
29-Nov-2001
|
Versão inicial |