En qué consiste el comando Tracert o Traceroute

En qué consiste el comando Tracert o Traceroute

Oscar Espinosa

Muchas veces los usuarios nos podemos encontrar que no podemos acceder a un equipo de nuestra red, un sitio web, un recurso en la red, etc. Es por eso, por lo que una de las herramientas más útiles que tenemos para diagnosticar problemas de conexión es el llamado «tracert» o «traceroute» que nos permite saber por qué ruta pasamos hasta llegar al host de destino. En este artículo te vamos a explicar para qué sirve, cómo se puede utilizar y qué opciones tiene este comando disponible en todos los sistemas operativos.

Qué es Tracert o Traceroute

El comando Tracert se ejecuta en la consola de símbolo de sistema en los sistemas operativos Windows. Gracias a este comando, podremos seguir la pista a los paquetes que vienen desde un host. Cuando ejecutamos el comando «Tracert» obtenemos una estadística de la latencia de red de esos paquetes, lo que es una estimación de la distancia (en saltos) a la que están los extremos de la comunicación.

Aunque Windows lo denomina «tracert», en sistemas operativos basados en UNIX, el nombre de esta herramienta que viene por defecto se denomina «traceroute». La herramienta traceroute es exactamente la misma que el tracert, pero se denomina de otra forma, aunque internamente puede hacer uso de diferentes protocolos, ya que en algunos sistemas operativos se hace uso del protocolo ICMP Echo Request/reply, y en otros de hace uso de mensajes UDP directamente para comprobar cuántos saltos hay de un equipo a otro.

Estamos ante una opción de diagnóstico para detectar posibles problemas en la conexión. Por ejemplo si estamos intentando conectar con un equipo que hay en nuestra red y no podemos, así como cualquier tipo de servidor, como podría ser mismamente RedesZone.net o cualquier otra página web con la que estemos teniendo problemas para acceder.

Al enviar estos paquetes vamos a obtener cierta información estadística que nos puede ayudar a solucionar esos problemas que mencionamos. Actúa básicamente como eso, como una herramienta nativa del sistema operativo que nos va a mostrar datos relevantes de la conexión.

Cómo funciona el comando Tracert o Traceroute

El comando de diagnóstico Tracert nos determina la ruta a un destino introducido mediante el envío de paquetes «ICMP echo», usando el protocolo de mensajes de control de Internet más conocido como “ICMP” al destino host. Estos paquetes que se envían usan los valores de período de vida (TTL) por defecto, o que nosotros le indiquemos mediante las opciones del comando Tracert.

Cuando enviamos un paquete de datos, los routers disminuyen este TTL del paquete en una unidad antes de reenviar el paquete al siguiente punto del camino. Por eso, gracias al TTL podemos saber la cantidad de «saltos» que ha dado el paquete desde un origen hasta un destino. Sin embargo, cuando el TTL de un paquete llega al valor cero, sin alcanzar su destino final, el router devuelve al equipo de origen un mensaje ICMP de «Tiempo agotado».

El comando Tracert funciona enviando primero un paquete «ICMP echo» con un TTL de 1 y aumenta el TTL en 1 en cada transmisión posterior, hasta que llega al destino final o hasta que se alcanza el TTL máximo. Gracias a los routers intermedios que devuelven el mensaje ICMP de «Tiempo agotado», podemos saber la ruta que está siguiendo el paquete de datos enviado desde nuestro equipo hasta el host de destino. Sin embargo, puede ocurrir que algunos routers envíen paquetes de “Tiempo agotado” TTL sin avisar y estos paquetes son invisibles para el comando Tracert.

Una vez sabemos esto, podemos comprender que el comando Tracert funciona mostrando por pantalla, una lista ordenada de los enrutadores intermedios que devuelven el mensaje ICMP de «tiempo agotado». Veamos un ejemplo introduciendo el comando Tracert www.redeszone.net en la consola de símbolo de sistema:

La primera línea del comando, nos describe lo que este está realizando. En este caso nos lista el sistema de destino con la IP 185.103.23.27 y el número máximo de saltos que tracert usará. A mayores, nos especifica que hará un máximo de 30 saltos.

En la imagen de arriba del comando Tracert hacia nuestra web www.redeszone.net, podemos ver que para llegar al servidor web de destino tiene que dar ocho saltos. Además, en cada salto nos muestra el tiempo mínimo, medio y máximo de cada salto del paquete de datos, y al final nos indica la IP que alcanzó dicho salto. En este caso concreto podemos observar como alguno de estos datos no los proporciona, y por eso muestra un asterisco.

Si hablamos del tiempo de ida y vuelta, esto lo podemos definir como Roud Trip Time (RTT). Esto es el tiempo que le toma al paquete desde que sale de nuestro sistema, hasta que llega después de pasar por el destino. Por defecto, este envía 3 paquetes en cada salto, lo que quiere decir que envía tres RTT. Uno de los factores a tener en cuenta, es que la distancia física entre diferentes saltos puede hacer que estos RTT tengan un tiempo mayor de ida y vuelta.

El comando tracert puede realizarse tanto a nombres de dominio, ya que internamente el sistema operativo resolverá dicho dominio para realizar el tracert a la dirección IP pública asociada, como también permite realizar traceroute a nombres de host, por si estamos en una red local o utilizamos DNS Dinámico, y, por supuesto, permite realizar esta prueba a direcciones IPv4 y IPv6. En el caso de IPv6 la sintaxis sería exactamente la misma, aunque en algunos sistemas operativos debemos indicar con un «flag» que queremos utilizar IPv6, ya que, por defecto, viene configurado para IPv4.

Cómo podemos utilizar el comando TRACERT para detectar problemas

El comando Tracert nos puede ser muy útil para averiguar si hay algún problema en el camino hacia un equipo de la red interna, externa o sitio web. Imaginemos que queréis entrar en nuestro sitio web www.redeszone.net, y no os carga la web. Aparte de realizar por ejemplo un PING hacia nuestra web, podemos ejecutar también el comando Tracert para averiguar si la comunicación hacia el host de destino se pierde o interrumpe en algún punto del camino. Gracias a estos resultados, podemos averiguar en qué punto ocurre el problema e incluso avisar para que solucionen el problema en dicho router, o si es a nivel de red interna poder solucionarlo.

Tenemos que tener en cuenta que el comando tracert es muy útil en redes locales muy grandes, donde un paquete puede elegir diferentes caminos para llegar a su host de destino. Gracias a esto, podemos saber por cuáles equipos está pasando el paquete de datos enviado, y así poder mejorar el rendimiento de la red local. Ahora veremos un ejemplo de lo que sucede cuando el comando Tracert envía un paquete de datos que no puede llegar a su destino:

Como podemos observar el paquete va saltando de router a router, buscando el host de destino. Algunos routers muestran el mensaje de error de “tiempo de espera agotado”, esto es porque seguramente tengan limitado el tracert en sus equipos ya que forma parte de la red interna del operador. Pero no quiere decir que el paquete se haya perdido en el destino final, no a afectar a las aplicaciones usadas en estos routers.

A esta práctica se le llama ICMP Rate Limiting, la cual se usa para prevenir que los routers queden afectados por ataques como la denegación de servicios.

Otras de las opciones que tenemos para que se agote el tiempo de espera, sobre todo en el paso final pueden ser las siguientes.

  • El firewall del destino bloquea la solicitud. Incluso si esté está impidiendo que los últimos saltos se muestren en tracert, es probable que si podamos llegar al destino usando una otra aplicación.
  • Posibles problemas en las trayectorias de retorno. Recordamos que el tiempo de ida y vuelta miden el tiempo que le toma al paquete realizar el viaje desde nuestro sistema al destino, y regresar. Podría darse el caso de que la ida y la vuelta sigan diferentes trazados, y esto hará que tracert no muestre la información de forma correcta.
  • Posibles problemas con el destino en particular o algún sistema próximo.

Incrementos en la latencia

Un tracert puede mostrar un incremento significativo en saltos medios, que podría continuar incrementándose hasta el destino. Estos no puede indicar algún problema en la red, llegando al punto que alguno nos muestre un asterisco (*). Este tipo de tendencia, se debe reportar, pues cuando esta se incrementa también puede indicar que la red puede estar congestionada, pudiendo ser varias partes las que lo ocasionan.

Sobre todo los gamers cuando tienen problemas de latencia con sus juegos, hacen uso de la herramienta tracert o traceroute con el objetivo de reportarlo a sus compañías de Internet, de essta forma, se les puede proporcionar información muy valiosa sobre dónde está el problema de alta latencia, y es que el problema podría ser en uno de los «saltos» entre router y router.

Opciones del comando Tracert

Cuando usamos el comando Tracert, además de escribir en la consola de símbolo de sistema el comando Tracert y la dirección IP o nombre del servidor, podemos escribir una serie de opciones para modificar u obtener unos datos extra, para ello deberemos introducir el comando “Tracert” un espacio, y seguido una de las opciones que os indicamos debajo. Un ejemplo sería: Tracert -d 192.168.1.1

Veamos que opciones tenemos:

  • -d: Esta opción hace que el comando Tracert no efectúe una búsqueda de DNS en todas las direcciones IP. Es decir, en lugar de mostrar el nombre del router, nos mostrará solo su dirección IP.
  • -h: Esta opción nos permite especificar el número de saltos máximos que puede realizar el comando Tracert. Para ello deberemos introducir el comando de la siguiente manera. Tracert -h «número de saltos» «dirección ip o nombre del host».
  • -j: Esta opción sirve indicar al comando tracert cuál será el origen no estricto de la petición hacia el host. Para ello, deberemos introducir la opción -j, un espacio, seguido del host de origen que deseemos. Solo funciona con direcciones IP IPv4.
  • -w: Esta opción sirve indicar el tiempo de espera máximo en milisegundos en cada respuesta antes de dar fallo de conexión. Para ello deberemos introducir la opción -w, un espacio, y el tiempo en milisegundos que deseemos.
  • -R: Esta opción sirve para seguir la ruta de retorno. Sólo funciona con direcciones IP IPv6.
  • -S: Esta opción sirve para indicar al comando tracert qué dirección de origen queremos usar. Para ello deberemos introducir la opción -s, un espacio, seguido de la dirección IP de origen.
  • -4: Esta opción nos sirve para forzar el uso de direcciones IP IPv4.
  • -6: Esta opción nos sirve para forzar el uso de direcciones IP IPv6.

Como hemos podido ver, el comando Tracert no solo nos sirve para saber qué ruta sigue el envío de un paquete de datos hacia su destino host final. Sino que nos sirve también para diagnosticar el rendimiento de la red, si hay algún fallo en algún enrutador interno de nuestra red local, o si existe algún problema en algún enrutador externo hacia otro servidor. Sin lugar a dudas, el comando tracert puede aclararnos muchas dudas y cuestiones sobre un problema de red que tengamos. Si tenéis alguna duda, dejárnosla en los comentarios.

¡Sé el primero en comentar!