Para ajudar a problemas de conectividade usando a linha de comando, veja como usar o comando traceroute no Linux, explicado com exemplos.
Traceroute é um utilitário de linha de comando que imprime a rota (ou saltos) que um pacote faz para chegar a outro host. É usado para diagnósticos de rede.
Como o próprio nome sugere, o objetivo principal de um traceroute é rastrear a rota IP de uma origem a um destino dentro de uma rede IP, permitindo que os administradores resolvam melhor os problemas de conectividade.
O Traceroute não apenas dirá se você tem conectividade, mas também indicará onde está o problema com precisão e por que isso está acontecendo.
O Traceroute fornece informações completas sobre o caminho que seus dados percorrerão para chegar ao destino.
Por exemplo, se o seu computador (origem) estiver em Los Angeles, Califórnia e o servidor em Nova York (destino), o traceroute identificará o caminho completo, cada salto (os computadores, roteadores ou quaisquer dispositivos que venham entre a origem e o destino) no caminho e o tempo que leva para ir e voltar.
No entanto, na Internet, as mensagens do Traceroute são frequentemente bloqueadas por roteadores em vários Sistemas Autônomos, tornando o Traceroute impreciso em alguns casos.
Traceroute mais comumente usa pacotes de eco ICMP (Internet Control Message Protocol) com valores TTL (Time to Live) variáveis. Para garantir a precisão, cada salto é consultado várias vezes e o tempo de resposta de cada salto é calculado.
O comando traceroute do Linux funciona manipulando o TTL. O objetivo do TTL é limitar por quanto tempo os dados viverão em uma rede IP. Cada pacote de dados enviado recebe um valor TTL.
Quando um pacote de dados atinge um salto no caminho para o dispositivo de destino, o valor TTL é reduzido em 1.
Quando um roteador diminui o valor de contagem de saltos de um pacote para zero, ele envia uma mensagem de erro ICMP “tempo excedido” de volta ao endereço IP de origem no pacote, caso contrário, ele encaminha o pacote adiante.
Como funciona o traceroute do Linux
Uma ferramenta traceroute envia pacotes para um IP de destino e com um TTL definido como 1, de forma que o primeiro roteador que os pacotes alcançarem retorne um erro “tempo excedido”.
Quando o erro retorna, a ferramenta traceroute registra a identidade do primeiro roteador e o tempo de ida e volta, incrementa o TTL e envia novos pacotes, repetindo esse processo até que o último pacote alcance o IP de destino ou dois conjuntos de pacotes sejam descartados.
Como usar o comando traceroute no Linux, explicado com exemplos
Vamos começar com um exemplo simples. Vamos executar o comando traceroute para o domínio www.google.com.
traceroute www.google.com
traceroute para www.google.com (142.251.33.4), 30 saltos no máximo, pacotes de 60 bytes
1 63.133.178.109 (63.133.178.109) 0,210 ms 0,268 ms 0,214 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0,311 ms 0,317 ms 0,354 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 1,260 ms 2,320 ms 2,304 ms
4 as15169.dal33.ip4.gtt.net (199.229.230.118) 3,595 ms 2,464 ms 1,365 ms
5 108.170.240.129 (108.170.240.129) 2.636 ms 108.170.240.193 (108.170.240.193) 1.501 ms 108.170.240.129 (108.170.240.129) 2.620 ms
6 142.251.60.143 (142.251.60.143) 1.480 ms 1.499 ms 142.251.60.145 (142.251.60.145) 1.473 ms
7 dfw25s44-in-f4.1e100.net (142.251.33.4) 1,425 ms 1,622 ms 1,587 ms
A primeira linha nos dá as seguintes informações:O destino (www.google.com) e seu endereço IP (142.251.33.4).
O número de saltos que o traceroute tentará antes de desistir (30 saltos).
O tamanho dos pacotes UDP que estamos enviando (60 bytes).
O restante da saída mostra todos os roteadores pelos quais nossos pacotes passaram. Em cada uma das linhas, podemos encontrar informações sobre o nome e endereço IP do host. Os próximos três valores representam os tempos de ida e volta para um determinado roteador.
No nosso caso, para se conectar a www.google.com, a solicitação precisa passar por sete roteadores diferentes. Na saída, podemos ver que o último (142.251.33.4) é o host de destino para o domínio www.google.com.
Escondendo nomes de dispositivos
Como vimos, às vezes, incluir nomes de dispositivos leva a uma tela desordenada. Para tornar mais fácil ver os dados, você pode usar o comando traceroute no Linux com a opção -n.
traceroute -n www.google.com
traceroute para www.google.com (142.251.33.4), 30 saltos no máximo, pacotes de 60 bytes
1 63.133.178.109 0,142 ms 0,224 ms 0,207 ms
2 69,174.3.1 0,306 ms 0,303 ms 0,323 ms
3 213.254.230.210 11,812 ms 11,784 ms 11,771 ms
4 199.229.230.118 6,516 ms 1,851 ms 4,416 ms
5 108.170.240.129 2,944 ms 108.170.240.193 2,009 ms 108.170.240.129 2,920 ms
6 142.251.60.143 1.928 ms 1.928 ms 1.933 ms
7 142,251,33,4 1,937 ms 1,922 ms 1,926 ms
Definindo o número máximo de saltos com o comando traceroute do Linux
Ao adicionar um parâmetro -m extra, podemos especificar o número máximo de saltos que o traceroute sondará:
traceroute -m 3 www.google.com
traceroute para www.google.com (142.251.33.4), 3 saltos no máximo, pacotes de 60 bytes
163.133.178.109 (63.133.178.109) 0,170 ms 0,187 ms 0,172 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0,299 ms 0,300 ms 0,301 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 2,727 ms 2,753 ms 2,736 ms
Agora, a saída consistirá apenas nos três primeiros roteadores. O valor padrão para o parâmetro -m é 30. Portanto, certifique-se de aumentá-lo nos casos em que o número de saltos pode exceder 30.
Configurando o Número de Pacotes de Sonda por Hop
Por padrão, o traceroute envia três pacotes UDP para cada salto. Podemos usar a opção -q para ajustar isso para cima ou para baixo.
Para acelerar o traceroute, digitamos o seguinte para reduzir o número de pacotes de sondagem UDP para um:
traceroute -q 1 www.google.com
traceroute para www.google.com (142.251.33.4), 30 saltos no máximo, pacotes de 60 bytes
1 63.133.178.109 (63.133.178.109) 0,160 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0,272 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 2.190 ms
4 as15169.dal33.ip4.gtt.net (199.229.230.118) 1.853 ms
5 108.170.240.129 (108.170.240.129) 3.063 ms
6 142.251.60.145 (142.251.60.145) 1.993 ms
7 dfw25s44-in-f4.1e100.net (142.251.33.4) 1.952 ms
Enfim, o comando traceroute do Linux é uma ótima ferramenta para investigar o roteamento da rede, verificar as velocidades de conexão ou identificar gargalos.
Ele está disponível em todas as distribuições populares do Linux. Ao usar essa ferramenta, você frequentemente empregará os métodos descritos neste artigo.
Para mais informações sobre o comando traceroute no Linux, consulte sua página de manual.