En este artículo, discutiremos todo lo que desea saber sobre el comando traceroute de Linux y cómo usarlo en su práctica diaria.
Traceroute es una utilidad de línea de comandos que imprime la ruta (o saltos) que toma un paquete para llegar a otro host. Se utiliza para el diagnóstico de red. Como sugiere su nombre, el objetivo principal de un traceroute es rastrear la ruta IP desde un origen hasta un destino dentro de una red IP, lo que permite a los administradores resolver mejor los problemas de conectividad. Traceroute no solo le dirá si tiene conectividad, sino que le indicará dónde está el problema con precisión y por qué sucedería.
Traceroute le brinda información completa sobre la ruta que tomarán sus datos para llegar a su destino. Por ejemplo, si el su computadora (fuente) está en Los Ángeles, California y el servidor en Nueva York (destino) , traceroute identificará la ruta completa, cada salto (las computadoras, los enrutadores o cualquier dispositivo que se interponga entre el origen y el destino) en la ruta y el tiempo que se tarda en ir y volver.
Sin embargo, en Internet, los mensajes de Traceroute a menudo son bloqueados por enrutadores en varios Sistemas Autónomos, lo que hace que Traceroute sea inexacto en algunos casos.
Cómo funciona Traceroute
Traceroute suele utilizar paquetes de eco ICMP (Protocolo de mensajes de control de Internet) con valores TTL (Tiempo de vida) variables. Para garantizar la precisión, cada salto se consulta varias veces y se calcula el tiempo de respuesta de cada salto.
El comando traceroute de Linux funciona manipulando el TTL. El propósito de TTL es limitar cuánto tiempo vivirán los datos en una red IP. A cada paquete de datos que se envía se le asigna un valor TTL. Cuando un paquete de datos alcanza un salto en el camino hacia el dispositivo de destino, el valor TTL se reduce en 1.
Cuando un enrutador reduce el valor del conteo de saltos de un paquete a cero, envía un mensaje de error ICMP "tiempo excedido" a la dirección IP de origen en el paquete; de lo contrario, reenvía el paquete.
Una herramienta de traceroute envía paquetes a una IP de destino y con un TTL establecido en 1, de modo que el primer enrutador al que lleguen los paquetes enviará un error de "tiempo excedido". Cuando vuelve el error, la herramienta traceroute registra la identidad del primer enrutador y el tiempo de ida y vuelta, incrementa el TTL y envía nuevos paquetes, repitiendo este proceso hasta que el último paquete llega a la IP de destino o se descartan dos conjuntos de paquetes.
Cómo utilizar el comando traceroute en Linux
Comencemos con un ejemplo simple. Ejecutemos el traceroute
comando para www.google.com
dominio.
traceroute www.google.com
traceroute to www.google.com (142.251.33.4), 30 hops max, 60 byte packets
1 63.133.178.109 (63.133.178.109) 0.210 ms 0.268 ms 0.214 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0.311 ms 0.317 ms 0.354 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 1.260 ms 2.320 ms 2.304 ms
4 as15169.dal33.ip4.gtt.net (199.229.230.118) 3.595 ms 2.464 ms 1.365 ms
5 108.170.240.129 (108.170.240.129) 2.636 ms 108.170.240.193 (108.170.240.193) 1.501 ms 108.170.240.129 (108.170.240.129) 2.620 ms
6 142.251.60.143 (142.251.60.143) 1.480 ms 1.499 ms 142.251.60.145 (142.251.60.145) 1.473 ms
7 dfw25s44-in-f4.1e100.net (142.251.33.4) 1.425 ms 1.622 ms 1.587 ms
La primera línea nos da la siguiente información:
- El destino (www.google.com) y su dirección IP (142.251.33.4).
- El número de saltos
traceroute
lo intentará antes de darse por vencido (30 saltos). - El tamaño de los paquetes UDP que enviamos (60 bytes).
El resto del resultado muestra todos los enrutadores por los que pasaron nuestros paquetes. En cada una de las líneas podemos encontrar información sobre el nombre y la dirección IP del host. Los siguientes tres valores representan los tiempos de ida y vuelta para un enrutador dado.
En nuestro caso, para conectarse a www.google.com, la solicitud debe pasar por siete enrutadores diferentes. En el resultado, podemos ver que el último (142.251.33.4) es el host de destino para www.google .com dominio.
Ocultar nombres de dispositivos
Como hemos visto, a veces incluir nombres de dispositivos genera una pantalla desordenada. Para que sea más fácil ver los datos, puede usar el comando traceroute en Linux con -n
opción.
traceroute -n www.google.com
traceroute to www.google.com (142.251.33.4), 30 hops max, 60 byte packets
1 63.133.178.109 0.142 ms 0.224 ms 0.207 ms
2 69.174.3.1 0.306 ms 0.303 ms 0.323 ms
3 213.254.230.210 11.812 ms 11.784 ms 11.771 ms
4 199.229.230.118 6.516 ms 1.851 ms 4.416 ms
5 108.170.240.129 2.944 ms 108.170.240.193 2.009 ms 108.170.240.129 2.920 ms
6 142.251.60.143 1.928 ms 1.928 ms 1.933 ms
7 142.251.33.4 1.937 ms 1.922 ms 1.926 ms
Establecer el número máximo de saltos con el comando traceroute de Linux
Agregando un -m
extra parámetro podemos especificar el número máximo de saltos traceroute
sondeará:
traceroute -m 3 www.google.com
traceroute to www.google.com (142.251.33.4), 3 hops max, 60 byte packets
1 63.133.178.109 (63.133.178.109) 0.170 ms 0.187 ms 0.172 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0.299 ms 0.300 ms 0.301 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 2.727 ms 2.753 ms 2.736 ms
Ahora, la salida consistirá solo en los primeros tres enrutadores. El valor predeterminado para -m
el parámetro es 30. Por lo tanto, asegúrese de aumentarlo en los casos en que el número de saltos pueda exceder los 30.
Configuración del número de paquetes de sondeo por salto
De forma predeterminada, traceroute
envía tres paquetes UDP a cada salto. Podemos usar -q
opción para ajustar esto hacia arriba o hacia abajo.
Para acelerar el traceroute
escribimos lo siguiente para reducir el número de paquetes de sondeo UDP a uno:
traceroute -q 1 www.google.com
traceroute to www.google.com (142.251.33.4), 30 hops max, 60 byte packets
1 63.133.178.109 (63.133.178.109) 0.160 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0.272 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 2.190 ms
4 as15169.dal33.ip4.gtt.net (199.229.230.118) 1.853 ms
5 108.170.240.129 (108.170.240.129) 3.063 ms
6 142.251.60.145 (142.251.60.145) 1.993 ms
7 dfw25s44-in-f4.1e100.net (142.251.33.4) 1.952 ms
Conclusión
El traceroute
de Linux El comando es una excelente herramienta para investigar el enrutamiento de la red, verificar las velocidades de conexión o identificar cuellos de botella. Está disponible en todas las distribuciones populares de Linux. Al usar esta herramienta, a menudo empleará los métodos descritos en este artículo.
Para obtener más información sobre traceroute
comando en Linux, consulte su página de manual.