Comandos básicos de diagnósticos de redes e interpretações de resultados

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Ferramentas básicas: Ping e Traceroute

Objetivos

  • Conhecer aplicativos para verificar os parâmetros do TCP/IP
  • Diagnosticar o atraso dos pacotes
  • Traçar rotas em redes TCP/IP

Roteiro de atividades

ifconfig

Todas as atividades serão realizadas na VM Ubuntu.

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.

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.


  1. Analisando os dados obtidos do seguinte exemplo
    ifconfig 
     enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 191.36.9.46  netmask 255.255.255.0  broadcast 191.36.9.255
            inet6 2804:1454:1004:200:a85a:5102:2b69:f30e  prefixlen 64  scopeid 0x0<global>
            inet6 fe80::fe96:6859:7e7b:5a53  prefixlen 64  scopeid 0x20<link>
            inet6 2804:1454:1004:200:77e5:2fd9:4bf6:6544  prefixlen 64  scopeid 0x0<global>
            ether f0:4d:a2:e4:1b:05  txqueuelen 1000  (Ethernet)
            RX packets 124632  bytes 136030754 (136.0 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 38103  bytes 7323375 (7.3 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
            device interrupt 21  memory 0xf7fe0000-f8000000
    
     lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Loopback Local)
            RX packets 3921  bytes 385075 (385.0 KB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 3921  bytes 385075 (385.0 KB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
  2. Conclui-se que:
    1. O sistema em questão possui duas interfaces de rede: enp0s25 e lo.
    2. enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500: A interface está ativa (UP), está com as características BROADCAST,RUNNING,MULTICAST ativas e possui um MTU (Maximum Transmission Unit) de 1500 bytes
    3. inet 191.36.9.46 netmask 255.255.255.0 broadcast 191.36.9.255: Endereço IPv4 associado a interface, sua máscara de rede e seu respectivo endereço de broadcast
    4. inet6 2804:1454:1004:200:a85a:5102:2b69:f30e prefixlen 64 scopeid 0x0<global> : Endereço IPv6 associado a interface, sua máscara de redes e escopo global (roteável)
    5. inet6 fe80::fe96:6859:7e7b:5a53 prefixlen 64 scopeid 0x20<link> : Endereço IPv6 associado a interface, sua máscara de redes e escopo local (não roteável)
    6. inet6 2804:1454:1004:200:77e5:2fd9:4bf6:6544 prefixlen 64 scopeid 0x0<global> : Endereço IPv6 associado a interface, sua máscara de redes e escopo global (roteável)
    7. ether f0:4d:a2:e4:1b:05 txqueuelen 1000 (Ethernet): Endereço Ethernet (Hardware Address). Ethernet é o padrão da camada 2, nesse caso
    8. RX packets 124632 bytes 136030754 (136.0 MB): Quantidade de bytes recebidos, desde o último boot
    9. RX errors 0 dropped 0 overruns 0 frame 0: Quantidade de bytes recebidos com erro, desde o último boot
    10. TX packets 38103 bytes 7323375 (7.3 MB): Quantidade de bytes transmitidos, desde o último boot
    11. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0: Quantidade de bytes transmitidos com erro, desde o último boot
    12. device interrupt 21 memory 0xf7fe0000-f8000000: Parâmetros do sistema operacional
    13. 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.
  3. Agora abra um terminal e 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 (captura de tela).
    2. Qual o significado/utilidade da interface lo?
    3. Quais são os endereços da camada 2 atribuído as mesmas? De onde o sistema obteve esses endereços?
    4. Quais são os endereços IPv4? De onde o sistema obteve esses endereços?
    5. Suas interfaces tem IPv6 configurado? Qual o endereço e escopo dos mesmos? Como foram obtidos? Qual o alcance (é roteável) do mesmo?

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.

  1. Exemplo 1:
    PING 200.135.37.65 (200.135.37.65) 56(84) bytes of data.
    64 bytes from 200.135.37.65: icmp_seq=1 ttl=62 time=0.925 ms
    64 bytes from 200.135.37.65: icmp_seq=2 ttl=62 time=0.743 ms
    64 bytes from 200.135.37.65: icmp_seq=3 ttl=62 time=0.687 ms
    64 bytes from 200.135.37.65: icmp_seq=4 ttl=62 time=0.689 ms
    
    4 packets transmitted, 4 received, 0% packet loss, time 2999ms
    
    rtt min/avg/max/mdev = 0.687/0.761/0.925/0.097 ms
    
  • 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).
  • Cada pacote tem ainda um tempo de vida (ttl – time to live), o qual é decrementado em cada roteador, sendo o pacote descartado quando chegar a zero. Isto evita pacotes perdidos na rede.
  • Quando o ping é interrompido (CRTL-C), uma estatística é apresentada indicando o percentual de pacotes transmitidos, recebidos e perdidos.
  • O tempo de viagem (rtt – round trip time) mínimo (min), médio (avg) e máximo (max) é calculado, assim como o desvio padrão (mdev)

Exercício:

  1. Envie ping para diferentes hosts e compare os tempos de resposta:
    1. No endereço local de loopback;
    2. servidores externos:
      1. ifsc.edu.br
      2. www.uol.com.br
      3. www.aaa.jp
    3. Explique as diferenças entre os tempos de resposta dos ping realizados:
      1. Entre ping para diferentes destinos.
      2. Entre respostas recebidas de um mesmo destino.
    4. Consulte as páginas man e teste o ping com os parâmetros abaixo e descreva suas funcionalidades:
      -c count
      -i intervalo
      -s packetsize
      -t ttl (para um site distante inicie com 1 e vá incrementando, observe as mensagens). Com essa estratégia é possível mapear os roteadores no caminho entre a origem e o destino de um pacote e é exatamente a estratégia utilizada pelo traceroute.

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.

  • Exemplo:
     traceroute -I 191.36.8.3
    
     traceroute to 191.36.8.3 (191.36.8.3), 30 hops max, 60 byte packets
      1  _gateway (191.36.9.254)  1.444 ms  1.709 ms  2.097 ms
      2  172.18.255.251 (172.18.255.251)  0.138 ms  0.151 ms  0.152 ms
      3  191.36.8.3 (191.36.8.3)  1.544 ms  1.551 ms  1.550 ms
    

NOTA: O comando traceroute acima foi executado com o parâmetro -I. Esse comando força o traceroute a utilizar mensagens ICMP. Outra opção é utilizar o comando com o parâmetro -T, forçando o traceroute a utilizar o protocolo TCP para transmissão de seus pacotes. Caso nenhum dos parâmetros (-I ou -T) seja utilizado o traceroute utiliza o protocolo UDP como padrão. Visando barrar o tráfego de torrent em diversas redes, o Firewall bloqueia as mensagens UDP. Deste modo pode não ser possível executar o comando traceroute em algumas redes sem o uso dos parâmetro -I ou -T.

O exemplo mostra a rota dos pacotes entre um computador do Lab. Redes (191.36.8.3) e o servidor www do campus (191.36.8.3). Observe que para cada roteador são realizados três amostras de tempo de ida e volta.

  • Outro exemplo:
     traceroute -I www.polito.it
    
     traceroute to www.polito.it (130.192.181.193), 30 hops max, 60 byte packets
       1  _gateway (191.36.9.254)  1.326 ms  1.410 ms  1.620 ms
       2  172.18.255.251 (172.18.255.251)  0.172 ms  0.183 ms  0.184 ms
       3  sw5-pop-wireless-backup-radio.remep.pop-sc.rnp.br (200.237.201.153)  2.574 ms  2.885 ms  3.114 ms
       4  * * *
       5  popsc-rt21-2189.pop-sc.rnp.br (200.237.202.49)  1.743 ms  1.890 ms  1.882 ms
       6  sc-lansc-rt21.bkb.rnp.br (200.143.253.109)  0.698 ms  0.681 ms  0.680 ms
       7  200.143.255.140 (200.143.255.140)  11.554 ms  11.640 ms  11.607 ms
       8  br-rnp.redclara.net (200.0.204.213)  12.710 ms  12.509 ms  12.217 ms
       9  us-br.redclara.net (200.0.204.9)  128.588 ms  128.600 ms  128.723 ms
      10  redclara-gw.par.fr.geant.net (62.40.125.168)  224.711 ms  224.812 ms  224.744 ms
      11  ae5.mx1.gen.ch.geant.net (62.40.98.182)  232.127 ms  232.146 ms  232.059 ms
      12  ae6.mx1.mil2.it.geant.net (62.40.98.81)  238.833 ms  238.855 ms  238.820 ms
      13  garr-gw.mx1.mil2.it.geant.net (62.40.125.181)  237.648 ms  238.871 ms  238.870 ms
      14  rx1-mi2-rx1-to1.to1.garr.net (90.147.80.218)  240.543 ms  240.734 ms  240.797 ms
      15  rx1-to1-ru-polito.to1.garr.net (193.206.132.34)  242.406 ms  242.406 ms  242.771 ms
    
  • Exercício:
  1. Traçar a rota dos pacotes entre seu computador e diferentes hosts:
    1. servidor ifsc.edu.br.
    2. servidor www.sorbonne-universite.fr.
  2. Explique as diferenças entre os tempos de resposta:
    1. Entre traceroutes para diferentes destinos.
    2. No caso do traceroute para França, aponte claramente qual foi o salto onde ocorreu a travessia do oceano. Como você chegou a essa conclusão?
    3. Entre as três medidas apresentadas para cada salto.
  3. O que justifica um possível tempo de resposta menor para um salto posterior? Por exemplo: pode-se obter no salto 12, no exemplo do traceroute para www.polito.it, um tempo de 238.833 ms e no salto 13 um tempo de 237.648 ms.
  4. Explique as linhas com o caracter *.

Usando as ferramentas ping, ifconfig e traceroute em um cenário com o Imunes

Elaborar um cenário com 2 PCs interligados por dois roteadores,: Rede básica

  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 explique o resultado obtido quando comparado com a figura.