LabsRedesSubs

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

Laboratório 1

Laboratório 1 - Conceitos Básicos de Rede e Ferramentas Básicas de Trabalho

Objetivos

Após este laboratório o aluno deverá ser capaz de:

  • Verificar a configuração de interfaces de rede de um hospedeiro usando a ferramenta ifconfig, identificando:
    • O endereço de hardware da interface (endereço MAC);
    • O endereço IPv4 e IPv6 da Interface com as suas máscaras de rede;
  • Testar a conectividade entre dois hospedeiros usando a ferramenta ping e ganhar insight em relação aos atrasos na rede;
  • Observar a rota de pacotes IP entre dois hospedeiros usando a ferramenta traceroute;
  • Capturar pacotes de uma interface usando a ferramenta wireshark.
  • Analisar pacotes ICMP gerados pelo ping identificando:
    • o encapsulamento de pacotes,
    • as camadas de protocolos envolvidas
    • os endereços em cada camada;
    • o funcionamento básico de um protocolo (ICMP - echo request/echo reply), ganhando insight em relação as entidades de protocolos comunicantes.

Material e Pré-condições

  • SSH client para acessar uma Máquina Virtual Na NUVEM IFSC SJ
  • Virtualbox com Máquina Virtual com a Appliance Redes instalado.
  • Software para recortar janela
  • OpenOffice ou equivalente para fazer relatório.

Visão da Estrutura do Laboratório

A rede do laboratório em uso segue o modelo apresentado no diagrama da Figura 1 (endereçamento pode ser diferente).

Figura 1 - Diagrama da rede do laboratório

Os Laboratórios de Redes de Computadores estão equipados com N+1 (N = número de computadores para alunos) computadores conectados em rede e com acesso a Internet. A rede local do laboratório tem endereço IP 192.168.1.0/24. A máscara de rede /24 indica que o último byte do endereço é utilizado para identificar cada máquina, por exemplo 192.168.1.1, 192.168.1.2, etc.

Neste semestre devido a pandemia, não estaremos fisicamente no laboratório mas vamos "logar" remotamente em um máquina virtual da nuvem do IFSC SJ para ganharmos alguns "insights" sobre a rede.

Roteiro de atividades

Você deve fazer um documento no openoffice com os recortes de tela e comentários conforme a seguir. Anote claramente a PARTE (etapa) e o número da etapa que está sendo documentado.

Parte 0

  1. Logar em um computador da NUVEM IFSC SJ usando o cliente SSH. Seguir as instruções do professor Esta etapa depende do sistema que você está usando. Caso seja Linux basta fazer:
     
    ssh -o TCPKeepAlive=no -o ServerAliveInterval=15 id_aluno@NUMIP
    

    TAREFA: Faça um recorte da tela após ter logado e mostre o usuário através do comando:

     id

Parte 1: Observando interfaces do sistema com ifconfig

O aplicativo ifconfig pode ser utilizado para visualizar a configuração ou configurar uma interface de host em redes TCP/IP. Se nenhum argumento for passado na chamada do ifconfig, o comando mostra a configuração atual de cada interface de rede.

NOTA: o ifconfig está sendo substituído pelo comando ip. A última versão do Ubuntu já não traz mais o ifconfig por default.

Consultar as páginas man ifconfig do Linux para maiores detalhes sobre o funcionamento deste aplicativo, o qual permite: *ativar/desativar a interface,

  • configurar o endereço IP,
  • definir o tamanho da MTU,
  • redefinir o endereço de hardware se a interface suporta,
  • redefinir a interrupção utilizada pelo dispositivo, entre outros.

Através do comando ifconfig' pode-se observar os resultados

 

$ ifconfig 
eth0      Link encap:Ethernet  Endereço de HW 64:51:06:1a:f3:da  
          inet end.: 172.18.18.14  Bcast:172.18.63.255  Masc:255.255.192.0
          endereço inet6: fe80::6651:6ff:fe1a:f3da/64 Escopo:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1
          pacotes RX:415237 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:118109 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:1000 
          RX bytes:364658695 (364.6 MB) TX bytes:18315199 (18.3 MB)
          IRQ:18 

lo        Link encap:Loopback Local  
          inet end.: 127.0.0.1  Masc:255.0.0.0
          endereço inet6: ::1/128 Escopo:Máquina
          UP LOOPBACK RUNNING  MTU:65536  Métrica:1
          pacotes RX:6688 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:6688 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:0 
          RX bytes:1057934 (1.0 MB) TX bytes:1057934 (1.0 MB) 
  • O sistema em questão possui duas interfaces de rede: eth0 e lo
  • Link encap:Ethernet: Configuração da interface Ethernet 0 (primeira)
  • Endereço de HW 64:51:06:1a:f3:da: É o endereço da placa de rede, camada 2
  • inet end.: 172.18.18.14 Bcast:172.18.63.255 Masc:255.255.192.0: Endereço IPv4 associado a interface, seu respectivo endereço de broadcast e mascara de rede
  • endereço inet6: fe80::6651:6ff:fe1a:f3da/64 Escopo:Link: Endereço IPv6 de escopo local gerado por autoconfiguração
  • UP BROADCAST RUNNING MULTICAST: Significa que a interface está ativa (UP), responde a requisições de broadcast (pode ser desabilitado no kernel) e também pode ser associada a tráfegos multicast
  • MTU: 1500: Maximum Transfer Unit – Tamanho máximo do pacote suportado pelo enlace que é do tipo Ethernet
  • Os demais parâmetros são estatísticas da respectiva interface, como por exemplo, pacotes transmitidos, recebidos etc
  • A interface lo: Qualquer tráfego que um computador envie em uma rede loopback é endereçada ao mesmo computador. O endereço IP mais usado para tal finalidade é 127.0.0.1 no IPv4 e ::1 no IPv6. O nome de domínio padrão para tal endereço é localhost. Em sistemas Unix, a interface loopback é geralmente chamada de lo ou lo0.

TAREFA: Agora utilize o comando ifconfig para verificar o estado de suas interfaces e responda:

  1. Quantas e quais interfaces de rede sua máquina possui? Liste.
  2. Quais são os endereços da camada 2 atribuído as mesmas? De onde o sistema obteve esses endereços?
  3. Quais são os endereços IPv4? De onde o sistema obteve esses endereços?
  4. Suas interfaces tem IPv6 configurado? Qual o endereço e escopo dos mesmos? Como foram obtidos? Qual o alcance (é roteável) do mesmo?
  5. Use o link *Verificando a estrutura do endereço IP para explorar a estrutura do seu endereço IPv4. Recorte e cole no relatório (citando que foi extraído da página).

Parte 2: Testando a conectividade com o ping

Aplicativo ping permite a um usuário verificar se um host remoto está ativo. É bastante utilizado para detectar problemas de comunicação na rede. O ping está baseado no envio de mensagens de solicitação de eco (echo request) e de resposta de eco (echo reply). Estas mensagens fazem parte do rol de mensagens do protocolo ICMP, que é um protocolo de reportagem de erros, a ser estudado mais tarde, componente do protocolo IP.

O ping é um dos principais comandos a disposição do administrador de rede no sentido de verificar a conectividade em rede. Por exemplo, se houver resposta de um ping a partir de um servidor remoto, significa que a máquina local está rodando corretamente o TCP/IP, o enlace local está funcionando corretamente, o roteamento entre a origem e o destino está operando, e por fim, a máquina remota também está rodando corretamente o TCP/IP.

Consultar as páginas man do ping para verificar as possibilidades de uso deste aplicativo.

Exemplo 1:

 
ping 191.36.0.94
PING 191.36.0.94 (191.36.0.94) 56(84) bytes of data.
64 bytes from 191.36.0.94: icmp_seq=1 ttl=60 time=2.46 ms
64 bytes from 191.36.0.94: icmp_seq=2 ttl=60 time=0.513 ms
64 bytes from 191.36.0.94: icmp_seq=3 ttl=60 time=0.573 ms
64 bytes from 191.36.0.94: icmp_seq=4 ttl=60 time=0.558 ms
^C
--- 191.36.0.94 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.513/1.026/2.463/0.830 ms
  1. No exemplo foram enviados quatro pacotes ICMP, cada um com um número de seqüência (icmp_seq), os quais foram recebidos com sucesso com o tempo de viagem assinalado (time)
  2. Cada pacote tem ainda um tempo de vida (ttltime to live), o qual é decrementado em cada roteador, sendo o pacote descartado quando chegar a zero; isto evita pacotes perdidos na rede
  3. Quando o ping é interrompido (CRTL-C), uma estatística é apresentada indicando o percentual de pacotes transmitidos, recebidos e perdidos
  4. O tempo de viagem (rttround trip time) mínimo (min), médio (avg) e máximo (max) é calculado, assim como o desvio padrão (mdev)


TAREFA: Como exercício envie ping para diferentes hosts e compare os tempos de resposta (documente recortando e colando as telas). Faça ping:

  1. no endereço local de loopback;## servidor e roteador da rede da escola;
  2. servidores externos:
    www.ifsc.edu.br
    www.uol.com.br
    www.nasa.com
    
    e explique as possíveis diferenças entre os tempos de resposta dos ping realizados.
  3. Consulte as páginas man e teste o ping com os parâmetros abaixo e descreva suas funcionalidades:
    1. -c count
    2. -i intervalo
    3. -s packetsize
    4. -t ttl (para um site distante inicie com 1 e vá incrementando, observe as mensagens)
  4. Observe que também é possível realizar ping em endereços no formato IPv6, por exemplo:
     ping6 www.sj.ifsc.edu.br
    
  5. Tente o ping6 para outros sites.

Parte 3: Verificando rotas com o traceroute

O traceroute é capaz de traçar uma rota aproximada entre dois hosts. Este comando usa mensagens ICMP. Para determinar o nome e o endereço dos roteadores entre a fonte e o destino, o traceroute na fonte envia uma série de datagramas IP ordinários ao destino. O primeiro datagrama tem o TTL (time to live – tempo de vida) igual a 1, o segundo 2, o terceiro 3, e assim por diante, e inicia temporizadores para cada datagrama. Quando o enésimo datagrama chega ao enésimo roteador, este verifica que o tempo de sobrevida do datagrama acaba de terminar. Pelas regras do IP, o datagrama é então descartado e uma mensagem ICMP de advertência tempo de vida excedido é enviada a fonte com o nome do roteador e seu endereço IP. Quando a resposta chega de volta a fonte, a mesma calcula o tempo de viagem em função dos temporizadores.

O traceroute envia datagramas IP encapsulados em segmentos UDP a um host destino. Todavia escolhe um número de porta destino com um valor desconhecido (maior que 30000), tornando improvável que o host destino esteja usando esta porta. Quando o datagrama chega ao destino uma mensagem ICMP porta inalcançável é gerada e enviada a origem. O programa traceroute precisa saber diferenciar as mensagens ICMP recebidas – tempo excedido e porta inalcançável – para saber quando a rota foi concluída.

  1. Exemplo:
    sudo traceroute -I 200.135.37.65
    traceroute to 200.135.37.65 (200.135.37.65), 30 hops max, 60 byte packets
     1  192.168.1.1 (192.168.1.1)  0.225 ms  0.216 ms  0.368 ms
     2  172.18.0.254 (172.18.0.254)  1.236 ms  1.235 ms  1.343 ms
     3  hendrix.sj.ifsc.edu.br (200.135.37.65)  1.331 ms  1.313 ms  1.414 ms
    

O exemplo mostra a rota dos pacotes entre um computador do Lab. Redes (192.168.1.1) e o servidor hendrix (200.135.37.65). Observe que para cada roteador são realizados três amostras de tempo de ida e volta. Veja pelo mapa da rede do Campus São José que entre estes dois computadores, sistemas finais, existem dois roteadores intermediários, máquina do professor e Switch camada 3 (VLANs).

  1. Traçar a rota dos pacotes entre seu computador (no caso a VM) e diferentes hosts:
    1. servidor e roteador da rede da escola
    2. servidores externos.
  1. Explique as possíveis diferenças entre os tempos de resposta de cada uma das amostras do traceroute
  2. Explique as linhas com o caracter *.
  3. Fazendo uso das ferramentas desse laboratório, refaça o diagrama da rede do campus apontando claramente os novos endereços IPs associados aos roteadores.
  4. Observe que também é possível realizar traceroute em endereços no formato IPv6, por exemplo:
     sudo traceroute -I6 ipv6.br
    
  5. Tente o traceroute no IPv6 para outros sites.

Parte 4: Usando as ferramentas ping, ifconfig e traceroute em um cenário com o imunes

TAREFA: Elabora um cenário com 2 PCs interligados por dois roteadores:

  1. Execute um ifconfig em cada PC e nos roteadores. Discuta os resultados no caso dos roteadores.
  2. Execute um ping do PC1 em direção ao PC2;
  3. Execute um ping modicando o retardo de um dos links para 50ms;
  4. Execute um traceroute entre PC1 e PC2 e tente explicar os resultados obtidos.

Referências adcionais



Laboratório 2