quarta-feira, 20 de dezembro de 2017

Entendendo o funcionamento do comando tracert

Tracert é uma ferramenta de diagnóstico ponto a ponto que utiliza o protocolo ICMP e o campo TTL e para determinar e testar o caminho que os datagramas IP seguem quando são transmitidos entre origem e destino.

Assim como o comando “ping”, ele atua na camada 3 do modelo de referência OSI.

O campo TTL (Time to Live) é um campo de 8 bits cujo o valor padrão varia entre os diversos sistemas operacionais existentes, sendo comuns os valores 128 para sistemas operacionais Windows e 64 para sistemas baseados em Linux. Pelo menos em sistemas operacionais Microsoft, esse valor pode ser alterado conforme necessidade.

O propósito do TTL é determinar o tempo de vida de um datagrama, impedindo que o mesmo trafegue na rede indefinidamente.

Utilizando o comando tracert, toda vez que um datagrama chega a um roteador o TTL é decrementado em um antes de ser encaminhado adiante.

Quando um roteador recebe um datagrama cujo TTL é igual a 0 (zero), ele não o encaminhará mais. O roteador descartará o pacote e enviará de volta ao host de origem uma mensagem ICMP do tipo “Tempo Excedido”.

Essa mensagem contém o endereço IP do roteador como endereço de origem e esse é o mecanismo de funcionamento do comando tracert.

O tracert possui como característica o envio de um datagrama com um TTL igual a 1 ao host de destino. Ao encontrar o primeiro rotador no caminho, esse TTL é decrementado, ficando com o valor zero (TTL 0).

Consequentemente o datagrama é descartado e a mensagem ICMP "Tempo Excedido", é enviada de volta à origem. Lembrem-se de que essa mensagem, possui o endereço IP do roteador e dessa forma, o primeiro roteador no caminho foi identificado.

Então, o tracert enviará um novo datagrama, com o TTL igual a 2, que passará pelo primeiro roteador, que o decrementará para 1, e então será descartado no segundo roteador. Dessa forma o endereço IP do segundo roteador também será identificado.

Esse processo é continuo até que o datagrama chegue (ou não) ao host de destino.

Ao chegar no host de destino, ainda que o TTL do datagrama seja igual a 1, ele não será descartado e, consequentemente a mensagem ICMP “Tempo Excedido” não será enviada.

Neste caso, no que se refere a sistemas operacionais Microsoft, serão enviados datagramas ICMP do tipo “Echo Request” (Ping) e se o dispositivo de origem receber uma resposta do tipo “Echo Reply”, ele saberá que o pacote chegou a seu destino.

Em sistemas operacionais Microsoft, o comando tracert possui parâmetros adicionais que podem ser obtidos digitando em um prompt de comandos o comando tracert /?.

Abaixo, exemplo em sistema operacional Windows 10 Pro.





Conforme imagem, os endereços dos roteadores por onde os pacotes passaram até chegar ao destino especificado são mostrados. 

A primeira coluna contém o número de sequência do salto. As três colunas seguintes mostram os RTTs (Round Trip Times) das mensagens enviadas (o traceroute envia três mensagens por padrão para cada salto). A última coluna mostra os endereços IP dos roteadores descobertos na rota.

Assim, espero ter contribuído para o enriquecimento técnico dos leitores.