Comando tracepath: ver saltos y MTU de la ruta en lugar de traceroute
En un servidor Linux, el comando tracepath muestra la ruta (saltos) que siguen los paquetes hasta un destino y la MTU de la ruta, sin privilegios de root. En un servidor AlmaLinux 9 sin traceroute instalado, limitamos el número de saltos a 10 y comprobamos la ruta hasta example.com: hasta el cuarto salto se vieron los tiempos de respuesta y una MTU de ruta de 1500, y los seis saltos siguientes no respondieron.
La salida de abajo se ejecutó en un servidor AlmaLinux 9.8 (cuenta root), y la versión de traceroute y el estado del paquete se comprobaron en un servidor Debian 12 (cuenta normal). Las direcciones IPv6 del primer salto y de los routers intermedios se sustituyeron por direcciones de ejemplo para documentación, y los tiempos de respuesta y los valores de pmtu se dejaron tal cual.
1️⃣ Cómo usar el comando tracepath
tracepath recibe un nombre o una dirección IP de destino, envía paquetes UDP y muestra los saltos que responden, una línea por salto en orden de TTL. El número máximo de saltos por defecto es 30 y se puede cambiar con -m.
Para example.com añadimos -m 10 para comprobar solo hasta el décimo salto.
tracepath -n -m 10 example.com 1?: [LOCALHOST] 0.006ms pmtu 9001
1: fe80::1%eth0 0.077ms pmtu 1500
1: 2001:db8:a::5b 2.627ms asymm 8
2: 2001:db8:a::52 1.473ms asymm 12
3: 2001:db8:b::1e 19.653ms asymm 9
4: 2001:db8:c:: 3.642ms asymm 11
5: no reply
6: no reply
7: no reply
8: no reply
9: no reply
10: no reply
Too many hops: pmtu 1500
Resume: pmtu 1500 Este servidor envió los paquetes a la dirección IPv6 de example.com, y hasta el cuarto salto aparecieron tiempos de respuesta. A partir del quinto salto siguió no reply, así que no apareció la línea reached que indica que se llegó al destino en diez saltos, y la ejecución tardó unos 18 segundos en terminar.
Al ejecutarlo contra el mismo destino sin -m, no terminó en 30 segundos. En rutas con muchos saltos que no responden, se ejecuta con -m para reducir el número de saltos que se comprueban.
La versión de tracepath instalada se comprueba con -V; el tracepath de este servidor era iputils 20210202.
tracepath -Vtracepath from iputils 202102022️⃣ Cómo leer la salida de tracepath
Cada línea de la salida muestra el número de salto, la dirección que respondió y el tiempo de ida y vuelta, en ese orden. Donde cambió la MTU de la ruta se añade pmtu, y si la ida y la vuelta tienen distinto número de saltos se añade asymm. Esto es lo que se revisa en cada línea.
| Salida | Significado |
|---|---|
| 1?: | Campo del número de salto: se añade ? al número estimado cuando la respuesta no dio el TTL |
| [LOCALHOST] | La línea del propio servidor, antes de que el paquete salga a la red |
| 0.077ms | Tiempo de ida y vuelta hasta ese salto |
| pmtu 1500 | MTU de la ruta (bytes) cambiada en ese punto; solo aparece cuando cambia |
| asymm 8 | Diferencia de saltos entre la ida y la vuelta; el manual oficial dice que no es un valor fiable |
| no reply | Salto que no respondió al paquete enviado con ese TTL |
| reached | Línea en la que se llegó al destino |
| Too many hops | Se detiene tras comprobar hasta el número de saltos fijado con -m |
| Resume: pmtu … hops … back … | MTU de toda la ruta, saltos hasta el destino y estimación de los saltos de vuelta |
En la salida de example.com, la pmtu de la primera línea [LOCALHOST] era 9001 y cambió a 1500 en el primer salto. Que la línea de TTL 1 aparezca dos veces cambiando solo la dirección también es el patrón del ejemplo del manual oficial. El manual explica que, si el primer paquete se rechaza en el primer salto por la MTU de la ruta, la misma línea de TTL aparece una vez más.
Al llegar al destino se añade reached al final de la línea, y la última línea Resume muestra el número de saltos hasta el destino. Al enviar a 127.0.0.1 apareció reached en un solo salto, y la línea Resume fue [pmtu 65535 hops 1 back 1].
tracepath -n 127.0.0.1 1: 127.0.0.1 0.047ms reached
Resume: pmtu 65535 hops 1 back 1 Una ruta que termina en Too many hops sin reached no recibió respuesta del destino dentro de los saltos fijados con -m. La ruta de example.com tampoco tuvo reached en diez saltos, así que en la línea Resume solo quedó pmtu, sin número de saltos.
3️⃣ Opciones de tracepath
tracepath tiene solo ocho opciones: -4, -6, -n, -b, -l, -m, -p y -V, y al ejecutarlo sin destino esta lista aparece como mensaje de uso. Sin opciones, resuelve a nombres las direcciones que responden, y al enviar a localhost apareció localhost en el campo del salto.
tracepath localhost 1?: [LOCALHOST] 0.003ms pmtu 65536
1: localhost 0.048ms reached
1: localhost 0.030ms reached
Resume: pmtu 65536 hops 1 back 1 [tracepath -n] muestra solo direcciones IP sin resolver nombres. Al añadir -n para el mismo localhost, el campo del salto cambió a la dirección IPv6 ::1, y al ejecutar la ruta de example.com con -n también aparecieron solo direcciones en el campo del salto.
tracepath -n localhost 1?: [LOCALHOST] 0.005ms pmtu 65536
1: ::1 0.039ms reached
1: ::1 0.010ms reached
Resume: pmtu 65536 hops 1 back 1 -b muestra a la vez el nombre y la dirección. Al añadir -b para 127.0.0.1, la dirección apareció entre paréntesis después del nombre: [localhost (127.0.0.1)].
tracepath -b 127.0.0.1 1: localhost (127.0.0.1) 0.050ms reached
Resume: pmtu 65535 hops 1 back 1 -m es la opción que fija el número máximo de saltos que se comprueban, y aceptó valores de 0 a 255. Con -m 0 aparecieron directamente solo las líneas Too many hops y Resume, sin líneas de saltos, y al poner 256 se rechazó con [out of range].
tracepath -m 0 127.0.0.1 Too many hops: pmtu 65535
Resume: pmtu 65535 -l es la longitud del primer paquete enviado; por defecto es de 65535 bytes en IPv4 y 128000 bytes en IPv6. Al añadir -l 1500 para 127.0.0.1, la pmtu de la línea Resume pasó de 65535 a 1500.
tracepath -l 1500 -n 127.0.0.1 1: 127.0.0.1 0.028ms reached
Resume: pmtu 1500 hops 1 back 1 -p es la opción que fija el primer puerto UDP de destino al que se envía. El resultado de añadir -p 33434 para 127.0.0.1 fue el mismo que sin ella.
| Opción | Copiar | Descripción |
|---|---|---|
| -n | Muestra solo direcciones IP sin resolver nombres | |
| -b | Muestra el nombre y la dirección a la vez | |
| -msaltos | Fija el número máximo de saltos que se comprueban, por defecto 30 | |
| -llongitud | Fija la longitud del primer paquete, por defecto IPv4 65535, IPv6 128000 | |
| -V | Muestra la versión y termina |
| Opción | Copiar | Descripción |
|---|---|---|
| -4 | Envía solo a direcciones IPv4 | |
| -6 | Envía solo a direcciones IPv6 | |
| -pPuerto | Fija el primer puerto UDP de destino al que se envía |
4️⃣ Diferencias entre tracepath y traceroute
En servidores donde no se puede instalar traceroute, la ruta se comprueba con tracepath en lugar de traceroute. El servidor AlmaLinux 9.8 que revisamos no tenía el paquete traceroute, y tracepath viene en el paquete iputils, así que se ejecutó sin instalar nada aparte.
rpm -q traceroutepackage traceroute is not installedEl servidor Debian 12 era lo contrario: traceroute 2.1.2 estaba instalado y el paquete iputils-tracepath, que contiene tracepath, no lo estaba.
traceroute --versionModern traceroute for Linux, version 2.1.2
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any laterapt-cache policy iputils-tracepathiputils-tracepath:
Installed: (none)
Candidate: 3:20221126-1+deb12u1Como muestran estos dos servidores, los comandos disponibles cambian según la distribución, así que primero se comprueba cuál existe en el servidor al que estás conectado. tracepath no necesita privilegios de root y puede ejecutarlo cualquier cuenta que pueda enviar paquetes UDP. El ejecutable de tracepath del servidor AlmaLinux 9.8 también tenía permisos rwxr-xr-x, sin capacidades (capability) añadidas.
| Categoría | tracepath | traceroute |
|---|---|---|
| Servidor AlmaLinux 9.8 | Incluido en el paquete iputils, se ejecuta al momento | No instalado |
| Servidor Debian 12 | Paquete iputils-tracepath no instalado | traceroute 2.1.2 instalado |
| Paquetes enviados | UDP | UDP por defecto, -I para ICMP, -T para TCP |
| Salida por salto | Una línea | Envía tres veces por defecto, tres tiempos (se cambia con -q) |
| Número de opciones | Ocho: -4 -6 -n -b -l -m -p -V | Más de 20 solo en la primera pantalla de --help |
Si necesitas ver la ruta con ICMP o TCP, o enviar varias veces por salto para comparar tiempos, tendrás que instalar y usar el comando traceroute. En servidores donde instalarlo es difícil o donde también quieres ver la MTU de la ruta, tracepath es la opción adecuada.
🔲 Simulador del comando tracepath
En el simulador de abajo puedes volver a ver la ruta de example.com cambiando solo el número de saltos, o escribir tú mismo -n, -b, -m y -l para localhost y 127.0.0.1 y ver las diferencias.
🔢 FAQ & contenido recomendado
Cortafuegos
Instalar FirewallD en Linux y configurar el demonio
Instalación de FirewallD y configuración de su demonio, que gestiona las reglas del cortafuegos con zonas y servicios.
Red · Configuración
Comandos netstat e ifconfig de Linux
Los comandos netstat e ifconfig, que muestran los puertos abiertos, el estado de las conexiones y la información de las interfaces de red.
Red · DNS
Comando nslookup
El comando nslookup, que pregunta a un servidor DNS a qué dirección IP se resuelve un nombre de dominio.
ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.