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

Traceroute (tracert no Windows) permite determinar o caminho de acesso a uma máquina IP, a partir da máquina onde o comando está sendo executado. O caminho de acesso (rota) é uma seqüência de gateways (computadores e roteadores) pelos quais os pacotes atravessam para chegar ao destino. A sintaxe básica do comando é a seguinte:

traceroute [options] host

Traceroute determina a rota enviando pacotes UDP ao destino final, com valores de TTL (Time-To-Live) crescentes, iniciando em 1. O valor de TTL do pacote é decrementado a cada gateway, e quando chega em zero (0) ele é descartado e uma mensagem de erro ICMP 'time exceeded' é devolvida ao remetente. Assim, setando valores crescentes de TTL e interpretando as mensagens de erro ICMP, torna-se simples determinar a rota seguida pelos pacotes.

Não existe nenhum mecanismo disponível nos roteadores para informar o trajeto de um pacote IP pela Internet. Mas sem usar nenhum artifício adicional, o autor do traceroute conseguiu fazer este programa muito bem bolado. Como você acha que o traceroute funciona? DICA: lembre-se do campo TTL do pacote IP.

O objetivo deste comando é sevir como uma ferramenta para identificação de programas de redes , roteamento e medição de performance. Se o pacote estiver tomando caminhos totalmente diferente da melhor rota esta anomalia já pode ser identificada a partir da saída do Traceroute. Pode-se também identificar gargalos, a partir dos quais a performance se torna extremamente lenta

Características

Determinação da rota que datagramas IP seguem de um computador a outro

Baseado sobre os protocolos UDP e ICMP

Modificação do campo TTL

Pontos intermediários: ICMP Time Exceeded

Destino: ICMP Port Unreachable

Traceroute no Windows

O utilitário traceroute serve para nos mostrar por onde um pacote IP trafega quando é enviado. Esse utilitário é tão útil quanto o ping e no windows está disponível com o nome de tracert.

A sintaxe do tracert no windows é:

Uso: tracert [-d] [-h nmax_saltos] [-j lst_hosts] [-w tempo_limite] destino

Opções:
    -d                 Não resolver endereços para nomes de hosts.
    -h nmax_saltos     Número máximo de saltos para a procura do destino.
    -j lst_hosts       Rota ampliada de origens usada com a lista lst_hosts.
    -w tempo_limite    Tempo de espera em milissegundos para cada resposta.

 

 Observação: 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.

Extensões do Traceroute

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

Exemplos de uma pesquisa de endereço por TRACEROUTE

Exemplo1

Endereço IP :200.242.210.1

1 gw.REGISTRO.BR (143.108.23.1) 0.250 ms 0.173 ms 0.161 ms ~ 0.195 ms

2 bigiron.spo.ansp.br (143.108.0.1) 0.758 ms 0.613 ms 0.652 ms ~ 0.674 ms

3 core.spo.ansp.br (143.108.0.2) 0.959 ms 0.705 ms 0.827 ms ~ 0.830 ms

4 fapesp-br-A9-0-0-33-acc01.spolp.embratel.net.br (200.182.31.89) 1.730 ms 2.098 ms 1.927 ms ~ 1.918 ms

5 200.230.158.82 (200.230.158.82) 3.048 ms 2.220 ms 1.936 ms ~ 2.401 ms

6 200.230.158.94 (200.230.158.94) 3.130 ms 3.396 ms 2.221 ms ~ 2.916 ms

7 ebt-A12-0-0-1-dist01.blm.embratel.net.br (200.230.220.33) 103.170 ms 102.993 ms 103.669 ms ~ 103.277 ms

8 200.242.248.22 (200.242.248.22) 111.863 ms 112.100 ms 112.327 ms ~ 112.097 ms

Exemplo2

Uma saída típica do comando traceroute é a seguinte:

sol:~> /usr/sbin/traceroute www.unicamp.br
traceroute to obelix.unicamp.br (143.106.10.2), 30 hops max, 38 byte packets
 1  router (200.17.98.23)  1.041 ms  1.008 ms  1.266 ms
 2  10.19.74.29 (10.19.74.29)  7.640 ms *  3.209 ms
 3  bb2.pop-pr.rnp.br (200.19.74.20)  7.692 ms  5.404 ms  5.958 ms
 4  SP.serial-PR-SP.bb2.rnp.br (200.130.255.49)  13.872 ms  51.453 ms  44.270 ms
 5  ansp.ix.spo.ANSP.BR (200.136.34.1)  28.651 ms  43.421 ms  64.883 ms
 6  border2-e04-core.cas.ansp.br (143.106.99.9)  108.615 ms  75.864 ms  395.184 ms
 7  ansp-gw.unicamp.br (143.106.99.26)  130.609 ms  427.606 ms  85.641 ms
 8  * corp-gw.unicamp.br (143.106.2.52)  48.104 ms  71.590 ms
 9  obelix.unicamp.br (143.106.10.2)  53.521 ms *  112.220 ms

A primeira coluna indica o valor de TTL utilizado no pacote; em seguida é indicado o nome do gateway encontrado e seu número IP. Os valores indicados à direita correspondem aos tempos de acesso (round-trip time) para três testes consecutivos de acesso à máquina indicada na respectiva linha. Um asterisco (*) indica um time-out (não houve resposta no prazo default de 5 segundos do envio do pacote).

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

Referências:

http://www.dicas-l.unicamp.br/Treinamentos/tcpip/35.html

http://penta.ufrgs.br/uel/graziela/graznw13.htm

http://www.ppgia.pucpr.br/~maziero/ensino/gsd-tsi/icmp.html

http://penta.ufrgs.br/uel/graziela/graznw13.htm