Operación
El programa permite descubrir y revisar cada uno de los saltos que atraviesa la ruta que toman los paquetes desde el punto en el que se ejecuta el programa y hacia un destino específico.
El programa envía 3 paquetes UDP al destino, utilizando los puertos 33434 (el primer paquete), 33435 (el segundo paquete) y 33436 (el tercer paquete).
Traceroute utiliza paquetes UDP. Sin embargo, algunos sistemas operativos permiten utilizar diferentes paquetes (TCP o UDP).
Microsoft Windows en su aplicación Tracert no utiliza paquetes UDP sino ICMP echo request.
El proceso se inicia enviando primero una secuencia de paquetes UDP con TTL = 1 y a partir de allí se va incrementando el valor del campo TTL de uno en uno hasta llegar al destino o al límite de saltos definido (por defecto 30).
En todos los casos utiliza igual que ping respuestas de ICMP, en este caso utiliza mensajes time exceeded. Opera colocando el valor del campo TTL de los paquetes que envía, inicialmente, en 1. De esta manera la interfaz del primer salto asume que el TTL ha expirado (al valor de TTL que recibe resto uno: 1 – 1 = 0) y envía un mensaje ICMP al origen indicando que ha excedido el TTL del paquete. En esa notificación al origen el dispositivo que genera el mensaje ICMP se identifica a sí mismo por la dirección IP del puerto que descartó el paquete. De esta manera el sistema en el que se ejecuta el programa obtiene la dirección IP del primer salto o gateway de la red.
A continuación se genera un segundo paquete UDP con TTL igual a 2; de esta forma el nuevo paquete pasa el gateway, es enrutado y finalmente al llegar al próximo gateway o puerto que debe atravesar será descartado y se generará una nueva notificación de TTL excedido. De esta manera se obtiene ahora la dirección IP del segundo salto en la ruta hacia el destino. El proceso continúa de esta manera incrementando el valor del campo TTL de uno en uno hasta llegar al puerto destino o alcanzar el límite de saltos definido (30 por defecto).
De esta forma el sistema donde se ejecuta la aplicación puede identificar la dirección IP (IPv4 o IPv6) de cada dispositivo o salto que está en la ruta del paquete hacia el destino.
El valor máximo por defecto del campo TTL es 30, por lo que inicialmente al ejecutar el programa se rastrean los primeros 30 saltos. Si es preciso este valor puede ser ajustado.
Entre la información que proporciona el resultado de la ejecución de traceroute se encuentra:
- El listado ordenado de direcciones IP de cada salto que recorre el paquete en su ruta hacia el destino.
- La demora en milisegundos que ha registrado cada uno de los 3 paquetes que se han enviado en cada porción del trayecto.
- La identidad de cada salto.
Traceroute nos permite entonces, conocer detalladamente la ruta que recorre nuestro tráfico hasta el dispositivo de destino y también (en el caso de mensajes de destino inalcanzable), determinar en qué punto del trayecto se está interrumpiendo una ruta para, a partir de este dato y con la ayuda de un diagrama de la red poder localizar dónde se encuentra posiblemente un problema.
Traceroute en diferentes sistemas operativos
Cada sistema operativo tiene su propia versión de este programa, con algunas características que le son propias.
En sistemas Microsoft:
El programa que opera recibe el nombre de "tracert"
C:\>tracert www.google.com
En sistemas Linux:
user@localhost:/# traceroute www.google.com
En sistemas Apple:
Utilizando la interfaz gráfica seleccionar: Aplicaciones > Utilidades > Utilidad de Red
Seleccionar la pestaña "Traceroute" y escribir el dominio o IP.
En sistemas Cisco IOS:
Router#traceroute [protocolo] [destino]
Las respuestas posibles cuando se ejecuta el comando desde la línea de comando de un router Cisco IOS son:
!H El router no ha enviado el comando.
P El protocolo es inalcanzable.
N La red es inalcanzable.
* Time out
Router#traceroute [destino] source [interfaz]
Permite especificar la interfaz a través de la cual se desea enviar los paquetes UDP. Si no se utiliza esta opción el dispositivo define la interfaz de salida (es decir la IP de origen) en función de lo indicado en la tabla de enrutamiento.
Además hay en Internet servicios que reciben la denominación genérica de "looking glass" que permiten ejecutar este programa desde puntos específicos de Internet.
Algunos de esos servicios son:
Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.