Você pode usar o traceroute
comando do Linux para identificar o trecho lento da jornada de um pacote de rede e solucionar problemas de conexões de rede lentas. Vamos mostrar como!
Índice
Quando você avalia como traceroute
funciona, a compreensão dos resultados fica muito mais fácil. Quanto mais complicada a rota que um pacote de rede deve seguir para chegar ao seu destino, mais difícil é identificar onde pode estar ocorrendo qualquer desaceleração.
A rede local (LAN) de uma pequena organização pode ser relativamente simples. Provavelmente terá pelo menos um servidor e um ou dois roteadores. A complexidade aumenta em uma rede de longa distância (WAN) que se comunica entre diferentes locais ou via Internet. Seu pacote de rede encontra (e é encaminhado e roteado por) uma grande quantidade de hardware, como roteadores e gateways .
Os cabeçalhos de metadados em pacotes de dados descrevem seu comprimento, de onde veio, para onde está indo, o protocolo que está usando e assim por diante. A especificação do protocolo define o cabeçalho. Se você puder identificar o protocolo, poderá determinar o início e o fim de cada campo no cabeçalho e ler os metadados.
traceroute
usa o conjunto de protocolos TCP / IP e envia pacotes de protocolo de datagrama do usuário . O cabeçalho contém o campo Time to Live (TTL), que contém um valor inteiro de oito bits. Apesar do que o nome sugere, ele representa uma contagem, não uma duração.
Um pacote viaja de sua origem até seu destino por meio de um roteador. Cada vez que o pacote chega a um roteador, ele diminui o contador TTL. Se o valor TTL chegar a um, o roteador que recebe o pacote diminui o valor e percebe que agora é zero. O pacote é então descartado e não encaminhado para o próximo salto de sua jornada porque “atingiu o tempo limite”.
O roteador envia uma mensagem de tempo excedido do protocolo de controle de mensagens da Internet (ICMP) de volta à origem do pacote para informá-lo que o tempo do pacote expirou. A mensagem Time Exceeded contém o cabeçalho original e os primeiros 64 bits dos dados do pacote original. Isso é definido na página seis da Solicitação de Comentários 792 .
Portanto, se traceroute
enviar um pacote, mas definir o valor TTL para um, o pacote só chegará até o primeiro roteador antes de ser descartado. Ele receberá uma mensagem de tempo excedido do ICMP do roteador e poderá registrar o tempo que levou para a viagem de ida e volta.
Em seguida, ele repete o exercício com TTL definido como 2, que falhará após dois saltos. traceroute
aumenta o TTL para três e tenta novamente. Este processo se repete até que o destino seja alcançado ou o número máximo de saltos (30, por padrão) seja testado.
Alguns roteadores têm bugs. Eles tentam encaminhar pacotes com TTL zero, em vez de descartá-los e gerar uma mensagem de tempo excedido de ICMP.
De acordo com a Cisco , alguns provedores de serviços da Internet (ISPs) limitam a taxa de mensagens ICMP que seus roteadores transmitem.
Alguns dispositivos são configurados para nunca enviar pacotes ICMP. Isso geralmente ocorre para garantir que o dispositivo não seja coagido involuntariamente a participar de uma negação de serviço distribuída , como um ataque smurf .
traceroute
tem um tempo limite padrão para respostas de cinco segundos. Se não receber uma resposta dentro desses cinco segundos, a tentativa é abandonada. Isso significa que as respostas de roteadores muito lentos são ignoradas.
traceroute
já estava instalado no Fedora 31, mas deve ser instalado no Manjaro 18.1 e Ubuntu 18.04. Para instalar traceroute
no Manjaro, use o seguinte comando:
sudo pacman -Sy traceroute
Para instalar traceroute
no Ubuntu, use o seguinte comando:
sudo apt-get install traceroute
Como vimos acima, o traceroute's
objetivo é obter uma resposta do roteador a cada salto do computador até o destino. Alguns podem ser calados e não dar nada, enquanto outros provavelmente derramarão o feijão sem escrúpulos.
Como exemplo, exibiremos um traceroute
para o site do Castelo de Blarney na Irlanda, lar da famosa Pedra de Blarney . Diz a lenda que se você beijar a Pedra de Blarney, será abençoado com o “dom da palavra”. Esperemos que os roteadores que encontramos ao longo do caminho sejam adequadamente tagarelas.
Nós digitamos o seguinte comando:
traceroute www.blarneycastle.ie
A primeira linha nos dá as seguintes informações:
traceroute
tentará antes de desistir.Todas as outras linhas contêm informações sobre um dos saltos. Antes de nos aprofundarmos nos detalhes, porém, podemos ver que há 11 saltos entre nosso computador e o site do Castelo de Blarney. O salto 11 também nos diz que chegamos ao nosso destino.
O formato de cada linha de salto é o seguinte:
Vamos revisar o que temos a seguir:
traceroute
expirou.Então, foi um saco misturado. Alguns dispositivos jogaram bola, alguns responderam, mas não nos disseram seus nomes, e outros permaneceram completamente anônimos.
No entanto, chegamos ao destino, sabemos que está a 11 saltos de distância, e o tempo de ida e volta da viagem foi de 13,773 e 14,715 milissegundos.
Como vimos, às vezes incluir nomes de dispositivos leva a uma exibição desordenada. Para facilitar a visualização dos dados, você pode usar a opção -n
(sem mapeamento).
Para fazer isso com nosso exemplo, digitamos o seguinte:
traceroute -n blarneycastle.ie
Isso torna mais fácil selecionar grandes números para tempos de ida e volta que podem indicar um gargalo.
O salto 3 está começando a parecer um pouco suspeito. Da última vez, ele respondeu apenas duas vezes e, desta vez, ele respondeu apenas uma vez. Nesse cenário, está fora de nosso controle, é claro.
No entanto, se você estivesse investigando sua rede corporativa, valeria a pena cavar um pouco mais fundo nesse nó.
Talvez se estendermos o período de tempo limite padrão (cinco segundos), obteremos mais respostas. Para fazer isso, usaremos a opção -w
(tempo de espera) para alterá-lo para sete segundos. (Observe que este é um número de ponto flutuante.)
Nós digitamos o seguinte comando:
traceroute -w 7.0 blarneycastle.ie
Isso não fez muita diferença, então as respostas provavelmente estão expirando. É provável que os saltos anônimos estejam sendo propositalmente secretos.
Por padrão, traceroute
envia três pacotes UDP para cada salto. Podemos usar a opção -q
(número de consultas) para ajustar isso para cima ou para baixo.
Para acelerar o traceroute
teste, digitamos o seguinte para reduzir o número de pacotes de sondagem UDP que enviamos para um:
traceroute -q 1 blarneycastle.ie
Isso envia uma única sonda para cada salto.
Podemos definir o valor inicial de TTL para algo diferente de um e pular alguns saltos. Normalmente, os valores TTL são definidos como um para o primeiro conjunto de testes, dois para o próximo conjunto de testes e assim por diante. Se definirmos para cinco, o primeiro teste tentará chegar ao salto cinco e pular os saltos de um a quatro.
Como sabemos que o site do Castelo de Blarney tem 11 saltos deste computador, digitamos o seguinte para ir direto para o Salto 11:
traceroute -f 11 blarneycastle.ie
Isso nos dá um bom relatório condensado sobre o estado da conexão com o destino.
traceroute
é uma ótima ferramenta para investigar o roteamento da rede, verificar as velocidades de conexão ou identificar gargalos. O Windows também possui um tracert
comando que funciona de forma semelhante.
No entanto, você não deseja bombardear dispositivos desconhecidos com torrents de pacotes UDP e tenha cuidado ao incluir traceroute
em scripts ou trabalhos autônomos.
A carga traceroute
pode ser colocada em uma rede pode impactar negativamente seu desempenho. A menos que você esteja em uma situação do tipo consertar agora, você pode querer usá-lo fora do horário comercial normal.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…