Comando traceroute

traceroute

El comando traceroute permite conocer el recorrido que siguen los paquetes hasta llegar a un equipo de destino. Muestra todos los routers (saltos) por los que pasa la comunicación y el tiempo empleado en cada uno de ellos.

Categoría Red
Disponible en Linux
Equivalente en Windows tracert
¿Requiere permisos de administrador? No

¿Qué significa su nombre?

El nombre traceroute proviene del inglés trace route, que significa trazar la ruta.

Su función consiste precisamente en descubrir el camino que siguen los paquetes desde el equipo origen hasta el destino.

¿Para qué sirve?

Permite identificar todos los dispositivos intermedios (routers) por los que pasa una comunicación hasta llegar a un destino.

Es una herramienta muy útil para localizar dónde se produce un problema de conectividad cuando un equipo no puede acceder a un servidor remoto.

Sintaxis

traceroute [opciones] destino

Opciones más utilizadas

Linux Windows Descripción
-I - Utiliza paquetes ICMP en lugar de UDP.
-m 20 -h 20 Limita el número máximo de saltos.
-n -d No resuelve nombres DNS, mostrando únicamente direcciones IP.
-4 -4 Utiliza únicamente IPv4.
-6 -6 Utiliza únicamente IPv6.

Equivalencia con otros sistemas

Linux Windows
traceroute tracert

Consultas más habituales

Mostrar la ruta hasta un servidor

traceroute www.google.es

Mostrar la ruta utilizando únicamente direcciones IP

traceroute -n 8.8.8.8

Limitar el recorrido a 10 saltos

traceroute -m 10 www.google.es

En Windows

tracert www.google.es

Ejemplo de salida

traceroute to www.google.es

 1  192.168.1.1      1.2 ms   1.0 ms   1.3 ms
 2  80.58.61.1       7.5 ms   7.3 ms   7.6 ms
 3  81.46.0.21      12.4 ms  12.5 ms  12.3 ms
 4  142.250.179.99  18.7 ms  18.6 ms  18.8 ms

¿Cómo interpretar la salida?

  • Cada línea representa un salto (hop) realizado por el paquete.
  • La primera columna indica el número de salto.
  • La segunda columna muestra la dirección IP o el nombre del router.
  • Las tres últimas columnas corresponden al tiempo empleado por cada una de las tres sondas enviadas.
  • Si aparece un *, significa que ese router no respondió dentro del tiempo establecido o bloqueó la solicitud.

Errores habituales

  • Interpretar un * como un fallo de la red. Muchos routers simplemente no responden a este tipo de solicitudes por motivos de seguridad.
  • Pensar que el último salto siempre corresponde al servidor final. En algunos casos el destino puede bloquear las respuestas.
  • Creer que el tiempo mostrado corresponde únicamente al router. En realidad representa el tiempo de ida y vuelta hasta ese salto.

Conceptos relacionados

  • Router
  • TTL (Time To Live)
  • Salto (Hop)
  • ICMP
  • Latencia
  • Tabla de enrutamiento

Comandos relacionados

  • ping
  • ip route
  • ip addr
  • ss
  • dig

Curiosidades

El funcionamiento de traceroute se basa en el campo TTL (Time To Live) de los paquetes IP. El programa envía paquetes con un TTL de 1, luego de 2, después de 3, y así sucesivamente. Cada router disminuye el TTL en una unidad y, cuando este llega a cero, devuelve un mensaje ICMP indicando que el paquete ha expirado. Gracias a este mecanismo es posible descubrir todos los routers por los que pasa la comunicación.


Prácticas propuestas

  1. Ejecuta traceroute (o tracert en Windows) hacia www.google.es e identifica cuántos saltos realiza la comunicación.
  2. Realiza el mismo recorrido utilizando la dirección IP 8.8.8.8. ¿Observas alguna diferencia?
  3. Ejecuta traceroute -n 8.8.8.8. ¿Qué ventaja tiene mostrar únicamente las direcciones IP?
  4. Busca algún salto que tarde significativamente más tiempo que los anteriores. ¿Qué podría indicar?
  5. Compara el resultado obtenido desde un equipo Linux y otro Windows.

Consejo: Cuando un ping falla o presenta una latencia elevada, traceroute es una de las primeras herramientas que debes utilizar para localizar en qué punto del recorrido se encuentra el problema.