Mudanças entre as edições de "RCO2-lab4"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 47: Linha 47:
 
sudo brctl setbridgeprio vlan1 1000
 
sudo brctl setbridgeprio vlan1 1000
 
</syntaxhighlight>Qual dos switches é agora o switch raiz ?
 
</syntaxhighlight>Qual dos switches é agora o switch raiz ?
# Como comentado no passo 11, o STP usa também os custos dos enlaces para decidir quais interfaces de rede desativar. Em redes reais o custo do enlace é definido pela tecnologia da interface de rede, segundo esta tabela (obtida da norma IEEE 802.1d):<br><br>[[imagem:Stp-custos.png]]<br><br>No entanto, em nossos experimentos com Netkit esse custo deve ser definido manualmente,
+
# Como comentado no passo 11, o STP usa também os custos dos enlaces para decidir quais interfaces de rede desativar. Em redes reais o custo do enlace é definido pela tecnologia da interface de rede, segundo esta tabela (obtida da norma IEEE 802.1d):<br><br>[[imagem:Stp-custos.png]]<br><br>No entanto, em nossos experimentos com Netkit esse custo deve ser definido manualmente, já que as interfaces ethernet das máquinas virtuais são emuladas. Modifique os custos dos enlaces da sua rede da seguinte forma:<br><br>- Entre switch1 e switch2: 100 Mbps<br>- Entre switch1 e switch2: 10 Mbps<br>- Entre switch2 e switch3: 1 Gbps<br><br>Isso pode ser feito com o comando:<syntaxhighlight lang=bash>
já que as interfaces ethernet das máquinas virtuais são emuladas. Modifique os custos dos enlaces da sua rede da seguinte forma:
+
sudo brctl setpathcost vlan1 ethN custo
#*Entre switch1 e switch2: 100 Mbps
+
</syntaxhighlight>... sendo que ethN é a interface ethernet (ex: eth0) e custo é um dos valores mostrados na tabela acima.<br><br>Após essas modificações, verifique como estão as informações do STP em cada switch.
#*Entre switch1 e switch2: 10 Mbps
+
# O experimento de hoje finaliza com a reprodução em uma rede real do que foi visto com o Netkit. Para isso devem ser usados os switches do laboratório, que devem ser interligados em anel. A condução será feita pelo professor, que mostrará no projetor o comportamento da rede com enlaces redundantes, e o efeito de se ativar o STP nos switches.
#*Entre switch2 e switch3: 1 Gbps
 

Edição das 15h39min de 31 de outubro de 2012

Objetivos

  • Criar redes locais com enlaces redundantes
  • Usar o protocolo STP para que a rede opere com redundância

Introdução

A interligação de segmentos de uma LAN pode conter enlaces redundantes para prover tolerância a falhas: caso um enlace falhe, o que isolaria uma parte da rede, outro enlace pode ser usado para manter a conectividade. No entanto a existência de enlaces redundantes cria loops (“circuitos fechados”) na rede, e isto causa sérios problemas:

  1. Os switches não conseguem localizar corretamente as estações, pois a repetição de quadros para estações ainda desconhecidas, ou quadros em broadcast, faz com que a estação de origem apareça a cada repetição em um segmento diferente da rede.
  2. Quadros em broadcast ficam presos eternamente nos loops, consumindo parte da capacidade da rede. À medida que mais quadros em broadcast forem transmitidos, a capacidade disponível se reduz, até que em algum momento chegue a um colapso.


Stp-exemplo.png


A solução para esse problema é eliminar os loops desabilitando alguns enlaces, de forma que sempre exista apenas um caminho entre cada par de estações na rede. Isto se faz com um algoritmo chamado de Spanning Tree, e que é implementado pelo protocolo STP (Spanning Tree Protocol), definido na norma IEEE 802.1d. Esse protocolo identifica um switch como sendo o nó raiz da rede, e faz com que cada outro switch tenha apenas um enlace em direção à raiz. A seleção do nó raiz depende dos identificadores dos switches, chamados de Bridge ID, e a escolha dos enlaces a serem mantidos depende do custo do caminho até a raiz. O protocolo funciona com o envio periódico de mensagens de configuração, chamadas de BPDU (Bridge PDU), por todos os switches da rede.

Roteiro

O estudo sobre STP usará como conceito uma rede local em que três switchs 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

  1. Crie o experimento do Netkit correspondente à rede da ilustração 1, interligando o switches e definindo os endereços IP dos computadores.
  2. Inicie o experimento. Quando todas as máquinas virtuais estiverem rodando, desative a interface no switch1 que o interliga ao switch 3; assumindo que seja a interface eth0, você deve executar este comando:
    sudo ifconfig eth0 down
    
    Em seguida 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:
    sudo 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 ?
  6. Ative o protocolo STP em todos os switches usando este comando:
    sudo brctl vlan1 stp on
    
    ... e então repita os passos de 3 e 4. A rede funcionou normalmente desta vez ?
  7. 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 ?
  8. Reative a interface do switch1. Como se comportou o ping enquanto isso ?
  9. 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) ?
  10. Entre os passos 6 e 9 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:
    sudo brctl showstp vlan1
    sudo brctl showmacs vlan1
    
    Além disso, vamos também executar o tcpdump na interface do switch1 que o conecta ao switch3:
    sudo tcpdump -i eth0 -ln ether proto stp
    
  11. O protocolo STP se baseia em prioridades dos switches (ou bridges na terminologia do protocolo) e de suas portas, além de custos de enlaces. A partir dessas informações o protocolo desativa seletivamente algumas interfaces de rede de alguns switches, de forma que a rede não apresente caminhos fechados (ou loops). As prioridades de switch e de porta podem ser modificadas para que o gerente de rede tenha algum controle sobre as topologia de rede que o STP pode gerar (isto é, sobre os enlaces da rede que o STP deixará ativados). Verifique na sua rede qual dos switches é o switch raiz (root bridge). Em seguida escolha um dos outros dois switches e execute este comando:
    sudo brctl setbridgeprio vlan1 1000
    
    Qual dos switches é agora o switch raiz ?
  12. Como comentado no passo 11, o STP usa também os custos dos enlaces para decidir quais interfaces de rede desativar. Em redes reais o custo do enlace é definido pela tecnologia da interface de rede, segundo esta tabela (obtida da norma IEEE 802.1d):

    Stp-custos.png

    No entanto, em nossos experimentos com Netkit esse custo deve ser definido manualmente, já que as interfaces ethernet das máquinas virtuais são emuladas. Modifique os custos dos enlaces da sua rede da seguinte forma:

    - Entre switch1 e switch2: 100 Mbps
    - Entre switch1 e switch2: 10 Mbps
    - Entre switch2 e switch3: 1 Gbps

    Isso pode ser feito com o comando:
    sudo brctl setpathcost vlan1 ethN custo
    
    ... sendo que ethN é a interface ethernet (ex: eth0) e custo é um dos valores mostrados na tabela acima.

    Após essas modificações, verifique como estão as informações do STP em cada switch.
  13. O experimento de hoje finaliza com a reprodução em uma rede real do que foi visto com o Netkit. Para isso devem ser usados os switches do laboratório, que devem ser interligados em anel. A condução será feita pelo professor, que mostrará no projetor o comportamento da rede com enlaces redundantes, e o efeito de se ativar o STP nos switches.