TRACEROUTE




NOME

Traceroute

PALAVRAS-CHAVE

Roteamento; IP; Ping; UNIX; VMS; Hops; Probe; Grátis.

RESUMO

Traceroute é uma ferramenta que permite descobrir o caminho feito pelos pacotes desde a sua origem até o seu destino. Ele é usado para testes, medidas e gerenciamento da rede. O traceroute pode ser utilizado para detectar falhas como, por exemplo, gateways intermediários que descartam pacotes ou rotas que excedem a capacidade de um datagrama IP. Com esta ferramenta, o atraso da "viagem" do pacote entre a origem e gateways intermediários são reportados, permitindo determinar a contribuição de cada gateway para o atraso total da "viagem" do pacote desde a origem até o seu destino. Versões melhoradas do traceroute permitem a especificação de "rotas livres da origem" para os datagramas. Isto permite investigar qual o caminho de retorno que as máquinas remotas fazem até o host local.

MECANISMO

O comando traceroute envia pacotes de pesquisa UDP (UDP probe packets) com um pequeno "time-to-live" máximo (variável Max_ttl), e então, espera por pacotes de resposta "ICMP TIME_EXCEEDED" dos gateways que estão no caminho. Os pacotes UDP começam com um valor Max_ttl de 1 hop, que é incrementado de 1 hop a cada vez, até que uma mensagem "ICMP PORT_UNREACHABLE" é retornada. Esta mensagem indica que o host destino foi localizado ou que o comando traceroute atingiu o valor máximo de hops permitido para o "trace". O traceroute envia três "probes" a cada Max_ttl indicando:
  • O valor Max_ttl
  • O endereço do gateway
  • O tempo de ida e volta (round trip) de cada "probe" bem sucedido. Se as respostas ao "probe" vêm de gateways diferentes, o traceroute imprime o endereço IP de cada um deles. Se não houver resposta ao "probe" dentro de um intervalo de "time-out" de três segundos, um * (asterisco) é impresso. Um ponto de exclamação ! é impresso depois do tempo de ida e volta (round trip time) do pacote se o valor Max_ttl é um hop ou menos. Um "time-to-live" máximo de um hop ou menos normalmente indica uma incompatibilidade na forma como as respostas ICMP são tratadas pelos diferentes softwares da rede. A incompatibilidade pode, normalmente, ser solucionada duplicando o valor do último Max_ttl usado e tentando novamente. Outras anotações possíveis depois da indicação do tempo (round trip) são:
  • !H Host inacessível
  • !N Rede inacessível
  • !P Protocolo inacessível
  • !S Falha na rota de origem
  • !F Necessidade de fragmentação Se a maioria das pesquisas (probes) resultam em um erro, o comando traceroute encerra a execução.

    SINTAXE

    traceroute [-m Max_ttl] [-n] [-p Port] [-q Nqueries] [-r] [-s SRC_Addr] [-t TypeOfService] [-v] [-w WaitTime] Host [PacketSize] O único parâmetro obrigatório para o comando traceroute é o nome ou o o número IP do host destino. O tamanho do pacote UDP (UDP probe packet) é de 38 bytes, mas pode ser aumentado especificando o tamanho do pacote (em bytes) após o nome ou número IP do destino.

    OPÇÕES

    -m Max_ttl Especifica um "time-to-live" máximo (número máximo de hops) usado nos pacotes de pesquisa UDP. O default é 30 hops (o mesmo dafault utilizado para conexões TCP). -n Mostra o endereço IP de cada gateway encontrado no caminho (da origem ao destino). -p Port Especifica o número base da porta UDP utilizada na pesquisa do traceroute. O default é 33434. O comando traceroute depende de um intervalo de portas UDP abertas de "base a base + número de hops - 1" no host destino. Se uma porta UDP não está disponível, esta opção pode ser usada para pegar um intervalo de portas não utilizadas. -q Nqueries Especifica o número de pacotes UDP (UDP probes) que o comando traceroute envia a cada Max_ttl. O default é três pacotes. -r Desvia das tabelas de roteamento e envia os pacotes de pesquisa diretamente a um host. Se este host não está na rede, um erro é retornado. Esta opção pode ser usada para "dar" um comando ping em um host local através de uma interface que não está registrada nas tabelas de roteamento. -s SRC_Addr Usa o endereço especificado (SRC_Addr) como o endereço de origem dos pacotes UDP enviados. Em hosts com mais de um endereço IP, a opção "-s" pode ser usada para forçar o endereço de origem a ser uma interface específica e não, necessariamente, aquela de onde o pacote foi enviado. Se o endereço IP especificado não for válido, um erro é retornado e nada é enviado. -t TypeOfService Atribui um valor entre 0 e 255 para a variável TypeOfService do pacote de pesquisa UDP. O default é 0 (zero). Esta opção pode ser utilizada para descobrir se diferentes tipos de serviços resultam em diferentes caminhos. -v Recebe pacotes diferentes de TIME-EXCEEDED e PORT-UNREACHABLE. -w WaitTime Especifica o tempo (em segundos) a esperar pela resposta a um pacote de pesquisa UDP. O default é 3 segundos. Host Especifica o host destino, pelo nome ou pelo seu número IP. Este parâmetro é obrigatório. PacketSize Especifica o tamanho (em bytes) do pacote UDP de pesquisa (probe). O default é 38 bytes.

    "CAVEATS"

    Algumas implementações IP enviam para outro endereço pacotes com o "ttl" (time-to-live) igual a 0 (zero), escapando, desta forma, da identificação. Outras usam o campo "ttl" do pacote que chega, como o "ttl" do pacote de resposta ICMP, o que atrasa a identificação. Enviar datagramas com a opção de "rota da origem" pode causar "crash" em alguns gateways. Não é recomendável enviar pacotes com esta opção.

    ERROS

    Não há erros conhecidos.

    LIMITAÇÕES

    A maioria das versões do UNIX têm erros no código IP bruto, que requer funções do "kernel" para executar a versão padrão do traceroute. Existe uma versão do traceroute que "roda" sem as funções do "kernel" sob SunOS 3.5, mas ela só opera em interface ethernet.

    REQUISITOS DE HARDWARE

    Sem restrições.

    REQUISITOS DE SOFTWARE

    BSD UNIX ou OS relacionados, ou VMS.

    DISPONIBILIDADE

    Disponível nos endereços: ftp.ee.lbl.gov (arquivo traceroute.tar.Z) e uc.msc.umn.edu. EXEMPLO DE EXECUÇÃO DO TRACEROUTE