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 lentaCaracterí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