Redes de Camada 2 – Uma Introdução ao Protocolo Spanning Tree

Neste artigo é apresentado um resumo da operação do protocolo spanning tree, muito utilizado em redes de camada 2 (layer 2) para prevenção de loops.

Neste artigo, falaremos sobre as redes de camada 2 ou a Camada de Enlace de Dados, sendo esta o segundo nível de referência do modelo OSI de sete camadas.

Sempre que temos pela frente o desafio de criar o design de uma rede operando em camada dois, temos que fazer a seguinte pergunta:

  • Como ter a maior confiabilidade e alta disponibilidade possível?

Essa é uma tarefa que os designers de rede encontram em seu dia a dia e para atingir esse nível de confiabilidade e disponibilidade, várias tecnologias são utilizadas para prover proteção à camada 2.

Dentre estas tecnologias estão:

  • Protocolo Spanning Tree (STP);
  • Virtual local area networks (VLANs);
  • Trunking;
  • Link Aggregation (LAG);
  • Multichassis Link Aggregation (mLAG);
  • First Hop Redundancy Protocol (FHRP).

Aqui falaremos sobre o protocolo spanning tree (STP).

Protocolo Spanning Tree

Spanning Tree (STP) é um mecanismo de control plane para redes ethernet. Ele é utilizado para criar uma topologia livre de loops sendo o protocolo mais utilizado em redes de camada 2.

Como as redes ethernets trabalham baseadas no aprendizado através do data plane e os quadros ethernet não possuem TTL para prevenção de loops, o STP atua nesta prevenção bloqueando os caminhos redundantes na rede, a figura 1 ilustra como o STP age bloqueando alguns links.

Em redes de dados temos a definição de control plane e data plane. O control plane é basicamente a parte da rede que controla como os pacotes de dados são encaminhados, ou seja, como os dados são enviados de um lado para o outro e vice versa. Já o data plane é quem efetivamente encaminha os dados.

Existem muitas versões do STP, sendo as mais comuns:

  • 802.1D: Implementação tradicional do STP;
  • 802.1W: Conhecido como RSTP (Rapid Spanning Tree), sendo voltado para implementações em larga escala, esta versão possuí melhorias em seu tempo de convergência.
  • 802.1S: Multiplo Spanning Tree (MST), que tem seu uso voltado para ambientes realmente muito grandes (com muitas VLANs), essa versão funciona agregando múltiplas VLANs em uma única instância de STP, reduzindo assim a carga de CPU sempre que há uma convergência na rede.

Como o STP atua para prevenir loops

Como dito anteriormente, a forma como o STP atua para criar uma topologia livre de loops é bloqueando certas interfaces, evitando assim que hajam caminhos redundantes na topologia, então, vamos ver como o STP realmente trabalha.

Vamos utilizar a topologia da figura 2 como base.

Na topologia acima, observamos que a forma como os links estão conectados, cria uma topologia em triangulo, gerando assim um ambiente em que loops ocorrerão. A figura 3 exemplifica isso.

Então, como o STP faz para evitar que loops ocorram? O primeiro passo que o STP realiza é a eleição de quem será o root bridge da topologia, pois será a partir do root bridge que o algoritmo do STP irá calcular os links livres de loop na rede. Em outras palavras, o root bridge é o ponto central da rede.

Aqui há uma consideração muito importante, durante a fase de design da rede é muito importante se atentar aonde o root bridge estará localizado (logicamente na rede), pois um design incorreto acarretará em diversos problemas de performance sempre que houver uma alteração na topologia.

O processo de eleição do root bridge se inicia com todos os switches da rede trocando quadros chamados de BPDUs (bridge protocol data unit), e dentro desses BPDUs existem duas informações muito importantes que o STP irá utilizar:

  • MAC address;
  • Prioridade.

Estas duas informações juntas, são utilizadas para termos o bridge ID.

Como o STP usa o bridge ID para o processo de decisão de escolha do root bridge? Vamos entender como isso funciona:

  1. Primeiro todos os switches da rede enviam os BPDUs com as informações de endereço MAC e sua respectiva prioridade;
  2. Por padrão, todos os switches possuem uma prioridade de 32768 (este valor pode ser alterado através de configurações, mas para o exemplo utilizaremos o valor padrão);
  3. O switch com o menor bridge ID vence a eleição de root bridge.

Mas quem será o root bridge? Como o valor de prioridade é o mesmo para todos, o endereço MAC será o elemento utilizado nessa decisão, neste caso, o switch com o menor MAC ADDRESS vence a eleição, em nosso exemplo, o switch 1 será eleito o root bridge desta topologia.

Uma vez finalizado o processo de escolha do root bridge, o switch 1 colocará suas portas em modo designado ou seja, elas estarão sempre no estado de encaminhamento (forwarding).

Já os switches não root “non root bridges” irão analisar qual o melhor caminho até o root (shortest path) e essas portas serão conhecidas como root ports.

A escolha do menor caminho é baseada na velocidade que a porta opera. Na tabela abaixo são apresentados os custos em relação à velocidade da porta. Para nosso exemplo, vamos manter as coisas simples e utilizar os valores baseados na revisão do STP 801.D (1998).

Velocidade da Porta802.1D (original)802.1D (1998)802.1D (2004)
10 Mbps1001002.000.000
100 Mbps1019200.000
1 Gbps1420.000
10 Gbps122.000
Tabela 1

A partir das informações da tabela 1, vemos que o link diretamente conectado do switch 2 até o switch1 possuí custo 4, o mesmo vale para o link diretamente conectado do switch 3 para o switch 1. Qualquer outro caminho irá aumentar esse custo. Por exemplo, vamos imaginar que o switch 3 tente chegar até o root bridge através do switch 2, seu custo total será 8. O mesmo vale para o switch 2 se ele tentar chegar até o root através do switch 3.

Assim, sabemos que as portas Gi 0/1 no switch 2 e Gi 1/0 no switch 3 serão as root ports.

A etapa final consiste em saber qual porta entre o switch 2 e o switch 3 será bloqueada para evitar que haja loop em nossa topologia. O processo de escolha é baseado no bridge ID, recordando, o bridge ID é formado pelo MAC + prioridade. Como a prioridade é igual entre os switches (32768) a escolha se dará pelo menor MAC, em nosso caso, o switch2 possuí o menor MAC, fazendo com que o switch 3 bloqueie sua porta, criando assim uma topologia livre de loop.

Como a porta do switch 3 fica bloqueada, ela é posta com o status de “A ou Alternate”.

Agora vamos entender como cada porta opera:

  • Root port: É a porta selecionada em todos os non-root bridges, são as portas mais próximas do root bridge, baseadas em seus respectivos custos até o root bridge. Somente pode existir uma root port em um switch non-root bridge.
  • Designated port: É uma porta em que é permitido o encaminhamento de tráfego. Em um switch root bridge, todas as portas são designated ports. Em um swicth non-root bridge, as designated ports são calculadas por segmento, baseado no custo de cada interface até o root bridge.
  • Alternate port e backup port: Uma alternate e backup port é a porta que opera no estado de “blocking” para evitar loops.
  • Disable ports: É a porta do switch que é colocada no estado de shut down.

Existem muitos outros conceitos sobre o STP que não abordamos aqui, a ideia é manter as coisas simples para facilitar o entendimento de como o protocolo funciona. Agora que sabemos como é sua operação, podemos agregar novos conhecimentos, mas isso falaremos em um outro post.

Deixe um comentário