Como funciona o traceroute ?
domingo, agosto 31st, 2008Traceroute é um algoritmo definido pela rfc1393. Contudo antes de sabermos como funciona o traceroute é necessário entendermos o que é TTL (Time To Live). TTL significa o tempo de vida de um pacote na rede, cada vez que um pacote passa por um roteador o TTL é decrementado em uma unidade. Pode ocorrer de uma rede entrar em loop por erro de configuração no roteador ou defeito, então esse pacote fica eternamente circulando na rede. Para que isso não ocorra o TTL é fundamental pois quando chegar a zero o roteador descarta o pacote. Outro uso do TTL é descobrir quantos roteadores têm até um determinado host, sendo essa a função do traceroute.
Como funciona o traceroute
O traceroute envia 3 pacotes com o TTL igual a 1. O primeiro hop responde que o pacote não pode ser transmitido porque TTL expirou com a mensagem ICMP Time-to-Live Exceeded (Type 11). Então o pacote é reenviado com TTL igual a 2 e o segundo roteador responde que o TTL expirou. Este processo continua até o destino ser encontrado.
Com o traceroute conseguimos somente o caminho de ida até o destino, não sendo possível obter o caminho de retorno que pode ser diferente.
Testando o traceroute
% traceroute www.terra.com.br traceroute to www.terra.com.br (200.176.3.142), 30 hops max, 40 byte packets 1 (192.168.254.254) 5.108 ms 6.458 ms 7.921 ms 2 BrT-L10-smace701.dsl.brasiltelecom.net.br (201.14.223.254) 54.958 ms 56.458 ms 57.833 ms 3 BrT-G5-0-0-710-smace300.brasiltelecom.net.br (201.10.227.133) 67.548 ms 73.977 ms 76.842 ms 4 * * * 5 BrT-G6-0-0-paebvcore01.brasiltelecom.net.br (201.10.255.162) 95.781 ms 102.036 ms 100.632 ms 6 * * * 7 (200.176.0.250) 55.624 ms 57.064 ms 59.931 ms 8 bsw5-poa-vlan201.tc.terra.com.br (200.176.2.28) 61.487 ms 79.703 ms 81.222 ms
A resposta do traceroute mostra três tempos, isso é porque quando um roteador é encontrado o mesmo é testado três vezes. Já quando aparece como resposta * * * significa que esse roteador não respondeu que o TTL expirou.
Existem muitas opções que podem ser usadas com o traceroute, como por exemplo, usar o protocolo tcp em vez de icmp. Para saber mais sobre as opções consulte man traceroute.
Se você é programador C e quiser ver como o traceroute é implementado, vale a pena baixar os fontes e analisar o código. É uma experiência e tanto!
Existe um programa chamado VisualRoute. Esse programa traça a rota sobre o mapa mundi informando o país onde está cada roteador até o destino.
Por hoje era isso. Ah, pessoal estamos com uma super promoção essa semana, assinem os feeds gratuitamente. Mas somente essa semana!




