Cómo Funciona Traceroute: Una Guía Completa
Aprende cómo traceroute descubre la ruta de la red salto a salto. Entiende TTL, ICMP y cómo interpretar los resultados.
¿Qué es Traceroute?
Traceroute es una herramienta de diagnóstico de red que revela el camino que toman los paquetes desde tu dispositivo hasta un host de destino. A diferencia de ping, que solo te dice si un host es alcanzable y cuánto tiempo tarda el viaje de ida y vuelta, traceroute te muestra cada enrutador intermedio (salto) en el camino, junto con la latencia en cada paso.
Los administradores de sistemas, ingenieros de red y equipos de DevOps confían en traceroute a diario para identificar dónde se están retrasando, perdiendo o redirigiendo los paquetes. Entender cómo funciona internamente te hace mucho más efectivo para diagnosticar problemas de conectividad.
Cómo TTL (Tiempo de Vida) Hace Que Todo Funcione
Traceroute explota un mecanismo fundamental en el Protocolo de Internet: el campo TTL (Tiempo de Vida) en el encabezado IP. Cada paquete IP lleva un valor de TTL, un contador que se decrementa en uno cada vez que el paquete pasa a través de un enrutador. Cuando el TTL llega a cero, el enrutador descarta el paquete y envía de vuelta un mensaje ICMP Time Exceeded al remitente original.
Aquí está el proceso paso a paso:
- Enviar un paquete con TTL=1. El primer enrutador lo recibe, decrementa TTL a 0, descarta el paquete y envía de vuelta un mensaje ICMP Time Exceeded. Ahora sabes la dirección IP y la latencia del salto 1.
- Enviar un paquete con TTL=2. Pasa a través del primer enrutador (TTL se convierte en 1), llega al segundo enrutador (TTL se convierte en 0), que envía de vuelta un ICMP Time Exceeded. Ahora conoces el salto 2.
- Repetir con valores de TTL crecientes hasta que el paquete llegue al destino. El host de destino responde de manera diferente, con un ICMP Echo Reply (para el modo ICMP) o un ICMP Port Unreachable (para el modo UDP), señalando que el rastreo está completo.
Típicamente, traceroute envía tres sondas por salto para medir la variabilidad de la latencia. Por eso ves tres valores RTT (Round Trip Time) por línea en la salida.
Leer la Salida de Traceroute
Un resultado típico de traceroute contiene varias columnas de información:
- Número de salto — La posición en el camino (1 es tu puerta de enlace, el último es el destino).
- Dirección IP / Nombre de host — La dirección del enrutador. El DNS inverso puede resolverlo a un nombre de host como
ae-5.r24.amstnl02.nl.bb.gin.ntt.net, que a menudo revela el ISP, la ciudad y el rol del enrutador. - RTT (Round Trip Time) — Usualmente tres valores en milisegundos. Menor es mejor. Grandes saltos entre saltos consecutivos indican un cuello de botella.
- ASN (Número de Sistema Autónomo) — Identifica qué red opera el enrutador. Útil para detectar dónde cruza el tráfico entre ISPs.
- Pérdida de paquetes — El porcentaje de sondas que no recibieron respuesta. Algo de pérdida en saltos intermedios es normal (los enrutadores depriorizan ICMP), pero la pérdida en el salto final indica un problema real.
Traceroute vs MTR: ¿Cuál es la Diferencia?
traceroute se ejecuta una vez y te da una instantánea. mtr (My Traceroute) combina traceroute y ping en una sola herramienta que sondea continuamente el camino y actualiza estadísticas en tiempo real.
Diferencias clave:
- Monitoreo continuo: mtr sigue enviando sondas, por lo que puedes observar problemas intermitentes que un solo traceroute podría perder.
- Precisión estadística: Después de cientos de sondas, mtr te da valores promedio, mejores, peores y desviación estándar confiables para cada salto.
- Detección de pérdida de paquetes: Picos breves de pérdida de paquetes son visibles en mtr pero invisibles en un traceroute de una sola vez.
Usa traceroute para verificaciones rápidas. Usa mtr cuando necesites construir un caso con datos estadísticamente significativos, por ejemplo, al presentar una queja a tu ISP.
ICMP vs UDP vs TCP: Elegir un Protocolo
Traceroute puede usar diferentes protocolos para enviar sus paquetes de sondeo, cada uno con sus compensaciones:
- UDP (predeterminado en Linux/macOS): Envía datagramas UDP a puertos de alto número (33434+). Funciona bien en la mayoría de los entornos, pero puede ser bloqueado por firewalls.
- ICMP (predeterminado en Windows): Envía paquetes ICMP Echo Request, los mismos que usa
ping. Algunos enrutadores limitan la tasa o descartan ICMP, produciendo tiempos de espera falsos. - TCP: Envía paquetes TCP SYN, generalmente al puerto 80 o 443. Excelente para atravesar firewalls que bloquean UDP e ICMP pero permiten tráfico web.
Si ves demasiadas líneas * * * (tiempo de espera), intenta cambiar de protocolo. Para una comparación detallada, consulta nuestra guía sobre UDP vs ICMP vs TCP Traceroute.
Problemas Comunes y Cómo Interpretarlos
Timeouts (* * *)
Una fila de asteriscos significa que el enrutador no envió de vuelta un mensaje ICMP Time Exceeded dentro de la ventana de tiempo de espera. Esto no significa necesariamente que el enrutador esté caído; muchos enrutadores están configurados para descartar silenciosamente paquetes expirados. Si los saltos posteriores responden normalmente, el tiempo de espera es inofensivo.
Picos de Latencia en un Solo Salto
Un salto repentino en RTT en un salto, digamos de 15 ms a 120 ms, sugiere congestión o un enlace físico largo (por ejemplo, un cable transatlántico). Verifica si la latencia se mantiene alta para todos los saltos posteriores. Si es así, el cuello de botella es real. Si los saltos posteriores vuelven a la normalidad, el enrutador simplemente fue lento al generar respuestas ICMP (depriorización del plano de control).
Enrutamiento Asimétrico
Traceroute solo muestra el camino hacia adelante. El camino de regreso puede ser diferente. Esto puede causar resultados confusos donde la latencia parece disminuir entre saltos; la respuesta ICMP simplemente está tomando una ruta más corta de regreso.
Bucles
Si ves la misma dirección IP apareciendo en múltiples saltos consecutivos, hay un bucle de enrutamiento. Esto generalmente se resuelve por sí mismo en minutos a medida que los enrutadores convergen, pero los bucles persistentes indican una mala configuración.
Ejemplos Prácticos
Aquí hay escenarios comunes del mundo real donde traceroute resulta invaluable:
- Diagnóstico de carga lenta de sitios web: Ejecuta un traceroute al servidor y busca saltos de alta latencia. Si el pico de latencia ocurre en el borde de tu ISP, contáctalos. Si ocurre en la red del destino, el problema está de su lado.
- Verificación de enrutamiento de CDN: Traceroute a un dominio con CDN para confirmar que el tráfico va al nodo de borde más cercano en lugar de cruzar continentes.
- Depuración de conectividad VPN: Compara traceroutes con y sin VPN para ver si el túnel está agregando latencia excesiva o enrutando a través de ubicaciones inesperadas.
- Investigación de retrasos en juegos: Identifica el salto exacto que causa jitter para que puedas informarlo a tu ISP con evidencia.
Visualiza Tus Traceroutes con TraceMapper
Traceroute en línea de comandos es poderoso, pero interpretar la salida de texto en bruto puede ser tedioso. TraceMapper ejecuta traceroutes desde múltiples ubicaciones globales y traza cada salto en un mapa interactivo, completo con codificación de colores de latencia, información de ASN y datos de geolocalización. Puedes cambiar entre los protocolos ICMP, UDP y TCP con un solo clic.
Prueba un traceroute gratuito ahora, o explora nuestras otras herramientas de diagnóstico de red: Ping, DNS Lookup, y HTTP Check.