terça-feira, 18 de março de 2008

STP - Spanning Tree Path Cost

Uma questão mais simples sobre o processo de “Spanning Tree”, essencial para o entendimento de eliminação de loops de rede a nível de enlace em switchs:

By default, which of the following factors determines the spanning-tree path cost?

A. It is the individual link cost based on latency

B. It is the sum of the costs based on bandwidth

C. It is the total hop count

D. It is dynamically determined based on load

O protocolo STP (“Spanning Tree Protocol”) é definido por um padrão IEEE chamado 802.1d, e foi inicialmente desenvolvido pela Digital Equipment Corporation (DEC). Como costuma ocorrer com freqüência num mundo dominado por padrões tecnológicos, a especificação oficial da IEEE para o STP não é de todo compatível com a versão criada pela DEC. Contudo, há atualmente um esforço em desenvolver um protocolo STP que seja efetivamente compatível com a especificação inicial, que será chamado 802.1w.

De forma simples, o protocolo STP evita que ocorram loops a nível de rede em switches de camada 2 (camada de Enlace, no modelo OSI). Atuando de forma intermitente, o algoritmo do STP (chamado, de forma óbvia, Spanning Tree Algorithm) cria uma topologia ótima (ou quase ótima) da rede, na qual não ocorram rotas redundantes, e links de switches que sirvam de conexão a rotas que possam ocasionar redundância são desligados em determinados momentos (principalmente quando os switches conectando segmentos de uma rede estão em processo de convergência – uma fase necessária quando os switches negociam quais rotas eles manterão, e quais links precisarão ser bloqueados). Para que isso ocorra, cada porta de um switch pode estar em um dos seguintes estados: Blocking (Bloqueado), Listening (Escutando), Learning (Aprendendo), Forwarding (Repassando) e Disabled (Desabilitada). Os nomes são auto-explicativos, mas uma observação importante merece ser dada para 2 desses estados: o estado Learning significa que o switch está efetivamente preenchendo sua tabela de endereços MAC, usados no roteamento a nível de enlace; e o estado Listening, um meio termo entre Blocking e Forwarding, significa que nem a porta está bloqueada (ou seja, recebe os frames de sincronização do STP – também chamados de BPDUs, ou “Bridge Protocol Data Unit”), nem muito menos pode repassar frames adiante. O objetivo disso tudo é que depois do switch ter passado pelo necessário estágio de convergência (passagem da porta de Blocking para Forwarding), e assim a rede esteja sem loops de roteamento, ele possa enfim repassar para frente os frames recebidos...

Voltando à resposta, a convergência no STP passa por uma etapa em que uma das portas é eleita a “porta designada”, que vem a ser a porta com a largura de banda mais alta – é particularmente importante descobrir quais das portas num switch oferece a maior vazão, porque vai ser unicamente por essa porta que o vai ser calculado o caminho mais curto para o outro switch (sim, para o STP, o caminho mais curto é aquele que passa pela porta com maior largura de banda... apesar de que seria possível inúmeras outras medidas, o STP aceita apenas essa)

Ora, se um caminho (path) pode ser definido por uma seqüência de portas, e uma vez que em cada switch há apenas uma dessas portas que sirvam de caminho, então o custo de uma rota pode ser definido como a soma dos custos de cada uma das portas no caminho. Letra (B) a correta.