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