O Spanning Tree Protocol

Como mencionado, o Spanning Tree Protocol (STP) surgiu para retirar o problema dos loops na camada de enlace. Isso é feito monitorando-se todos os links da Rede. O protocolo foi padronizado pelo IEEE sob o código 802.1D.

O algoritmo começa formando uma Spanning Tree dos switches através de trocas de mensagens, entre os switches, compostas de quadros especiais chamados BPDU’s (Bridge Protocol Data Unity). Uma explicação sobre esse tipo de quadro está na página BPDU.

Após formada, a comunicação entre os switches só é permitida através da Spanning Tree. (Caso haja dúvida no conceito de Spanning Tree, a página Spanning Tree possui uma breve explicação).

Apesar de que pontes não precisam de endereço MAC para operar, no protocolo que forma a Spanning Tree é necessário que cada ponte contenha um identificador. Consequentemente, a cada ponte é associado um identificador que contém um campo de prioridade de 16 bits seguido de um endereço MAC único. Similarmente, as portas dos switches recebem um indentificador.

Como mencionado, após a formação da Spanning Tree, apenas um caminho entre o swich raiz e os switches nos ramos será permitido. Para tornar isso possível, em cada switch, cada porta deve ser rotulada como porta designada ou como porta de raiz. Uma porta designada é responsável por enviar quadros provenientes da raiz para um ramo, em direção às folhas. Uma porta de raiz é responsável pelo fluxo contrário, ou seja, é responsável por enviar um quadro proveniente de um ramo que vá em direção à raiz. Como cada nó, ou switch, possui apenas um nó pai, ou seja, um nó que se aproxima da raiz, cada switch pode possuir apenas uma porta de raiz. A exceção é a raiz, que não possui nenhuma porta raiz, apenas portas designadas.

Um esquema é mostrado na figura a seguir, note que o switch raiz (R) possui apenas portas designadas.

Retirado de [1]

Além disso, para formar a Spanning Tree, é necessário determinar quais pontes possuem o menor custo e que, portanto, irão compor as arestas da árvore. A métrica utilizada para determinar o menor custo é utilizar a velocidade das portas do switch, onde o custo é inversamente proporcional à velocidade da porta. A tabela a seguir possui alguns custos sugeridos para cada velocidade possível de porta.

Retirado de [1]

A convergência do algoritmo se dá após serem realizadas as seguintes etapas:

1 – Eleição do switch raiz.

2 – Eleição, em cada switch, da porta raiz.

3 – Eleição, em cada switch, das portas designadas

Eleição do switch principal

Cada switch envia BPDUs tentando se eleger a switch raiz. Ao receber um BPDU, o switch compara o campo de prioridade do identificador do switch de origem. Caso a prioridade no BPDU seja menor que a prioridade do próprio switch (ou em caso de empate na prioridade, caso o endereço MAC seja menor) o switch continua enviando quadros BPDUs. Entretanto, os switches que receberem quadros BPDUs de um swtich que possui prioridade menor, ou MAC menor quando a prioridade é igual, param de enviar BPDUs. Ou seja, um switch continua a tentar se eleger até que encontre um candidato melhor. No final, apenas o melhor candidato continuará tentando se eleger e, portanto, será eleito.

Eleição da porta raiz

Após a eleição do switch raiz, cada um dos demais switches deve eleger uma porta raiz. A eleição da porta raiz é realizada de tal forma que o custo acumulado seja o menor possível. Para uma maior compreensão, o exemplo abaixo ilustra essa seleção:

Retirado de [2]

Nesse exemplo, o switch Cat-A foi escolhido como raiz. Então, ele envia para todas suas portas (1/1 e 1/2) BPDUs com o campo de custo nulo (custo = 0). Cat-B e Cat-C recebem em suas portas 1/1 esses BPDUs. Como o custo dos enlaces até cada um dos switches é de 19, ambos os switches incrementam esse custo para 19. Portanto, teremos tanto Cat-B quanto Cat-C, com custo 19 nas portas 1/1. Então, cada switch (Cat-B e Cat-C) envia por sua porta 1/2 um pacote BPDU. Cat-B recebe o BPDU enviado por Cat-C em sua porta 1/2, como o custo do enlace entre eles é de 19, ele incrementa 19 no custo do pacote recebido e, portanto, teremos o custo para a porta 1/2 de Cat-B igual a 38. Consequentemente, Cat-B elege a porta 1/1 a porta raiz, pois o custo associado a esta porta (19) é menor que o custo associado à porta 1/2 (38). O mesmo ocorre no switch Cat-C.

Mais interessante que o exemplo acima, seria se o custo do enlace entre Cat-B e Cat-C fosse pequeno, digamos 1, e o custo entre algum dos switches (Cat-C, por exemplo) e o switch raiz fosse grande, 40 por exemplo. Nesse caso, Cat-C receberia um BPDU com custo 0 em 1/1, incrementaria 40 a esse custo. Já na porta 1/2, ele receberia um BPDU com custo 19 (que foi incrementado por Cat-B como no exemplo anterior) e incrementaria o custo do enlace da sua porta 1/2 (1). Resultando num custo 20 na porta 1/2. Consequentemente, Cat-C elegeria 1/2 como porta raiz e a topologia da árvore seria diferente da do exemplo anterior.

Eleição das portas designadas

A eleição das portas designadas é parecida com a eleição da porta raiz. Aqui também se considera o custo acumulado pela porta. Porém o custo acumulado é comparado entre as portas nos extremos dos links, sendo a de menor custo acumulado eleita como porta designada. Para uma melhor compreensão, o mesmo exemplo será utilizado:

Adaptado de [2]

Como mencionado anteriormente, as portas do switch raiz possuem custo acumulado 0 e enviam BPDUs com esse custo. Cat-B e Cat-C recebem esses quadros e incrementam de 19 cada. Logo, as portas 1/1 de Cat-B e Cat-C terão custo 19. Olhando para a figura, o segmento 1 de enlace liga Cat-A a Cat-B e termina na porta 1/1 de Cat-A e na porta 1/1 de Cat-B. Portanto, ao comparar os custos das portas 1/1 de Cat-A e 1/1 de Cat-B, a porta com menor custo será eleita como porta designada. Ou seja, como os custos são 0 e 19, respectivamente, a porta eleita é a porta 1/1 de Cat-A. O mesmo acontece entre as portas 1/2 de Cat-A e 1/1 de Cat-C no segmento 2, resultando na porta 1/2 de Cat-A como porta designada. Entretanto, pode haver empate, como acontece no segmento 3. Nele, ambas as portas recebem BPDUs com custo 19 e incrementam para 38. Consequentemente, as portas 1/2 de Cat-B e de Cat-C estão empatadas. Nesse caso, utiliza-se o endereço MAC da porta como critério de desempate. Supondo que a porta 1/2 de Cat-B tenha o menor endereço MAC ela é eleita a porta designada. Já a porta 1/2 de C é bloqueada e não poderá enviar quadros BPDU mais, apenas recebê-los. Também não poderá enviar, nem receber, quadros Ethernet.

Estados das portas

Outra diferença nos switches sobre os quais o STP opera é que alguns estados adicionais das portas são necessários. A seguir, estão listados os possíveis estados:

1 - Desativada: A porta não recebe, nem envia quadros quaisquer.

2 - Bloqueada: A porta não é utilizada, mas é tida como uma alternativa de envio de quadros para a raiz. Ela não pode enviar quadros BPDU, porém ela pode recebâ-los. Não pode enviar nem receber quadros de dados (Ethernet).

3 - Escutando: É um estado intermediário entre as portas "Bloqueada" e "Enviando". Ela difere da porta Bloqueada pois pode enviar quadros BPDUs além de recebê-los.

4 - Aprendendo: A porta está prestes a se tornar ativa (estado "Enviando"), mas deve atualizar seu banco de dados de filtro.

5 - Enviando: Essa porta está ativa, filtrando e enviando quadros quaisquer.

Página Anterior
Próxima Página