O objetivo deste artigo é destacar as melhores práticas para configuração de interfaces de modo a fazer pleno uso das extensões e enhancements do Spanning Tree, visando assim um ambiente mais estável e previsível. A figura abaixo ilustra o posicionamento de cada feature num cenário típico:
Uma visão geral sobre o Bridge Assurance (BA)
O bridge assurance pode ser usado para proteger a rede de loops de comutação decorrentes de falhas como links unidirecionais ou outras falhas de software que podem afetar o spanning-tree. Ele também pode ser usado para proteção em situações onde um dispositivo continue encaminhando tráfego mesmo quando por alguma razão não esteja mais rodando o spanning-tree.
O Bridge Assurance é habilitado por padrão no Nexus7000, e pode apenas ser desabilitado globalmente. Esta feature é suportada apenas pelo Rapid PVST+ e MST, podendo ser habilitada apenas em portas to tipo "network" que sejam ponto-a-ponto. Vale destacar que as duas extremidades do link devem suportar Bridge Assurance, ou em caso contrário a porta vai para o status "blocked".
Como sabemos, normalmente as BPDUs seguem do root bridge para os ramos da árvore de encaminhamento. Com o Bridge Assurance habilitado, BPDUs são enviados a cada período de "hello time" por todas as portas operacionais no modo "network", incluindo portas nos estados "alternate" e "backup". Se a porta não recebe não recebe BPDUs por um período de tempo específico, a porta é movida para o estado "blocking" e não é usada no processo de cálculo de root port. Uma vez que a porta receba u BPDU, ela resume sua operação transicionando pelos estados spanning tree normalmente.
Resumo das extensões STP:
STP port type Network - portas conectadas ponto-a-ponto a outra bridge. As portas deste tipo são conectadas apenas a swiches layer 2 ou bridges.
STP port type Edge (ou Portfast) - portas conectadas a hosts. As portas deste tipo transicionam imediatamente para o estado "forwarding", sem passar pelos estados "listening" e "learning" (essa transição imediata era previamente configurada como a feature proprietária PortFast). Portas conectadas à hosts não devem receber bridge protocol data units (BPDUs) STP. Se uma porta operational no modo spanning tree edge port recebe um BPDU, ela imediatamente returna ao spanning tree port type normal, passando assim por todas as transições de estado normais.
STP port type Normal - O modo de operação padrão do spanning tree port type é o "normal", que basicamente significa que o bridge assurance não será aplicado. Este modo de operação "normal" permite que o comportamento atual do spanning tree seja mentido, sendo necessário em segmentos compartilhados ou portas conectadas a bridges que não suportem bridge assurance.
Resumo dos STP Enhancements:
BPDUguard - quando configurado numa interface, o BPDU guard desabilita a porta se um BPDU é recebido, independente do port type em uso.
BPDUfilter - o BPDU Filtering é usado para prevenir que um dispositivo envie ou receba BPDUs numa dada porta.
Rootguard - Quando habilitado numa porta, o Root Guard não permite que esta porta se torne uma root port. Se um BPDU recebido desencadear uma convergência no STP que faça uma designated port tornar-se uma root port, essa porta é colocada no estado "root-inconsistent (blocked)". Esta feature é usada para reforçar o posicionamento do root bridge na rede.
Loopguard - o Loop Guard ajuda a prevenir bridging loops que poderiam ocorrer em função de uma falha que tornasse um link ponto-a-ponto unidirecional (capaz de somente enviar ou somente receber dados). Esta feature é útil apenas em links ponto-a-ponto interligando switches. Se a porta estava recebendo BPDUs anteriormente, o Loop Guard coloca a port no estado "loop-inconsistent (blocking)" até que a porta volte a receber BPDUs novamente. Desabilitando o Loop Guard, todas as portas são movidas do estado "loop-inconsistent" para o estado "listening".