En informática, traceroute y tracert son comandos de diagnóstico de red de computadoras para mostrar posibles rutas y medir los retrasos de tránsito de los paquetes a través de una red de Protocolo de Internet (IP). El historial de la ruta registra cómo los tiempos de ida y vuelta de los paquetes son recibidos de cada host sucesivo (nodo remoto) en la ruta; la suma de los tiempos medios en cada salto es una medida del tiempo total empleado para establecer la conexión. Traceroute marca como exitoso el salto a menos que todos paquetes los paquetes enviados (generalmente tres [cita requerida]) se pierdan más de dos veces; entonces se pierde la conexión y no se puede evaluar la ruta. Ping, por otro lado, solo calcula los tiempos finales de ida y vuelta desde el punto de destino.
Para el Protocolo de Internet Versión 6 (IPv6), la herramienta a veces tiene el nombre traceroute6 y tracert6.
El comando traceroute está disponible en muchos sistemas operativos modernos. En sistemas tipo Unix como FreeBSD, macOS y Linux, está disponible como una herramienta de línea de comandos. Traceroute también es accesible gráficamente en macOS dentro de la suite Utilidades de red.
Microsoft Windows y ReactOS proporcionan un programa denominado tracert que realiza la misma función de seguimiento de rutas. Los sistemas operativos basados en Windows NT también proporcionan PathPing, con una funcionalidad similar. La versión de ReactOS fue desarrollada por Ged Murphy y está licenciada bajo la GPL.
En los sistemas operativos tipo Unix, traceroute envía, de forma predeterminada, una secuencia de paquetes de Protocolo de datagramas de usuario (UDP), con números de puerto de destino que van desde 33434 hasta 33534; las implementaciones de traceroute suministradas con Linux, FreeBSD, NetBSD, OpenBSD, DragonFly BSD, y macOS incluyen una opción para usar paquetes ICMP Echo Request (-I), o cualquier protocolo arbitrario (-P) como UDP, TCP usando paquetes TCP SYN o ICMP.
En Windows, tracert envía paquetes de solicitud de eco ICMP, en lugar de los paquetes UDP que traceroute envía de forma predeterminada.
El valor de tiempo de vida (TTL), también conocido como límite de salto, se utiliza para determinar los enrutadores intermedios que se atraviesan hacia el destino. Traceroute envía paquetes con valores TTL que aumentan gradualmente de un paquete a otro, comenzando con el valor TTL de uno. Los routers disminuyen los valores TTL de los paquetes en uno cuando enrutan y descartan los paquetes cuyo valor TTL ha llegado a cero, devolviendo el mensaje de error ICMP Time Exceeded. Para el primer conjunto de paquetes, el primer enrutador recibe el paquete, disminuye el valor TTL y elimina el paquete porque entonces tiene el valor TTL cero. Al siguiente conjunto de paquetes se le da un valor TTL de dos, por lo que el primer enrutador reenvía los paquetes, pero el segundo enrutador los deja caer y responde con ICMP Time Exceeded. Procediendo de esta manera, traceroute utiliza los mensajes ICMP Time Exceeded devueltos para crear una lista de enrutadores que atraviesan los paquetes, hasta que se alcanza el destino y devuelve un mensaje ICMP Destination Unreachable si se están utilizando paquetes UDP o un mensaje ICMP Echo Reply si se están utilizando mensajes ICMP Echo.
C:\>tracert www.google.com Traza a la dirección www.google.com [173.194.42.115] sobre un máximo de 30 saltos: 1 13 ms 16 ms 8 ms 192.168.11.1 2 7 ms 17 ms 10 ms 200.63.27.9 3 12 ms 4 ms 19 ms 192.168.2.181 4 * 510 ms 318 ms GE-RAC-AVELLANEDA_3600-AVELLANEDA_7200.skyonline.net.ar [66.61.38.49] 5 40 ms 123 ms 8 ms SOL-LSR_II-GE-SOL-RAC-AVELLANEDA_3600.skyonline.net.ar [66.61.38.113] 6 277 ms 234 ms 128 ms GE-SOL-LSR_II-LSR_I.skyonline.net.ar [200.103.0.222] 7 30 ms 67 ms 9 ms 200.0.17.213 8 50 ms 33 ms 25 ms 209.85.261.84 9 34 ms 29 ms 31 ms 209.85.247.187 10 30 ms 65 ms 12 ms eze03s16-in-f19.1e100.net [173.194.42.115] 11 40 ms 98 ms 23 ms GE-SOL-LSR_II-LSR_I.skyonline.net.ar [200.103.0.222] Traza completa.
user@localhost:/# traceroute www.google.com traceroute to www.l.google.com (64.233.169.99), 64 hops max, 40 byte packets 1 * * * 2 172.16.183.1 (172.16.183.1) 23 ms 23 ms 22 ms 3 10.127.66.229 (10.127.66.229) [MPLS: Label 1479 Exp 0] 38 ms 51 ms 38 ms 4 cnt-00-tge1-0-0.gw.cantv.net (200.44.43.85) 38 ms 38 ms 37 ms 5 cri-00-pos1-0-0.border.cantv.net (200.44.43.50) 51 ms 43 ms 43 ms 6 sl-st21-mia-14-1-0.sprintlink.net (144.223.245.233) 94 ms 93 ms 93 ms 7 sl-bb20-mia-5-0-0.sprintlink.net (144.232.9.198) 95 ms 93 ms 93 ms 8 sl-crs1-mia-0-4-0-0.sprintlink.net (144.232.2.248) 94 ms 95 ms 95 ms 9 sl-crs1-atl-0-0-0-1.sprintlink.net (144.232.20.48) 104 ms 104 ms 103 ms 10 sl-st20-atl-1-0-0.sprintlink.net (144.232.18.133) 104 ms 103 ms * 11 144.223.47.234 (144.223.47.234) 103 ms 103 ms 103 ms 12 64.233.174.86 (64.233.174.86) 98 ms 97 ms 64.233.174.84 (64.233.174.84) 103 ms 13 216.239.48.68 (216.239.48.68) 105 ms 104 ms 106 ms 14 72.14.236.200 (72.14.236.200) 106 ms * 105 ms 15 72.14.232.21 (72.14.232.21) 110 ms 109 ms 107 ms 16 * yo-in-f99.google.com (64.233.169.99) 100 ms 99 ms
Ve a "Aplicaciones", luego a "Utilidades" y abre la aplicación "Utilidad de Red". Dirígete a la pestaña "Traceroute", escribe el dominio o IP y se empezará a trazar la ruta.
traceroute: Warning: www.google.com has multiple addresses; using 173.194.34.241 traceroute to www.l.google.com (173.194.34.241), 64 hops max, 52 byte packets 1 livebox (192.168.1.1) 6.443 ms 3.020 ms 3.682 ms 2 172.31.255.254 (172.31.255.254) 36.757 ms 33.193 ms 28.403 ms 3 * * 62.36.218.201 (62.36.218.201) 28.510 ms 4 85.63.217.73 (85.63.217.73) 29.722 ms 26.758 ms 31.308 ms 5 62.36.204.185 (62.36.204.185) 30.782 ms 263.705 ms 2691.420 ms 6 tengige0-7-0-5.madtr1.madrid.opentransit.net (193.251.255.209) 49.426 ms 32.855 ms 37.527 ms 7 * * * 8 81.52.179.98 (81.52.179.98) 28.724 ms 38.731 ms 27.124 ms 9 216.239.49.230 (216.239.49.230) 30.814 ms 28.500 ms 27.119 ms 10 72.14.237.126 (72.14.237.126) 28.481 ms 53.681 ms 31.937 ms 11 mad01s09-in-f17.1e100.net (173.194.34.241) 27.614 ms 32.469 ms 29.051 ms
El número de la primera columna es el número de salto, posteriormente viene el nombre y la dirección IP del nodo por el que pasa, los tres tiempos siguientes son el tiempo de respuesta para los paquetes enviados (un asterisco indica que no se obtuvo respuesta).
Estas herramientas (traceroute y tracert) son órdenes ejecutables en una consola en modo texto.
Tracert utiliza el campo Time To Live (TTL) de la cabecera IP. Este campo sirve para que un paquete no permanezca en la red de forma indefinida (por ejemplo, debido a la existencia en la red de un bucle cerrado en la ruta). El campo TTL es un número entero que es decrementado por cada nodo por el que pasa el paquete. De esta forma, cuando el campo TTL llega al valor 0 ya no se reenviará más, sino que el nodo que lo esté manejando en ese momento lo descartará. Lo que hace tracert es mandar paquetes a la red de forma que el primer paquete lleve un valor TTL=1, el segundo un TTL=2, etc. De esta forma, el primer paquete será eliminado por el primer nodo al que llegue (ya que éste nodo decrementará el valor TTL, llegando a cero). Cuando un nodo elimina un paquete, envía al emisor un mensaje de control especial indicando una incidencia. Tracert usa esta respuesta para averiguar la dirección IP del nodo que desechó el paquete, que será el primer nodo de la red. La segunda vez que se manda un paquete, el TTL vale 2, por lo que pasará el primer nodo y llegará al segundo, donde será descartado, devolviendo de nuevo un mensaje de control. Esto se hace de forma sucesiva hasta que el paquete llega a su destino.
La página del manual de traceroute afirma que el programa original de traceroute fue escrito por Van Jacobson en 1987 a partir de una sugerencia de Steve Deering, con sugerencias o correcciones particularmente convincentes de C. Philip Wood, Tim Seaver y Ken Adelman. El autor del programa ping, Mike Muuss, afirma en su sitio web que traceroute fue escrito usando el soporte ICMP del kernel que había codificado anteriormente para habilitar sockets ICMP sin procesar cuando escribió el programa ping por primera vez.
Existe un programa llamado Visual Route (multiplataforma, en Java) que se utiliza para obtener una información gráfica de la ruta que siguen los paquetes desde el origen hasta su destino. Se usa la información generada por la orden tracert junto con la información obtenida de la base de datos RIPE para cada uno de estos nodos.
Existen en Internet una serie de lugares que proporcionan servidores de traceroute, nos informan de los resultados de la ejecución de una orden traceroute desde ese host hasta el nuestro. A estos servidores se les suelen llamar Looking Glass. La mayoría de los ISP con redes permiten la realización de estas operaciones.
También hay servidores (muchas veces los mismos Looking Glass) que proporcionan la posibilidad de ver el resultado de un traceroute desde su host hacia cualquier otro punto. Esto es de gran ayuda a la hora de realizar mapas de caminos para los paquetes. En el sitio web de traceroute se encuentran recogidos algunos de los sitios web que ofrecen la posibilidad de realizar trazas al sitio que se les indique.
[
]