Mudanças entre as edições de "IER60808: Caminhos fechados e STP"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 51: Linha 51:
 
# '''RSTP é melhor que STP:''' o protocolo RSTP é uma versão melhorada do STP, a qual resolve o problema de caminhos fechados mais rapidamente.
 
# '''RSTP é melhor que STP:''' o protocolo RSTP é uma versão melhorada do STP, a qual resolve o problema de caminhos fechados mais rapidamente.
 
# '''STP roda de forma independente para cada VLAN:''' ao configurar os switches, deve-se observar que o STP roda de forma independente para cada VLAN.
 
# '''STP roda de forma independente para cada VLAN:''' ao configurar os switches, deve-se observar que o STP roda de forma independente para cada VLAN.
# '''O custo das portas é definido pela taxa de bits que elas suportam''': quanto maior a taxa de bits, menor  custo da porta. Isso faz sentido, pois significa quem um quadro levaria menos tempo para ser transmitido por uma porta com maior taxa de bits.
+
# '''O custo das portas é definido pela taxa de bits que elas suportam''': quanto maior a taxa de bits, menor  custo da porta. Isso faz sentido, pois significa quem um quadro levaria menos tempo para ser transmitido por uma porta com maior taxa de bits. Os custo definidos pelo padrão são mostrados na tabela a seguir.
 +
 
 +
[[imagem:ier-Stp-custo-portas.png]]
 +
<br>''Custos de portas usados pelo STP (FONTE: [https://en.wikipedia.org/wiki/Spanning_Tree_Protocol#Path_cost verbete STP na Wikipedia])''
  
  

Edição das 16h29min de 29 de junho de 2020


  • Capítulo 16 do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Behrouz Forouzan.
  • Capítulo 5 do livro "Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição, de James Kurose.
  • Capítulo 4 do livro "Redes de Computadores, 4a ed.", de Andrew Tanenbaum.


No laboratório de Redes de Computadores, um certo dia um aluno acidentalmente pegou um cabo e ligou em duas tomadas de rede. Quer dizer, ele fez algo assim com um dos switches da rede:


Curto-lan.png


Para ver a consequência dessa ação aparentemente inocente, experimente reproduzi-la no laboratório, e analise o que aconteceu.


O problema dos ciclos (caminhos fechados) em uma rede local ethernet


O video a seguir resume o texto desta seção:

Introdução ao STP


A interligação acidental de duas portas de um switch cria um ciclo na rede local (loop). Mas isso pode ser feito também de forma intencional, pois em LANs grandes pode ser desejável ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto é algo que pode ocorrer em uma rede local, seja por acidente ou com a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Um caso em que uma rede possui um ciclo intencionalmente colocado pode ser visto na LAN abaixo:

LAN-anel-stp.png


Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa trancaria devido a um efeito chamado de tempestade de broadcasts (broadcast storm). Isso acontece porque, ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manualmente tira o sentido de ter tal configuração para tolerância a falhas (e não impede um "acidente" como aquele descrito no início desta secão), por isso foi criado o protocolo STP (Spanning Tree Protocol, definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa.


O STP soluciona o problema dos caminhos alternativos na LAN, conferindo redundância na rede. Porém isso não é perfeito, e problemas podem surgir relacionados à forma com que o STP altera a topologia da rede.

Alguns problemas relacionados ao STP


Basicamente, para usar STP deve-se observar o seguinte:

  1. Escolha do switch raiz: cada switch deve ter um número que informa sua prioridade para o STP, e quanto menor o valor, maior a prioridade. O switch raiz é aquele com a menor prioridade dentre todos os switches. Em caso de empate, o switch com menor valor de endereço MAC é escolhido.
    • Lembre que o switch raiz é o switch usado como referência dentro da rede para escolher quais links entre switches serão mantidos ativados, e quais serão desativados. Quando um switch possui links alternativos para chegar até o switch raiz, o link que proporciona um caminho mais curto (ou custo menor) é mantido e os demais são desativados.
  2. RSTP é melhor que STP: o protocolo RSTP é uma versão melhorada do STP, a qual resolve o problema de caminhos fechados mais rapidamente.
  3. STP roda de forma independente para cada VLAN: ao configurar os switches, deve-se observar que o STP roda de forma independente para cada VLAN.
  4. O custo das portas é definido pela taxa de bits que elas suportam: quanto maior a taxa de bits, menor custo da porta. Isso faz sentido, pois significa quem um quadro levaria menos tempo para ser transmitido por uma porta com maior taxa de bits. Os custo definidos pelo padrão são mostrados na tabela a seguir.

Ier-Stp-custo-portas.png
Custos de portas usados pelo STP (FONTE: verbete STP na Wikipedia)


Alguns termos usados pelo STP:

Quando o STP está em ação, ele muda o estado de operação das portas do switch. Essas informações podem ser vistas no status do STP, e isso depende do modelo de cada switch.

  1. Porta raiz: em cada switch, a porta que o liga em direção ao switch raiz se chama porta raiz.
  2. Portas designadas: as portas de um switch que permancem ativadas são chamadas de portas designadas. Essas portas operam normalmente, enviando e recebendo quadros. Uma porta designada , do ponto de vista do STP, está no caminho de menor custo até o switch raiz.
  3. Portas bloqueadas: as portas de um switch que são desativadas são denominadas portas bloqueadas. Essas portas apenas enviam e recebem mensagens do protocolo STP, ignorando quaisquer outros quadros.

Um exemplo do STP em ação

Se o STP for ativado na rede mostrada na seção anterior, o resultado seria o mostrado na figura a seguir. Nesse exemplo supõe-se que as prioridades de bridge (Bridge ID) foram definidas como indicado na figura, e todas as portas de switch operam como mesma taxa de bits (i.e. apresentam o mesmo custo).


Ier-LAN stp solved.jpg Um exemplo de uma LAN em que STP foi ativado


De acordo com a figura, o switch no topo foi escolhido como switch raiz, pois seu valor de Bridge ID (que é 8192) é o menor dentre os três switches. O primeiro a se notar é que todas suas portas se tornam designadas, e portanto operam normalmente. Note também que todas as portas de switches que conectam computadores se mantêm designadas, pois elas não propiciam a formação de loops. Nos outros dois switches, as portas que os conectam diretamente ao switch raiz são definidas como portas raiz. De fato, essas portas estão nos caminhos de menor custo até o switch raiz. Finalmente, o switch do lado direito tem uma porta bloqueada. Essa porta o conecta ao switch da esquerda, e o link entre elas forma um caminho fechado na rede. Em situações normais, a porta do switch com maior custo para chegar até a raiz seria bloqueada, mas nesse caso há um empate (ambos switches têm mesmo custo até a raiz). Sendo assim, o STP uso como critério de desempate o Bridge ID dos switches, bloqueando a porta do switch com maior Bridge ID.

Atividade

O estudo sobre STP usará como conceito uma rede local em que três switches formam um anel. Essa rede possui uma estrutura típica para uma pequena empresa, como se pode ver na figura abaixo.

LAN-anel-stp.png

Parte 1: O efeito de caminhos fechados

  1. Execute o experimento do Netkit correspondente à rede da ilustração 1. Essa rede inicialmente está com o ciclo rompido (uma das interfaces de um dos switches está desativada).
  2. Inicie o experimento. Quando todas as máquinas virtuais estiverem rodando, tente fazer um ping de alguma máquina virtual para outra. Esse ping funcionou normalmente ?
  3. Reative a interface do switch1 (com ifconfig eth0 up), e repita o ping porém tendo como alvo algum outro computador. Há algum efeito no funcionamento da rede ? O que aconteceu depois disso ?
  4. Execute o tcpdump no computador que é alvo do ping, e colete o tráfego que chega em sua interface eth0. Você precisará usar este comando:
    tcpdump -i eth0 -ln
    
    O que você conclui quanto ao tráfego na rede ? Descreva exatamente o que está acontecendo e qual a causa.
  5. Mantendo o tcpdump em execução desative novamente a interface do switch1 que o liga ao switch3. O que aconteceu no padrão de tráfego mostrado pelo tcpdump ? E como ficou o desempenho da rede ? Como você relaciona isso com o que foi concluído no ítem 4 ?

Parte 2: O protocolo STP como possível solução

Com base na rede da parte 1 deste roteiro, faça o seguinte:

  1. Ative o protocolo STP em todos os switches usando este comando:
    brctl stp vlan1 on
    
    ... e então repita os passos 3 e 4 da parte 1 do roteiro. A rede funcionou normalmente desta vez ?
  2. Execute o ping a partir de um computador que está conectado ao switch1 para algum computador conectado ao switch3. Enquanto isto, desative a interface do switch1 que o conecta ao switch3. O ping continuou a funcionar ? Houve alguma interrupção, mesmo que temporária ?
  3. Reative a interface do switch1. Como se comportou o ping enquanto isso ?
  4. O que você conclui sobre o papel do protocolo STP em redes locais em que há ligações alternativas (i.e: a topologia física da rede apresenta laços ou ciclos) ?
  5. Entre os passos 1 e 3 a rede mudou seu funcionamento devido ao uso do STP. Para investigar em detalhes o que esse protocolo fez nos switches, vamos repetir o experimento, porém a cada etapa consultando as informações sobre o STP em cada switch. Assim, a cada modificação feita na rede (ativação ou desativação de interfaces), vamos executar os seguintes comandos em cada switch:
    brctl showstp vlan1
    brctl showmacs vlan1
    
    Além disso, vamos também executar o tcpdump na interface do switch1 que o conecta ao switch3:
    tcpdump -i eth0 -ln
    

Parte 3: Usando o STP em switches reais

  1. O experimento de hoje finaliza com a reprodução em uma rede real do que foi visto com o Netkit2. Para isso devem ser usados os switches do laboratório, que devem ser interligados em anel, com computadores conectados.
  2. Sem ativar o STP nos switches, experimente fazer um ping de um computador a outro. Ao mesmo tempo, use o wireshark para monitorar o tráfego em sua interface ethernet.
    • O ping tem resposta ?
    • O que acontece com a rede ? É possível comunicação entre os computadores ? Como se comportam os switches (veja seus leds) ?
    • O que mostra o wireshark ? Há alguma característica em comum entre os quadros capturados ?
  3. Desconecte algum dos cabos entre os switches, de forma a desfazer o anel, e repita o experimento com ping. Qual a diferença ?
  4. Com os switches sem formar um anel, e usando o manual do switch, ative o protocolo STP.
  5. Teste a comunicação com ping. O que aconteceu ?
  6. Com o ping em funcionamento, restabeleça a topologia em anel nos switches. Observe o comportamento do ping.
    • As respostas do ping continuaram normalmente, sem interrupção ?
    • Caso tenham interrompido, as respostas reapareceram depois de um tempo ?
    • Caso tenham reaparecido, quanto tempo demorou para retornarem ?
  7. Ainda com o ping em andamento, novamente desfaça o anel.
    • As respostas do ping continuaram normalmente, sem interrupção ?
    • Caso tenham interrompido, as respostas reapareceram depois de um tempo ?
    • Caso tenham reaparecido, quanto tempo demorou para retornarem ?
  8. O que se pode concluir quanto ao STP ? Funciona ? É rápido ?
  9. Experimente ativar o RSTP, que é uma versão mais rápida do STP, e repita o experimento.