tracert, traceroute e mtr: Como Ler Cada Salto de Verdade

O diagnóstico de saltos de rede via linha de comando exige entender que tracert (Windows) e traceroute (Linux/macOS) capturam apenas um retrato estático da rota unidirecional usando o tempo de vida dos pacotes, enquanto o mtr realiza uma amostragem contínua para revelar intermitências reais, como perda de pacotes e jitter. A leitura correta dessas ferramentas não é literal: picos de latência ou perdas isoladas no meio do caminho geralmente indicam apenas limites de processamento do roteador para tráfego de controle, e não uma falha na conexão física ou no trânsito de dados.

Principais Aprendizados

  • O mtr é o padrão-ouro na indústria por combinar ping e traceroute em tempo real, evidenciando problemas intermitentes que testes únicos ignoram.
  • Perda de pacotes em um salto intermediário que não se propaga até o destino final é um falso positivo causado por políticas de proteção de roteadores (rate limiting).
  • O roteamento moderno é assimétrico; o caminho de ida mapeado pelas ferramentas raramente é o mesmo caminho de volta, exigindo testes bidirecionais.

O Mecanismo por Trás dos Saltos (TTL e ICMP)

Todas as ferramentas de rastreamento de rotas operam sob o mesmo princípio fundamental: a exploração intencional do campo Time-To-Live (TTL) no cabeçalho IP. O TTL foi concebido para evitar que pacotes fiquem em loop infinito na rede. As ferramentas enviam pacotes com um TTL do pacote configurado inicialmente como 1, depois 2, e assim sucessivamente. Cada roteador no caminho decrementa esse valor. Quando o TTL chega a zero, o roteador descarta o pacote e devolve uma mensagem de erro ICMP Time Exceeded (Tipo 11), revelando seu endereço IP.

Apesar da mecânica comum, existe uma divergência de protocolo padrão dependendo do sistema operacional. O comando tracert no Windows utiliza pacotes ICMP Echo Request para descobrir a rota. Em contrapartida, o traceroute em sistemas Unix/Linux e macOS utiliza datagramas UDP direcionados a portas altas (geralmente entre 33434 e 33534). Historicamente, em 1993, a IETF chegou a propor a RFC 1393, uma opção IP nativa para o Traceroute visando reduzir o tráfego gerado, mas a proposta não ganhou adoção na indústria e hoje é considerada um protocolo legado.

Diagrama de funcionamento do Traceroute e TTL

Por Que o MTR Assumiu o Protagonismo

O mtr (originalmente batizado de "Matt's traceroute" em 1997) consolidou-se como a ferramenta definitiva para diagnóstico de redes. A limitação crítica do tracert e do traceroute tradicional é que eles fornecem uma fotografia estática. Se um problema de rede for intermitente — como oscilações de jitter que fazem uma chamada de voz picotar — uma sondagem única fatalmente deixará o problema passar despercebido.

O mtr resolve essa lacuna enviando sondagens contínuas (geralmente um pacote por segundo) para cada salto descoberto, gerando estatísticas dinâmicas e em tempo real. Segundo documentações de referência, como as da DigitalOcean sobre diagnósticos de rede, a capacidade do MTR de agregar dados de latência e perda ao longo do tempo é indispensável para isolar gargalos flutuantes. A ferramenta de código aberto continua sendo mantida ativamente, com sua versão estável 0.96 lançada em julho de 2024.

Como Identificar Falsos Positivos de Perda de Pacotes

Um dos erros de interpretação mais comuns na leitura de um traceroute ou MTR é assumir que qualquer perda de pacotes (Packet Loss) em um salto específico representa uma falha na infraestrutura. É frequente observar, por exemplo, 80% de perda no salto 4, enquanto o destino final (salto 10) exibe 0% de perda.

O consenso da área aponta que isso ocorre devido ao Control Plane Policing (CoPP). Roteadores de operadoras aplicam limites de taxa (rate limiting) para a geração de respostas ICMP. O objetivo é proteger a CPU do roteador contra sobrecargas (como ataques DDoS), descartando pacotes de sondagem excedentes. Contudo, esse descarte afeta apenas o tráfego direcionado ao roteador, e não o tráfego de dados real que passa através do hardware de encaminhamento. A regra de ouro é: se a perda de pacotes em um salto intermediário não se propaga para os saltos seguintes, ela deve ser ignorada.

Tela do terminal mostrando MTR com falso positivo de perda de pacotes

A Ilusão da Latência em Saltos Intermediários

Outro mito persistente é a crença de que picos de latência no meio do caminho indicam congestionamento. Na arquitetura de redes modernas, os roteadores processam o encaminhamento de pacotes de trânsito em hardware dedicado (ASICs) na escala de microssegundos. No entanto, para responder a um pacote de traceroute (gerando o ICMP Time Exceeded), o pacote precisa ser retirado do fluxo de hardware e enviado à CPU do roteador (software).

Como o processamento de ICMP tem prioridade baixíssima frente ao tráfego de dados real, a resposta pode demorar, inflando artificialmente a latência mostrada na tela. A latência exibida no salto é a de resposta da CPU do roteador, não a de trânsito da rede. Da mesma forma, quando surgem asteriscos (* * *) na tela, isso não significa que a internet está rompida naquele ponto, mas apenas que o dispositivo foi configurado administrativamente para não responder a pacotes de sondagem.

Roteamento Assimétrico: A Metade Invisível do Caminho

O diagnóstico de rede baseado na linha de comando do cliente possui um ponto cego estrutural: ele mapeia exclusivamente o caminho de ida (forward path). Devido à natureza do protocolo BGP que rege a internet, o roteamento é quase sempre assimétrico. É extremamente comum que a rota que os dados fazem do seu computador até um servidor seja completamente diferente da rota que o servidor usa para devolver a resposta.

Como detalhado em análises sobre leitura de saídas de MTR, um problema de lentidão ou perda de pacotes pode estar ocorrendo na rota de retorno, que as ferramentas unidirecionais não conseguem enxergar. Na prática, a recomendação técnica para um diagnóstico conclusivo é executar o teste de forma bidirecional: do cliente para o servidor e, simultaneamente, do servidor para o cliente.

Diagrama de roteamento assimétrico BGP

O Futuro do Diagnóstico: TCP Traceroute

Com a adoção de arquiteturas Zero Trust e firewalls cada vez mais restritivos, o tráfego ICMP e UDP não essencial costuma ser bloqueado nas bordas das redes corporativas e em balanceadores de carga de nuvem. Isso pode inutilizar o tracert e o traceroute clássicos, resultando em rastreamentos que morrem nos primeiros saltos.

Para contornar esse cenário, especialistas recorrem ao TCP Traceroute (utilizando ferramentas como tcptraceroute ou a flag mtr -T). Ao invés de usar ICMP ou UDP genérico, a ferramenta envia pacotes TCP (geralmente com a flag SYN) na porta exata da aplicação que está sendo testada, como a porta 443 para HTTPS. Como firewalls são obrigados a permitir o tráfego TCP ou UDP legítimo da aplicação para que o serviço funcione, o pacote de sondagem consegue atravessar as barreiras de segurança, simulando o tráfego real do usuário e fornecendo uma leitura fidedigna da rota até o destino.

Perguntas Frequentes

O que significam os asteriscos (* * *) no tracert?

Os asteriscos indicam que a ferramenta não recebeu uma resposta do roteador naquele salto específico dentro do tempo limite. Isso geralmente ocorre porque o administrador da rede configurou o dispositivo para ignorar pacotes de sondagem por questões de segurança ou para poupar processamento, e não significa que a conexão está interrompida, desde que os saltos subsequentes continuem respondendo.

Por que o MTR mostra perda de pacotes no meio do caminho, mas não no final?

Isso é um falso positivo causado pelo Control Plane Policing (CoPP). Roteadores intermediários limitam a quantidade de respostas ICMP que suas CPUs podem gerar para evitar sobrecargas. Eles descartam os pacotes de teste do MTR direcionados a eles, mas continuam encaminhando o tráfego real normalmente até o destino final, que por sua vez registra 0% de perda.

Qual a diferença entre tracert no Windows e traceroute no Linux?

A principal diferença está no protocolo utilizado para descobrir a rota. O tracert do Windows utiliza pacotes ICMP (Echo Request) por padrão. Já o traceroute em sistemas Linux e macOS utiliza pacotes UDP direcionados a portas altas. Ambos, no entanto, dependem da manipulação do campo TTL (Time-To-Live) para identificar os roteadores no caminho.

Fontes

Postar um comentário

0 Comentários

Contact form