M2 · Switching e LAN

Spanning Tree Protocol — Parte 2: Rapid PVST+, PortFast e BPDU Guard

O que é

O Spanning Tree Protocol clássico (802.1D) foi projetado para eliminar loops em redes comutadas, mas a sua velocidade de convergência é um problema sério: um switch pode levar até 50 segundos para começar a encaminhar tráfego após uma falha de topologia. O Rapid Spanning Tree Protocol (RSTP — 802.1w), implementado pela Cisco como Rapid PVST+, resolve exatamente isso. Em vez de cinco estados de porta e longos timers, o RSTP trabalha com três estados e um mecanismo de negociação ativo entre switches, reduzindo a convergência para menos de 1 segundo na maioria dos cenários.

A Cisco implementa RSTP de forma per-VLAN no Rapid PVST+, que é o modo padrão em switches modernos. Cada VLAN executa sua própria instância de spanning tree, o que também permite load balancing ao designar root bridges diferentes por VLAN.


Como funciona

Estados de porta: Classic STP vs RSTP

O Classic STP define cinco estados:

Estado Encaminha tráfego? Aprende MACs? Recebe BPDUs?
Blocking Não Não Sim
Listening Não Não Sim
Learning Não Sim Sim
Forwarding Sim Sim Sim
Disabled

O RSTP simplifica para três estados:

Estado RSTP Equivalente 802.1D
Discarding Blocking + Listening
Learning Learning
Forwarding Forwarding

O estado Discarding unifica blocking e listening em um único estado inativo. A grande diferença está na convergência ativa: em vez de aguardar passivamente o escoamento dos timers (max age 20 s + forward delay 2 × 15 s = 50 s no pior caso), o RSTP usa um mecanismo de proposta-e-acordo (proposal/agreement) entre switches vizinhos para negociar a transição para forwarding de forma quase imediata.

Port roles no RSTP

O RSTP mantém os papéis do 802.1D e adiciona dois novos:

  • Root port — melhor caminho até o root bridge; um por switch (exceto no root)
  • Designated port — melhor porta em cada segmento; encaminha tráfego
  • Alternate port — backup do root port; fica em discarding, pronto para assumir sem aguardar timers
  • Backup port — backup de designated port no mesmo segmento; menos comum

O alternate port é a chave da convergência rápida. Quando o root port falha, o alternate port assume imediatamente o papel de root port e vai para forwarding — sem passar por nenhum estado transitório.

Timers no Classic STP (referência)

  • Hello timer: 2 segundos — frequência de envio de BPDUs pelo root bridge
  • Forward delay: 15 segundos — duração de cada estado transitório (listening e learning)
  • Max age: 20 segundos — tempo que um switch aguarda BPDUs antes de reavaliar a topologia

No RSTP, esses timers existem como fallback para compatibilidade com 802.1D, mas raramente são acionados.


Na prática

PortFast

Uma porta conectada a um PC ou servidor não pode formar um loop de camada 2. Mesmo assim, sem configuração, a porta passa por 30 segundos de listening + learning antes de encaminhar tráfego. O PortFast elimina essa espera: a porta vai diretamente para forwarding.

! Habilitar em uma interface específica (access port)
SW1(config-if)# spanning-tree portfast

! Habilitar globalmente em todas as access ports
SW1(config)# spanning-tree portfast default

Regra de ouro: PortFast deve ser configurado somente em portas de acesso conectadas a dispositivos finais (PCs, impressoras, servidores). Em portas de trunk ou portas conectadas a outros switches, PortFast pode criar loops.

BPDU Guard

PortFast resolve o problema da espera, mas cria um risco: e se um usuário plugar um switch não autorizado na porta? O BPDU Guard detecta isso: se qualquer BPDU chegar em uma porta com BPDU Guard ativo, a porta é colocada em estado err-disabled (desligada automaticamente) para prevenir o loop.

! Habilitar na interface
SW1(config-if)# spanning-tree bpduguard enable

! Habilitar globalmente em todas as portas com PortFast
SW1(config)# spanning-tree portfast bpduguard default

Para reativar uma porta bloqueada pelo BPDU Guard:

SW1(config-if)# shutdown
SW1(config-if)# no shutdown

Atenção: se o problema não for resolvido (switch ainda conectado), a porta será desabilitada novamente na próxima BPDU recebida.

Root Guard

O Root Guard protege a posição do root bridge. Se uma porta com Root Guard habilitado receber uma BPDU superior (com bridge ID menor que o root atual), a porta é desabilitada em vez de aceitar o novo switch como root.

SW1(config-if)# spanning-tree guard root

Use Root Guard nas portas do root bridge que se conectam a switches de acesso — portas pelas quais um novo switch nunca deveria se tornar root.

Configurando o Rapid PVST+

! Confirmar o modo (padrão em switches modernos)
SW1(config)# spanning-tree mode rapid-pvst

! Definir o root bridge primário para a VLAN 10
SW1(config)# spanning-tree vlan 10 root primary

! Definir o root bridge secundário para a VLAN 10
SW1(config)# spanning-tree vlan 10 root secondary

! Verificar o estado do spanning tree
SW1# show spanning-tree
SW1# show spanning-tree vlan 10
SW1# show spanning-tree interface gigabitethernet 0/1

O comando root primary define a prioridade como 24576 (ou 4096 abaixo do menor valor existente). O root secondary define como 28672. As prioridades são sempre múltiplos de 4096 (0, 4096, 8192... 61440).

Load balancing por VLAN

Com Rapid PVST+, cada VLAN tem uma instância de STP independente. Isso permite configurar roots diferentes por VLAN, distribuindo o tráfego por links diferentes:

! SW1 é root para VLAN 10, secundário para VLAN 20
SW1(config)# spanning-tree vlan 10 root primary
SW1(config)# spanning-tree vlan 20 root secondary

! SW2 é root para VLAN 20, secundário para VLAN 10
SW2(config)# spanning-tree vlan 20 root primary
SW2(config)# spanning-tree vlan 10 root secondary

Por que cai no exame

O CCNA 200-301 cobra STP Parte 2 com frequência nas seguintes frentes:

  1. Estados RSTP vs Classic STP — saber que o RSTP usa discarding/learning/forwarding e não tem estado de listening separado
  2. PortFast: somente em access ports; spanning-tree portfast default aplica somente em access ports, não em trunks
  3. BPDU Guard: desliga a porta ao receber qualquer BPDU; reativação manual com shutdown/no shutdown
  4. Convergência: Classic STP pode levar 50 s (20 + 15 + 15); RSTP converge em menos de 1 s
  5. Port ID: o hexadecimal 0x80 = 128 decimal (prioridade padrão de porta)
  6. Alternate port: no RSTP, o alternate port assume o papel de root port imediatamente quando o link principal falha
  7. Root Guard vs BPDU Guard: Root Guard protege contra novos root bridges; BPDU Guard protege access ports contra qualquer switch conectado

Uma pergunta clássica de prova: "qual feature impede um loop se um usuário conectar um switch a uma porta de acesso?" — BPDU Guard (não PortFast, não Root Guard).


Resumo em uma linha

Rapid PVST+ substitui o lento 802.1D com três estados de porta (discarding/learning/forwarding) e convergência em menos de 1 segundo; PortFast elimina a espera em portas de acesso e BPDU Guard as protege automaticamente contra switches não autorizados.