Comandos básicos de diagnósticos de redes e interpretações de resultados
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.
- 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
- Conclui-se que:
- O sistema em questão possui duas interfaces de rede: enp0s25 e lo.
- 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
- 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
- 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)
- 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)
- 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)
- ether f0:4d:a2:e4:1b:05 txqueuelen 1000 (Ethernet): Endereço Ethernet (Hardware Address). Ethernet é o padrão da camada 2, nesse caso
- RX packets 124632 bytes 136030754 (136.0 MB): Quantidade de bytes recebidos, desde o último boot
- RX errors 0 dropped 0 overruns 0 frame 0: Quantidade de bytes recebidos com erro, desde o último boot
- TX packets 38103 bytes 7323375 (7.3 MB): Quantidade de bytes transmitidos, desde o último boot
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0: Quantidade de bytes transmitidos com erro, desde o último boot
- device interrupt 21 memory 0xf7fe0000-f8000000: Parâmetros do sistema operacional
- 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.
- Agora abra um terminal e utilize o comando ifconfig para verificar o estado de suas interfaces e responda:
- Quantas e quais interfaces de rede sua máquina possui? Liste (captura de tela).
- Qual o significado/utilidade da interface lo?
- Quais são os endereços da camada 2 atribuído as mesmas? De onde o sistema obteve esses endereços?
- Quais são os endereços IPv4? De onde o sistema obteve esses endereços?
- 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.
- 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:
- Envie ping para diferentes hosts e compare os tempos de resposta:
- No endereço local de loopback;
- servidores externos:
- ifsc.edu.br
- www.uol.com.br
- www.aaa.jp
- Explique as diferenças entre os tempos de resposta dos ping realizados:
- Entre ping para diferentes destinos.
- Entre respostas recebidas de um mesmo destino.
- 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:
- Traçar a rota dos pacotes entre seu computador e diferentes hosts:
- servidor ifsc.edu.br.
- servidor www.sorbonne-universite.fr.
- Explique as diferenças entre os tempos de resposta:
- Entre traceroutes para diferentes destinos.
- 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?
- Entre as três medidas apresentadas para cada salto.
- 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.
- 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,:
- Execute um ifconfig em cada PC e nos roteadores. Discuta os resultados no caso dos roteadores.
- Execute um ping do PC1 em direção ao PC2;
- Execute um ping modicando o retardo de um dos links para 50ms;
- Execute um traceroute entre PC1 e PC2 e explique o resultado obtido quando comparado com a figura.