O Spanning-Tree Protocol tem um papel fundamental nas redes “campus”, evitando ocorrência de loops de camada 2, ou pelo menos minimizando as chances deles acontecerem.
Fora a utilização do protocolo em sí, com seus vários sabores (STP, PVSTP, RSTP, MST, RPVSTP), podemos habilitar algumas funções nos switches Cisco que farão a rede mais rápida e menos propensas a loops.
Portfast (port type edge): O comando spanning-tree portfast (spanning-tree port type edge) usado no modo interface é provavelmente o mais conhecido desta lista. Ele foi introduzido pela Cisco, como melhoria no STP e PVSTP+. Posteriormente foi adicionado aos padrões RSTP e MST. Este comando faz com que a porta passe para Forwarding imediatamente após ficar UP. Portas Edges enviam BPDU, mas não devem receber (não devem ser conectadas à switches). Se uma porta Edge receber BPDU, o Portfast é “desabilitado” e a porta faz o processo normal do STP. Usar o Portfast com o RSTP e MSTP é praticamente obrigatório, pois sem ele a porta entra em Discarting durante o processo de Proposal/Agreement, causando intermitência na conexão. Uma interface com Porfast habilitado também não gera eventos TCN, nem limpa a tabela MAC por conta de mudança de topologia STP.
Além da possibilidade de fazer a configuração por interface, podemos habilitar o Portfast globalmente como o comando spanning-tree portfast default (ou spanning-tree port type edge default, dependendo da plataforma). Em ambos os casos o comando é aplicado apenas às portas no modo acesso.
Se o comando for habilitado no modo global e você quiser desativá-lo em uma interface específica, basta usar o comando spanning-tree portfast disable no modo interface.
Portfast Trunk (port type edge trunk): Comando configurado por interface, com as mesmas características do comando anterior, mas diferente do que muitos podem imaginar, NÃO deve ser usado em interface trunk conectada a outro switch. O comando spanning-tree portfast trunk (ou spanning-tree port type edge trunk) deve ser usado para portas trunk que são conectadas à servidores, roteadores e outros equipamentos que suportam 802.1Q, mas NÃO à switches.
BPDU Guard: Podemos habilitar o BPDU Guard (spanning-tree bpduguard enable) na interface ou globalmente (spanning-tree portfast bpduguard default). O BPDU Guard coloca a porta em Error Disable se ela receber BPDU. Quando usamos o comando no modo global o BPDU Guard é habilitado apenas nas interfaces configuradas com Portfast (Edge). Se o comando for habilitado globalmente e você precisar desativar em alguma interface, basta usar o comando spanning-tree bpduguard disable.
Root Guard: Com o comando spanning-tree guard root (habilitado por interface), se a interface receber um BPDU superior, isto é, que indica um caminho melhor até o switch root, a interface é colocada em blocking (root inconsistent), e só voltará a funcionar normalmente quando parar de receber os BPDUs.
BPDU Filter: O BPDU Filter tem a função de interromper a transmissão e recebimento de BPDUs. Quando habilitado globalmente com o comando spanning-tree portfast bpdufilter default, o comando é aplicado às interfaces configuradas com Portfast. Estas interfaces, quando conectadas, irão enviar 11 (1 imediatamente após ficar UP e outros 10, 1 a cada 2 segundos – Hello Timers) BPDUs. Se não receber nenhum BPDU a interface para de enviar BPDUs. No entanto a porta continua capaz de processar BPDUs, e se receber algum, o BPDU Filter é desconsiderado e a interface passa a agir normalmente de acordo com o STP.
Para desativar o Filter em uma interface específica (depois de habilitado globalmente), usamos o comando spanning-tree portfast bpdufilter disable no modo interface.
Assim como os outros comando, também podemos ativar o BPDU Filter por interface (spanning-tree portfast bpdufilter enable), porém, neste caso, a interface não enviará BPDUs e vai descartar os BPDUs recebidos. Esta opção é usada quando queremos que a interface não participe do STP.
UDLD: O Unidirectional Link Detection é um mecanismo que permite o switch detectar se o par RX/TX está funcionando corretamente. Habilitamos a funcionalidade por interface, com o comando udld port, e caso seja detectado uma falha, a interface é colocada no modo Error Disable. Também podemos habilitar globalmente (udld enable) mas neste caso o comando será aplicado apenas às interfaces óticas (fibra). Em ambos os casos o UDLD deve ser habilitado nos dois dispositivos conectados.
Loop Guard: A funcionalidade Loop Guard faz com que uma interface root ou alternate que pare de receber BPDUs seja colocada em loop inconsistent. Isso porque uma interface (root ou alternate) que estava recebendo BPDUs não deve parar de recebê-los durante o funcionamento normal da rede (pode indicar link unidirecional). Usamos o comando spanning-tree loopguard default (globalmente) para habilita a funcionalidade em todas as portas root e alternate, ou o comando spanning-tree guard loop no modo interface.
Bridge Assurance: Funcionalidade aplicada somente ao RPVST+ e MST, em nem todos switches suportam. Com o Bridge Assurance o switch passa a enviar BPDUs em todas as portas ativas (incluindo portas backup e alternate) a cada 2 segundos (Hello Timer). Se uma interface não recebe o BPDU ela é colocada em Error Disable. Observe que neste caso as duas pontas precisam ter a funcionalidade habilitada, caso contrário o switch com Bridge Assurance vai desabilitar a porta por não receber BPDUs. Usamos o comando spanning-tree bridge assurance (no modo global) e spanning-tree portfast network (modo interface) para habilitar a funcionalidade.
Importante dizer que apesar de alguns dos comandos acima basearem-se no Portfast quando habilitados no modo global, não há nenhuma relação entre eles. Isto é apenas uma forma lógica de escolher as interfaces que vão receber os comandos.
Por exemplo, se habilitamos o BPDU Guard no modo global, o comando será aplicado apenas nas interfaces com Portfast. Isso porque, pela lógica, uma interface do tipo Edge é uma porta de acesso conectada a um endpoint, e não em um switch.
Assim, se desejado, pode-se habilitar o BPDU Guard em uma interface mesmo sem habilitar o Portfast.
Ainda existem outras opções (assim como mais detalhes das funcionalidades listadas acima), que podem ser vistas neste link: Optional STP Features
Até a próxima.