Traceroute

consola de diagnóstico

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.

Traceroute.

Para el Protocolo de Internet Versión 6 (IPv6), la herramienta a veces tiene el nombre traceroute6 y tracert6.

Implementación

editar

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.

Ejemplo

editar

En Windows

editar
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.

En GNU/Linux

editar
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

En Mac

editar

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

Funcionamiento

editar

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.

Origen

editar

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.

Otras aplicaciones

editar

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.

Véase también

editar

Enlaces externos

editar
  • visual tracert Página recomendada para hacer tracert-router.
  • traceroute.org Página donde se encuentran los servidores de traceroute divididos por países
  • Visual Route Página del programa visual route donde se puede descargar la herramienta en cuestión y su manual.
  • Traceroute test



[

]