traceroute - cartografiando el viaje de los paquetes
Si ping es la herramienta que verifica "si el destino es alcanzable", traceroute es la herramienta que visualiza "qué camino toman los datos para llegar". Cuando accedes a IP Check-san, los paquetes pasan por decenas de dispositivos de red: desde tu router doméstico, pasando por el ISP, un IX (Internet Exchange Point), cables submarinos y centros de datos. traceroute muestra la dirección IP y la latencia de cada salto (punto de retransmisión) a lo largo de esa ruta.
El truco del TTL - un mecanismo ingenioso
El principio de funcionamiento de traceroute aprovecha hábilmente el campo TTL (Time To Live) de los paquetes IP.
El TTL es un contador que se reduce en 1 cada vez que un paquete atraviesa un router. Cuando el TTL llega a 0, ese router descarta el paquete y envía un mensaje ICMP Time Exceeded al origen. Este mecanismo fue diseñado para evitar que los paquetes circulen indefinidamente por la red.
traceroute aprovecha este mecanismo de forma inversa:
- Envía un paquete con TTL=1 → el TTL llega a 0 en el primer router, que devuelve un ICMP Time Exceeded → se descubre la dirección IP y la latencia del primer salto
- Envía un paquete con TTL=2 → el TTL llega a 0 en el segundo router → se descubre el segundo salto
- Incrementa el TTL a 3, 4, 5... sucesivamente hasta alcanzar el destino final
Esta simple idea de "incrementar el TTL de uno en uno" es lo que hace posible la visualización de las rutas de red.
traceroute y tracert - diferencias entre Unix y Windows
En Unix/Linux/macOS el comando se llama traceroute, mientras que en Windows se llama tracert. No solo difieren en el nombre, sino también en su comportamiento predeterminado:
- traceroute en Unix: utiliza paquetes UDP por defecto. Envía paquetes incrementando el puerto de destino desde 33434, y cuando alcanza el destino recibe un ICMP Port Unreachable
- tracert en Windows: utiliza ICMP Echo Request por defecto. Al usar el mismo protocolo que ping, es más susceptible a los firewalls que bloquean ICMP
El traceroute de Unix puede cambiar al modo ICMP con la opción -I o al modo TCP con -T. En entornos donde los firewalls bloquean UDP o ICMP, el modo TCP (puertos 80 o 443) resulta efectivo.
Interpretando la salida de traceroute
Una salida típica de traceroute tiene este aspecto:
1 192.168.1.1 1.2 ms 0.9 ms 1.1 ms2 10.0.0.1 5.3 ms 4.8 ms 5.1 ms3 203.0.113.1 12.4 ms 11.9 ms 12.2 ms4 * * *5 198.51.100.1 85.3 ms 84.7 ms 85.1 ms6 93.184.216.34 90.2 ms 89.8 ms 90.5 ms
- Salto 1: tu router doméstico. La latencia es de aproximadamente 1 ms, comunicación dentro de la red local
- Saltos 2-3: routers dentro de la red del ISP. La latencia aumenta gradualmente
- Salto 4 "* * *": este router está configurado para no devolver ICMP Time Exceeded. El paquete pasa a través de él, simplemente no responde. No es una avería
- Salto 5: la latencia aumenta drásticamente (de 12 ms a 85 ms). Es muy probable que aquí se esté cruzando un cable submarino
- Salto 6: el servidor de destino
Se realizan 3 mediciones en cada salto porque la latencia de red fluctúa, y múltiples mediciones aumentan la fiabilidad.
La "geografía de internet" visible con traceroute
A partir de los resultados de traceroute, se puede deducir la ruta física de los paquetes:
- Aumentos bruscos de latencia: en los saltos que cruzan cables submarinos intercontinentales, la latencia aumenta en decenas de milisegundos. Un incremento de 50-60 ms de Tokio a Los Ángeles, o de 100-120 ms de Tokio a Londres, es típico
- Nombres geográficos en los hostnames: muchos ISP y operadores incluyen nombres de ciudades en los hostnames de sus routers. Abreviaturas como
tky(Tokio),lax(Los Ángeles) oams(Ámsterdam) permiten leer la ruta geográfica de los paquetes - Números AS: con
traceroute -a(Linux) se puede mostrar el número AS (Autonomous System) de cada salto. A partir del número AS se puede saber por qué red de qué organización pasan los paquetes
Limitaciones y consideraciones de traceroute
- Rutas asimétricas: los paquetes de ida y vuelta pueden tomar caminos diferentes. traceroute solo muestra la ruta de ida
- Túneles MPLS: si el ISP utiliza MPLS (Multi-Protocol Label Switching), los saltos dentro del túnel pueden no ser visibles
- Balanceadores de carga: al ejecutar traceroute varias veces hacia el mismo destino, pueden aparecer rutas diferentes. Esto se debe a que los balanceadores de carga distribuyen los paquetes por diferentes caminos
- Limitación de tasa: si un router limita la tasa de envío de ICMP Time Exceeded, la latencia puede aparecer mayor de lo real
Resumen
traceroute es una herramienta excelente que utiliza el simple mecanismo del TTL para visualizar la ruta de los paquetes. Si trazas con traceroute la ruta hacia la dirección IP que verificaste en IP Check-san, podrás ver por qué ISP, qué ciudades y qué cables submarinos pasan tus paquetes. La experiencia de ver con tus propios ojos el "mapa" de internet profundizará tu comprensión de las redes.