Traceroute es un programa informático utilitario diseñado para determinar las rutas de datos en redes TCP/IP . Traceroute puede utilizar diferentes protocolos de comunicación según el sistema operativo del dispositivo. Estos protocolos pueden ser UDP , TCP , ICMP o GRE . Las computadoras con Windows usan el protocolo ICMP, mientras que los sistemas operativos Linux y los enrutadores Cisco usan el protocolo UDP.
Traceroute se incluye con la mayoría de los sistemas operativos de red modernos . En los sistemas Microsoft Windows , este programa se llama tracert y en los sistemas GNU/Linux , Cisco IOS y Mac OS se llama traceroute .
Consideremos un ejemplo de cómo funciona el programa en el sistema operativo Windows. El programa tracert envía datos al host de red especificado, mientras muestra información sobre todos los enrutadores intermedios a través de los cuales pasaron los datos en el camino hacia el host de destino. En caso de problemas en la entrega de datos a cualquier nodo, el programa te permite determinar exactamente qué sección de la red tuvo problemas. Cabe señalar que el programa funciona solo en la dirección desde la fuente de los paquetes y es una herramienta muy rudimentaria para solucionar problemas de la red. Debido a las peculiaridades del funcionamiento de los protocolos de enrutamiento en Internet, las rutas inversas a menudo no coinciden con las directas, y esto es cierto para todos los nodos intermedios de la traza. Por lo tanto, la respuesta ICMP de cada nodo intermedio puede tomar su propia ruta, perderse o llegar con mucho retraso, aunque en realidad esto no ocurre con los paquetes que van dirigidos al nodo final. Además, los enrutadores intermedios a menudo limitan la cantidad de respuestas ICMP por unidad de tiempo, lo que genera pérdidas falsas.
Para determinar los enrutadores intermedios , traceroute envía una serie de paquetes ICMP (3 paquetes predeterminados) al host de destino, aumentando el valor del campo TTL ("tiempo de vida") en 1 con cada paso. Este campo generalmente especifica el número máximo de enrutadores que puede atravesar un paquete. El primer lote de paquetes se envía con un TTL de 1, por lo que el primer enrutador devuelve un mensaje ICMP de "tiempo excedido en tránsito" que indica que no se pudieron entregar los datos. Traceroute captura la dirección del enrutador, así como el tiempo entre el envío de un paquete y la recepción de una respuesta (esta información se muestra en el monitor de la computadora ). Luego, traceroute retransmite la serie de paquetes, pero con un TTL de 2, lo que hace que el primer enrutador reduzca el TTL de los paquetes en uno y los reenvíe al segundo enrutador. El segundo enrutador, habiendo recibido paquetes con TTL=1, también devuelve "tiempo excedido en tránsito" .
El proceso se repite hasta que el paquete llega al nodo de destino. Cuando se recibe una respuesta de este nodo, el proceso de rastreo se considera completado.
En el host final, un datagrama IP con TTL = 1 no se descarta y no genera un mensaje de tiempo de espera agotado de ICMP , pero debe devolverse a la aplicación. La llegada al destino se define de la siguiente manera: los datagramas enviados por traceroute contienen un paquete UDP con un número de puerto no utilizado conocido en el host de destino. El número de puerto será 33434 + ( saltos máximos al host) - 1. En el destino, el módulo UDP devolverá mensajes de error ICMP "puerto inalcanzable" al recibir dichos datagramas. Por lo tanto, traceroute solo necesita detectar que ha llegado un mensaje de error ICMP de este tipo para saber que ha completado su trabajo.
El programa se inicia desde la línea de comandos. Para hacer esto, debe ingresarlo. Para los sistemas operativos de la familia Windows, existen varias formas de iniciar la línea de comando:
En la ventana que se abre, escribe:
tracert ejemplo.netDonde tracert es una llamada al programa y example.net es cualquier nombre de dominio o dirección IPv4 .
C:\Documentos y configuración\Administrador>tracert en.wikipedia.org Traceroute a rr.esams.wikimedia.org [91.198.174.2] con un número máximo de saltos 30: 1 1 ms <1 ms <1 ms vpn4.kras.gldn [10.10.1.14] 2 2 ms <1 ms <1 ms C7604-BRAS4-FTTB.ranetka.ru [80.255.150.41] 3 1 ms 1 ms 4 ms C76-Externo.ranetka.ru [80.255.128.162] 4 1 ms <1 ms <1 ms pe-l.Krasnoyarsk.gldn.net [195.239.173.37] 5 79 ms 79 ms 98 ms cat01.Stockholm.gldn.net [194.186.157.62] 6 131 ms 131 ms 132 ms ams-ix.2ge-2-1.br1-knams.wikimedia.org [195.69.145.176] 7 131 ms 131 ms 131 ms te-8-2.csw1-esams.wikimedia.org [91.198.174.254] 8 133 ms 134 ms 133 ms rr.esams.wikimedia.org [91.198.174.2] El rastro está completo.En los sistemas UNIX / Linux , existen modos en los que el programa solo se puede ejecutar como superusuario root (administrador). Estos modos incluyen el importante modo de rastreo ICMP ( tecla -I).
En todos los demás casos, traceroute puede ejecutarse en nombre de un usuario ordinario normal. Al mismo tiempo, los parámetros predeterminados difieren de una distribución a otra, aunque la clave -U( UDP ) se escribe tradicionalmente en la ayuda como tal. En algunas distribuciones basadas en RedHat, en realidad se usa el valor predeterminado -I, por lo que si el comando del siguiente ejemplo da un mensaje sobre la falta de derechos, intente especificar explícitamente la clave -U.
[usuario@localhost ~]$ traceroute www.ru traceroute a www.ru (194.87.0.50), 30 saltos máx., paquetes de 38 bytes 1 mygateway.ar7 (192.168.1.1) 0,777 ms 0,664 ms 0,506 ms 2 L0.ghsdr04 (213.227.224.91) 15.661ms 15.867ms 31.426ms 3 213.227.224.1 (213.227.224.1) 16.797ms 18.221ms 16.756ms 4dg (213.186.216.161) 53.068ms 39.163ms 38.283ms 5br13 (213.186.193.43) 40.156ms 39.768ms 42.803ms 6 agregados (62.221.40.169) 37.884 ms 38.712 ms 37.207 ms 7 edge-3GE-216dot1q.kiev.ucomline.net (213.130.30.182) 39.723 ms 38.039 ms 41.261 ms 8 ae0-202.RT771-001.kiv.retn.net (81.222.15.1) 40.029 ms 37.088 ms 40.039 ms 9 ae0-3.RT502-001.msk.retn.net (81.222.15.1) 128.932 ms 122.043 ms 121.612 ms 10 GW-Demos.retn.net (81.222.8.46) 120.023 ms 121.135 ms 119.493 ms 11 iki-1-vl10.demos.net (194.87.0.83) 119.074 ms 119.784 ms 123.607 ms 12 www.ru (194.87.0.50) 120.358ms 122.545ms 119.399msUn concepto erróneo común es que traceroute, como ping , solo funciona sobre ICMP. En este sentido, los administradores novatos, después de haber habilitado el protocolo ICMP en el firewall, reciben un ping de trabajo y una ruta de rastreo que no funciona. Para solucionar esta situación, también debe permitir que los paquetes UDP lleguen a puertos superiores a 33434 en el firewall (algunas fuentes indican que es suficiente especificar un rango de puertos de 33434 a 33534).