My Traceroute, ou MTR, combina o traceroute e o ping para medir a saúde de um caminho de rede.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
O traceroute é uma ferramenta usada para diagnosticar problemas em um caminho de rede. O traceroute é usado para entender o caminho que os pacotes IP estão fazendo de um computador (endereço de IP de origem) para outro (endereço de IP de destino). O comando traceroute (no Linux ou macOS) ou tracert (no Windows) permite entender:
*Tempo de ida e volta (RTT) é a quantidade de tempo que leva para os dados partirem de e chegarem a um determinado ponto em uma rede.
Aqui está um exemplo de traceroute para 1.1.1.1. As linhas com asteriscos (* * *) representam saltos dos quais os pacotes não foram retornados; isso pode acontecer quando os roteadores são configurados para ignorar os pacotes do traceroute. Os milissegundos em cada linha são os tempos de ida e volta da origem até aquele salto para cada pacote (o traceroute envia três pacotes por vez para verificar os resultados).
Exemplo de traceroute |
---|
traceroute para 1.1.1.1 (1.1.1.1), 64 saltos no máximo, pacotes de 52 bytes |
1 myrouter (192.168.47.1) 2.755 ms 1.452 ms 1.325 ms |
2 * * * |
3 69.168.32.65 (69.168.32.65) 18.159 ms 18.658 ms 15.091 ms |
4 * * * |
5 206.126.237.30 (206.126.237.30) 30.453 ms 50.242 ms 24.342 ms |
6 one.one.one.one (1.1.1.1) 29.000 ms 26.784 ms 26.017 ms |
Um caminho de rede se refere à sequência de redes pelas quais um pacote passa para chegar ao seu destino.
A internet é um grande conjunto de redes que se conectam entre si por meio de roteamento. A maioria dos endpoints da internet — por exemplo, um navegador da web tentando acessar um site da web e o servidor que hospeda esse site da web — não fazem parte da mesma rede. Isso significa que, se o referido navegador enviar uma solicitação aos servidores do site, a solicitação provavelmente terá que saltar entre várias redes intermediárias ao longo do caminho.
Uma ferramenta traceroute envia pacotes para um IP de destino e com Tempo de vida (TTL) definido como 1, de forma que o primeiro roteador que os pacotes alcançarem enviará de volta 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é 1) o último pacote atingir o IP de destino ou 2) dois conjuntos de pacotes serem descartados.
Ao fazer isso, a ferramenta permite que você entenda o caminho que seus pacotes estão tomando e o tempo de ida e volta para cada salto, para que você possa solucionar problemas de perda de pacotes e latência.
O traceroute depende do protocolo ICMP (Internet Control Message Protocol) O ICMP é um protocolo de camada de rede usado para teste de erros. Não possui protocolo de transporte associado, é executado diretamente no protocolo da internet (IP). Quando o TTL de um pacote enviado pela ferramenta traceroute é excedido, o roteador envia de volta um pacote ICMP Tipo 11 (Erro de tempo excedido).
Os pacotes de saída (enviados do roteador inicial) podem usar ICMP (padrão nos sistemas operacionais MacOS e Linux) ou UDP (padrão no Windows). A escolha de um protocolo diferente para pacotes de traceroute de saída é uma maneira de obter resultados mais completos se os roteadores ao longo do caminho da rede estiverem configurados para filtrar os pacotes de um determinado protocolo.
My Traceroute (MTR) é uma ferramenta que combina traceroute e ping, que é outro método comum para testar a conectividade e velocidade da rede. Além dos saltos ao longo do caminho da rede, o MTR mostra informações constantemente atualizadas sobre a latência e a perda de pacotes ao longo da rota até o destino. Isso ajuda a solucionar problemas de rede, permitindo que você veja o que está acontecendo ao longo do caminho em tempo real.
O MTR funciona descobrindo o caminho da rede de maneira semelhante ao traceroute e, em seguida, enviando pacotes regularmente para continuar a coletar informações para fornecer uma visão atualizada da integridade e velocidade da rede.
Como o traceroute, o MTR pode usar ICMP ou UDP para pacotes de saída, mas depende do ICMP para pacotes de retorno (Tipo 11: Tempo excedido).
Abaixo estão três exemplos de como ler e tirar conclusões dos resultados do MTR.
MTR desimpedido | |||||||
---|---|---|---|---|---|---|---|
Start: 2020-04-08T13:28:52+0100 | |||||||
HOST: myrouter | Loss% | Snt | Last | Avg | Best | Wrst | StDev |
1.|-- 10.10.1.1 | 0.0% | 10 | 0.3 | 0,4 | 0.3 | 0,4 | 0,0 |
2.|-- 141.0.147.177.bcube.co.uk | 0.0% | 10 | 2.7 | 2.7 | 2.5 | 3.1. | 0,2 |
3.|-- 172.16.28.38 | 0.0% | 10 | 2.8 | 6.4 | 2.8 | 22.2 | 6.1 |
4.|-- 172.17.13.76 | 0.0% | 10 | 1.1 | 2.8 | 1.1 | 14.6 | 4.2 |
5.|-- 172.17.13.49 | 0.0% | 10 | 1.4 | 4.0 | 1.3 | 25.0 | 7.4 |
6.|-- 172.17.13.24 | 0.0% | 10 | 2.5 | 2.7 | 2,0 | 5.1 | 1.1 |
7.|-- one.one.one.one | 0.0% | 10 | 1.3 | 1.2 | 1.2 | 1.3 | 0,0 |
Este exemplo segue o caminho de rede entre o roteador inicial e o servidor DNS 1.1.1.1 da Cloudflare. O resultado do MTR não indica nenhum problema — ele leva 7 saltos para chegar a 1.1.1.1 e nenhum deles indica qualquer perda de pacote.
Perda de pacotes no caminho | |||||||
---|---|---|---|---|---|---|---|
Start: 2020-04-08T12:48:28+0000 | |||||||
HOST: myrouter | Loss% | Snt | Last | Avg | Best | Wrst | StDev |
1.|-- 2400:cb00:207:1000::1 | 0.0% | 10 | 1.1 | 6.0 | 0,6 | 15.7 | 5.9 |
2.|-- 2404:d400:4000:27::1 | 0.0% | 10 | 0,4 | 0,6 | 0,2 | 2.9 | 0,8 |
3.|-- 2404:d400:0:8:: | 0.0% | 10 | 125.7 | 125.7 | 125.7 | 126.2 | 0,2 |
4.|-- 2001:978:2:42::e:1 | 50.0% | 10 | 129.2 | 129.6 | 129.2 | 130.5 | 0,6 |
5.|-- be2846.ccr42.fra03.atlas.cogentco.com | 80.0% | 10 | 151.9 | 139.5 | 127.1 | 151.9 | 17.6 |
6.|-- be2814.ccr42.ams03.atlas.cogentco.com | 80.0% | 10 | 136.2 | 137.0 | 136.2 | 137.8 | 1.1 |
7.|-- be2183.ccr22.lpl01.atlas.cogentco.com | 50.0% | 10 | 146.3 | 146.2 | 145.9 | 146.3 | 0.1 |
8.|-- be3043.ccr22.ymq01.atlas.cogentco.com | 30.0% | 10 | 215.3 | 215.2 | 215.0 | 215.4 | 0,2 |
9.|-- be3260.ccr32.yyz02.atlas.cogentco.com | 90.0% | 10 | 227.8 | 227.8 | 227.8 | 227.8 | 0,0 |
10.|-- be2994.ccr22.cle04.atlas.cogentco.com | 30.0% | 10 | 234.9 | 234.9 | 234.5 | 235.1 | 0,2 |
11.|-- be2718.ccr42.ord01.atlas.cogentco.com | 70.0% | 10 | 233.7 | 233.8 | 233.7 | 233.9 | 0.1 |
12.|-- be2832.ccr22.mci01.atlas.cogentco.com | 50.0% | 10 | 244.8 | 245.1 | 244.8 | 245.5 | 0.3 |
13.|-- be303636.ccr22.den01.atlas.cogentco.com | 30.0% | 10 | 259.6 | 259.6 | 259.3 | 259.8 | 0,2 |
14.|-- be3038.ccr32.slc01.atlas.cogentco.com | 90.0% | 10 | 267.2 | 267.2 | 267.2 | 267.2 | 0,0 |
15.|-- be3110.ccr22.sfo01.atlas.cogentco.com | 10.0% | 10 | 291.0 | 291.1 | 291.0 | 291.4 | 0.1 |
16.|-- be3670.ccr41.sjc03.atlas.cogentco.com | 30.0% | 10 | 292.6 | 292.7 | 292.6 | 292.8 | 0.1 |
17.|-- 2001:550:2:1f::29:2 | 0.0% | 10 | 312.3 | 291.5 | 287.0 | 312.3 | 8.6 |
8.6 | 0.0% | 10 | 298.7 | 299.5 | 298.7 | 306.1 | 2.3 |
19.|-- ??? | 100.0 | 10 | 0,0 | 0,0 | 0,0 | 0,0 | 0,0 |
20.|-- ??? | 100.0 | 9 | 0,0 | 0,0 | 0,0 | 0,0 | 0,0 |
21.|-- 2400:cb00:36:1008::a29e:40e2 | 0.0% | 9 | 302.9 | 302.9 | 302.8 | 303.2 | 0.1 |
Este exemplo mostra o caminho de rede entre o roteador inicial e 2400:cb00:36:1008::a29e:40e2, que é um endereço IPv6 O resultado mostra perda significativa de pacotes em todos os saltos Cogent. No entanto, não há perda de pacotes no último salto (21). Isso indica que o caminho de rede não é realmente problemático. O que está acontecendo é algo frequentemente conhecido como "Policiamento do Plano de Controle".
Conforme discutido anteriormente, o MTR funciona enviando (como padrão) pacotes ICMP Echo, com um aumento de TTL (Tempo de vida) por pacote. Quando o TTL expira, um roteador enviará de volta um ICMP Tipo 11 (tempo excedido), indicando quantos saltos existem do ponto A ao ponto B.
Muitos operadores de rede (incluindo a Cloudflare) definem limites arbitrários na quantidade de pacotes ICMP que tem permissão de alcançar o plano de controle de um roteador. (O plano de controle é o cérebro do roteador.) Um pacote que excede o TTL de um roteador deve ser processado pelo plano de controle. Para evitar que o plano de controle seja sobrecarregado por muitos desses pacotes, um limite de taxa (ou vigilante) é estabelecido e é por isso que vemos toda essa perda nos saltos intermediários, mas não no salto final: os limites da taxa do plano de controle para os roteadores nos saltos intermediários foram excedidos, de modo que os pacotes do Tipo 11 não foram enviados de volta para os pacotes do traceroute que ultrapassaram esses limites, mas os pacotes foram capazes de chegar ao destino com segurança.
Perda de pacotes no caminho de retorno | |||||||
---|---|---|---|---|---|---|---|
Start: 2020-04-08T13:32:30+0000 | |||||||
HOST: myrouter | Loss% | Snt | Last | Avg | Best | Wrst | StDev |
1.|-- 162.158.216.129 | 0.0% | 10 | 0.7 | 6.9 | 0.7 | 62.6 | 19.6 |
2.|-- 118.69.221.209 | 0.0% | 10 | 0,2 | 0.3 | 0,2 | 1.3 | 0.3 |
3.|-- 118.69.252.172 | 0.0% | 10 | 0.7 | 1,0 | 0,6 | 2.9 | 0.7 |
4.|-- 118.69.132.169 | 0.0% | 10 | 11.4 | 11.3 | 11.2 | 11.5 | 0.1 |
5.|-- 118.69.247.64 | 0.0% | 10 | 34.2 | 34.4 | 33.9 | 37.2 | 1,0 |
6.|-- 13335.sgw.equinix.com | 50.0% | 10 | 27.5 | 27.9 | 27.1 | 29.1 | 0,8 |
7.|-- 162.158.161.251 | 30.0% | 10 | 26.8 | 26.8 | 26.8 | 26.8 | 0,0 |
Este exemplo mostra o caminho de rede entre o roteador inicial e 162.158.161.251. O resultado mostra a perda de pacotes nos últimos 2 saltos.
O MTR tem muitas opções. Você pode encontrar mais informações na página de ajuda do MTR: mtr --help
Algumas das opções mais usadas são: