Cómo funciona el comando traceroute ?
[important title=»Introducción»]
Habitualmente requerimos hacer algunos diagnósticos en redes y utilizamos el comando traceroute pero desconocemos como es su funcionamiento interno y el porqué de sus resultados.
Traceroute es una herramienta que viene incluida en casi todos los sistemas operativos y permite conocer las rutas seguidas por un paquetes desde que se originó y hasta que llegó a su destino, conociendo los routers intermedios por los que paso el paquete.
# traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets 1 maxi.internet.local (192.168.10.1) 5.564 ms 5.555 ms 5.559 ms 2 int-200-55-41-2.dynamic.intercity.net.ar (200.55.41.2) 18.368 ms 18.677 ms 18.837 ms 3 200-55-38-17.static.impsat.net.ar (200.55.38.17) 25.614 ms 25.630 ms 27.811 ms 4 200-49-15-177.static.impsat.net.ar (200.49.15.177) 38.591 ms 38.594 ms 38.599 ms 5 ge5-2-108-1000m.cr3.ats1.eze.gblx.net (67.17.93.241) 38.633 ms 38.651 ms 40.760 ms 6 so0-1-3-2488m.scr1.eze1.gblx.net (67.16.160.217) 41.532 ms 28.395 ms 29.801 ms 7 te-1-1-10g.asr1.eze1.gblx.net (67.16.132.170) 42.353 ms te-1-2-10g.asr1.eze1.gblx.net (67.17.67.26) 38.208 ms 43.967 ms 8 64.208.27.34 (64.208.27.34) 40.040 ms 40.025 ms 42.328 ms 9 209.85.251.28 (209.85.251.28) 42.278 ms 209.85.254.70 (209.85.254.70) 35.310 ms 209.85.251.28 (209.85.251.28) 35.223 ms 10 209.85.251.25 (209.85.251.25) 54.433 ms 209.85.252.6 (209.85.252.6) 52.348 ms 52.331 ms 11 72.14.233.89 (72.14.233.89) 56.773 ms 72.14.233.93 (72.14.233.93) 71.941 ms 72.14.233.89 (72.14.233.89) 56.745 ms 12 64.233.175.58 (64.233.175.58) 66.296 ms 52.528 ms 52.661 ms 13 google-public-dns-a.google.com (8.8.8.8) 50.825 ms 53.370 ms 53.506 ms
Como vemos están los routers por lo que paso el paquete desde que se originó en mi PC hasta que llegó hacía Google Public DNS. Pero como funciona el comando para poder descubrir los dispositivos intermedios?.
[/important]
[important title=»Funcionamiento»]
Para hacer la traza se utiliza el encabezado de un paquete IP llamado TTL (time to live), éste es un contador que va decrementando su valor a medida que tiene un salto (hops), es decir que ha pasado por un router. Cuando el valor llega a 0, el paquete se descarta y se envía un ICMP de vuelta al host que originó el paquete; esto permite que no quede un paquete dando vueltas en un bucle y lo elimina. Al envía el paquete de retorno, el IP origen es el router mismo, con lo cual se conoce el IP del salto.
traceroute se aprovecha de este funcionamiento y envía un paquete con un TTL de 1 para asegurarse que solo tenga un salto y luego recibir un paquete ICMP tipo 11 (time exceeded) desde el primer salto que tengamos.
Luego manda otro paquete con TTL de 2, entonces el paquete pasa por el primer router del cual ya se tiene registro y el segundo le debería enviar otro ICMP para informar el TTL agotado.
En caso de que no se reciba el paquete dentro de ciertos limites (por defecto es 5) simplemente se marca ese salto con un asterisco y se continúa con el hop siguiente.
[/important]
[notice type=notice]Por: Maximiliano Dobladez
Bajo Licencia CC 2.5 – Attribution-Noncommercial-No Derivative
[/notice]