O que é My Traceroute (MTR)?

My Traceroute, ou MTR, combina o traceroute e o ping para medir a saúde de um caminho de rede.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Defina "traceroute" e "MTR".
  • Entenda como funcionam o traceroute e o MTR
  • Leia um resultado de MTR para diagnosticar problemas em um caminho de rede

Conteúdo relacionado


Quer saber mais?

Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.

Consulte a política de privacidade da Cloudflare para saber como coletamos e processamos seus dados pessoais.

Copiar o link do artigo

O que é um traceroute?

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:

  • O caminho que seus pacotes estão percorrendo (incluindo os endereços de IP de cada roteador)
  • O RTT* entre a fonte e cada salto, ou roteador por onde passam os pacotes, no caminho de rede

*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

O que é um caminho de rede?

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.

Como funciona o traceroute?

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.

O que é My Traceroute (MTR)?

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).

Como interpretar o MTR

Abaixo estão três exemplos de como ler e tirar conclusões dos resultados do MTR.

MTR #1: Tudo desimpedido

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.

MTR # 2: Perda de pacotes - ou há perda?

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.

MTR #3: Perda de pacotes real

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.

Outras opções de MTR

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:

  • TCP MTR: em vez de usar pacotes ICMP, usa TCP. Você também pode escolher uma porta de destino.
  • UDP MTR: usa UDP em vez de ICMP. Isso pode ser usado para contornar roteadores que estão bloqueando pacotes ICMP ou para testar uma porta específica.
  • Mostrar IPs: mostra os endereços de IP próximos aos registros de cada salto. Isso torna mais fácil relatar problemas upstream.
  • Pesquisar AS: mostra o número AS no MTR.