¿Cómo funciona traceroute, y qué papel juega el campo TTL?
Respuesta breve
Traceroute descubre los routers entre tú y un destino explotando el campo TTL. Envía paquetes con TTL=1, luego 2, luego 3, y así sucesivamente. Cada router decrementa el TTL; cuando el TTL llega a cero, ese router descarta el paquete y devuelve un mensaje ICMP Time Exceeded, revelando su dirección. Al ir subiendo el TTL, traceroute mapea cada salto en orden hasta alcanzar el destino.
Traceroute responde a «¿qué ruta toma mi tráfico para llegar a este host, y dónde es lento o se rompe?». Es un truco ingenioso sobre un campo que existe para evitar bucles de enrutamiento: el TTL. Entenderlo demuestra que comprendes cómo se comportan los routers e ICMP.
El truco del TTL
Cada paquete IP lleva un valor Time To Live. Su función real es la prevención de bucles: cada router que reenvía un paquete decrementa el TTL en 1, y cuando el TTL llega a 0, el router descarta el paquete y devuelve un mensaje ICMP Time Exceeded al origen.
Traceroute aprovecha esto a propósito:
- Enviar una sonda con TTL = 1. El primer router lo decrementa a 0, lo descarta y responde con Time Exceeded — ahora conoces el salto 1.
- Enviar una sonda con TTL = 2. Sobrevive al primer router y muere en el segundo, que responde — ahora conoces el salto 2.
- Seguir incrementando. Cada ronda revela el siguiente router de la ruta, en orden, junto con el tiempo de ida y vuelta.
Alcanzar el destino
Los saltos intermedios responden con Time Exceeded. El destino final se detecta de forma distinta: según la variante, responde con ICMP Echo Reply (sondas ICMP), ICMP Port Unreachable (sondas UDP clásicas a un puerto alto) o un TCP SYN-ACK/RST (sondas TCP). Esa respuesta diferente es cómo traceroute sabe que ha llegado.
Leer la salida
Los asteriscos (* * *) significan sin respuesta para ese salto — a menudo un router configurado para no enviar ICMP, un cortafuegos descartando sondas o limitación de tasa. No significan necesariamente una ruta rota. Un tiempo variable o un salto repentino puede indicar congestión o un enlace de larga distancia.
Los entrevistadores quieren el mecanismo del TTL creciente, la respuesta ICMP Time Exceeded e idealmente por qué algunos saltos no muestran respuesta.
Posibles preguntas de seguimiento
- ¿Por qué algunos saltos muestran asteriscos (sin respuesta) en la salida de traceroute?
- ¿Cómo se detecta el destino de forma distinta a los saltos intermedios?
- ¿Cuál es la diferencia entre traceroute basado en ICMP, UDP y TCP?