Spanning Tree Protocol (referido com o acrónimo STP - IEEE 802.1D) é um protocolo para equipamentos de rede que permite resolver problemas de loop em redes comutadas cuja topologia introduza anéis nas ligações, auxiliando na melhor performance da rede. O protocolo STP possibilita a inclusão de ligações redundantes entre os computadores, provendo caminhos alternativos no caso de falha de uma dessas ligações.
Fatos críticos sobre o Spanning-Tree:
- Deixar STP habilitado, mas não permitir que ele flua por interfaces específicas pode ser uma solução aceitável.
- Desabilitar STP quase sempre é a solução errada.
- STP existe para proteger sua rede de loops.
- Ser protegido de loops vale o custo de lidar com o mal.
- Estabilidade e previsibilidade são mais importantes que velocidade.
- STP é necessário
- STP quer cortar metade da sua largura de banda.
Sempre tente construir triângulos com seus switches. Tente não construir quadrados. O Switch A é seu bridge raiz STP. O Switch B é sua raiz alternativa. O Switch C deve, como parte de um bom design, estar conectado direta e fisicamente a A e B.
Conectar C a A e Switch D a B e então conectar C a D cria um quadrado e não um triângulo. Isso pode funcionar. Isso vai funcionar. Mas esta é uma configuração menos desejável e deve ser evitada sempre que possível.
Podemos usar o comando show spanning tree no switch A para exibir as informações sobre o Root Bridge, notamos que o Root Bridge do switch tem o valor padrão 32769.
Prioridades STP válidas são de 0 a 65536. Muito poucos switches permitem que você use o valor “0”. A maioria, se não todos, permitirá que você use 4096. Você será tentado a tornar seu root bridge 4096. Não faça isso.
Mantenha 4096 no seu bolso para um dia chuvoso. Só por precaução. Um dia você pode precisar mover sua raiz para um novo switch como parte de um processo de atualização. Ter 4096 disponível facilitará esse processo.
Note: O valor de prioridade da bridge é fornecido em incrementos de 4096. Por exemplo, 4096, 8192, 12288 e assim por diante. O valor padrão é sempre 32768.
Então defina sua raiz para 8192 (SW1) para todas as VLANs, como esta:
spanning-tree mode rapid-pvst
spanning-tree extend system-id
spanning-tree vlan 1-4094 priority 8192
Recomanda-se que se faça esse tipo de alteração em um horário não comercial
Você quer que sua raiz alternativa pretendida (SW2) seja o próximo valor mais baixo, que é 8192+4096=12288
spanning-tree mode rapid-pvst
spanning-tree extend system-id
spanning-tree vlan 1-4094 priority 12288
Agora você quer definir cada switch que está conectado direta e fisicamente (usando um triângulo) ao seu A e B para o próximo valor mais baixo (12288+4096=16384).
spanning-tree mode rapid-pvst
spanning-tree extend system-id
spanning-tree vlan 1-4094 priority 16384
Seu objetivo aqui é tentar manter sua topologia de switch definida para valores STP mais baixos que o valor padrão fora da caixa, que é 32768. Dessa forma, se (quando?) algum idiota tirar um novo dispositivo habilitado para STP da caixa e conectá-lo à sua rede, toda a sua rede deve ter uma prioridade STP mais baixa, evitando assim qualquer tipo de mudança de topologia.
Seu próximo objetivo é IMPOR uma falha e reconvergência PREVISÍVEL de sua topologia no caso de um ou mais switches falharem.
Se um de seus dispositivos 16384 falhar, há um caminho muito claro para todos esses dispositivos 20480 (Se caso acrescentar mais um switch - de destribuição) encontrarem seu caminho para a raiz. Se a raiz é 8192, mas todo o resto da rede é 32768 (padrão), a reconvergência leva mais tempo.
BPDUGuard é amor. BPDUGuard é vida. BPDUGuard não é uma mentira - é bolo.
BPDUGuard é um recurso de segurança de borda que defende a borda da sua rede de todas as formas de mudança de Spanning-Tree estrangeira e não planejada.
Qualquer implementação STP que não esteja usando BPDUGuard na borda do usuário está, na minha opinião, errada.
spanning-tree portfast default
spanning-tree portfast bpduguard default
Podemos preferencialmente habilitar o port-fast e o bpd guard nos switches onde tem algum host
Para teste de funcionamento de todas as configurações, enviamos um ping do PC 1 para o PC 2, e capturamos o trafégo com o wireshark
Captura de alguns pacotes com o wireshark para a análise do STP
Quebramos o switch core da rede, com um delay de 15s o SW2 assumiu
Testamos novamente a conexão entre o PC1 e o PC2 enviando um ping
Contudo o BPDUGuard defenderá sua rede das tempestades de broadcast que ocorrem quando um usuário conecta ambas as portas de um switch Linksys não compatível com STP à sua LAN gerenciada. O Linksys burro não entende STP. Ele não participará de nenhuma detecção de loop.
Mas ele passará os quadros de descoberta BPDU do seu dispositivo LAN diretamente, como um broadcast padrão, e eles serão detectados pelo mesmo dispositivo LAN gerenciado. Seu switch se perguntará: “Por que de repente consigo ouvir minha própria voz?” e a resposta imediata será err-disabledesligar a(s) porta(s) do switch envolvida(s) no loop. Isso frustra o usuário que não consegue entender por que seu switch Linksys não está funcionando. Mas também defende o resto da sua rede do evento de tempestade de broadcast.