noticias
Serverspace Tecnologías en los Emiratos Árabes Unidos: lanzamiento de Falconcloud
HW
4 de Julio de 2023
Actualizado julio 25, 2023

Traceroute: rastreo de red en Linux

Linux Redes Ubuntu

Imagine la situación: el software requerido está instalado y configurado. Este software se comunica con los servidores de la red (cualquier aplicación web que envíe solicitudes a la base de datos remota, sistema de copia de seguridad de la red, etc.). Hasta un momento todo funciona correctamente sin demoras, pero de repente comienza a funcionar lentamente o incluso deja de funcionar. ¿Cómo entender en qué servidor ocurrió el problema? ¿En qué punto de la transmisión del tráfico aparecieron retrasos o restricciones?

La utilidad Ping puede ayudar a aclarar si se puede acceder al servidor remoto, pero los diagnósticos adicionales requerirán otras herramientas. Uno de ellos es Traceroute, una utilidad que es capaz de realizar el seguimiento de conexiones de red. Traceroute muestra los nodos (enrutadores) por los que pasa el paquete y cuánto tiempo lleva procesar el paquete en cada nodo.

La utilidad suele venir preinstalada y se puede utilizar en cualquier momento. Si no está disponible por algún motivo, puede instalarse desde el repositorio de distribución estándar mediante el administrador de paquetes:

    • para distribución basada en deb:
sudo apt install traceroute
    • para distribución basada en rpm:
sudo yum install traceroute



Cómo funciona rastrear ruta

La utilidad rastrea los nodos en los que llega el paquete de red durante su transmisión al host de destino. El protocolo UDP se utiliza de forma predeterminada: datos UDPram se crea y empaqueta en un paquete IP. En uno de los encabezados de los paquetes, traceroute establece el valor de TTL (Time To Live) paraméter a 1. Este parameter se utiliza para limitar el número de transiciones de un enrutador a otro, es decir, permite evitar la transmisión de paquetes infinitos entre enrutadores (por ejemplo, en el caso de un protocolo de enrutamiento dinámico mal configurado o errores en rutas estáticas). Cada enrutador que recibe un paquete reduce el valor TTL en 1 antes de enviarlo a la red. En una situación en la que la próxima disminución de TTL sea igual a 0, el paquete se considera no entregado y descartado, mientras que el enrutador responde al remitente con un mensaje de error.

Por lo tanto, con TTL = 1 traceroute recibir una respuesta del primer enrutador determina su dirección IP y el tiempo empleado en procesar el paquete. Después de eso, el TTL se incrementa en uno para determinar el siguiente enrutador, y así sucesivamente hasta que el paquete llega al host de destino. La utilidad utiliza la dirección IP (o nombre) especificada y el puerto 34434 de forma predeterminada. El host de destino recibe el paquete y envía un error sobre la falta de disponibilidad del puerto 34434 (porque en la mayoría de los casos no es utilizado por ningún servicio y está cerrado). Como resultado, se realiza un seguimiento de toda la cadena de paquetes que finaliza con una respuesta del host de destino.

Un enrutador es cualquier dispositivo que transmite un paquete de una subred a otra, no necesariamente un dispositivo de red especializado, sino cualquier servidor de red. Esto es especialmente importante para la arquitectura de microservicios de aplicaciones que utilizan tecnologías de contenedorización. Al analizar el tiempo dedicado a la transición de un enrutador a otro, puede intentar determinar en cuál de ellos están apareciendo retrasos, tal vez debido a la falta de recursos en uno de los servidores, o debido a un mal funcionamiento del sistema de disco, etc. El paquete no llegará a un host de destino si uno de los servidores no está disponible y la utilidad determinará en qué punto de la transferencia sucede esto. Además, el paquete no llegará si el filtrado de tráfico está en vigor (lo que significa que interfiere con la transmisión del paquete).

Lanzamiento de ruta

El nombre del host de destino o la dirección IP es obligatorio para la utilidad:

traceroute linux.org

Salida:

tracing connection to linux.org

Qué datos recopila la utilidad y se muestran en la tabla:

  • tomó 5 transiciones (saltos), este valor está en la primera columna;
  • La dirección IP y el nombre (si está disponible) del próximo enrutador se determinan en cada salto;
  • tiempo (RTT - Tiempo de ida y vuelta) empleado en enviar y recibir una solicitud del enrutador.

Traceroute envía tres paquetes UDP de forma predeterminada, por lo que se muestran tres valores RTT en la salida. Para la primera línea es 3.034 ms, 5.349 ms, 5.325 ms. Otro valor predeterminado es el número de saltos por los que puede pasar un paquete, es decir, TTL = 30. Se puede especificar un valor arbitrario, por ejemplo 35, en la línea de comando con la opción "-m 35". En algunos saltos, se puede definir más de un enrutador; esto se debe a la presencia de múltiples rutas en este punto. Al enviar tres paquetes UDP a la vez, la respuesta puede provenir de tres enrutadores diferentes, y también se especifica RTT para cada uno. Un ejemplo de tal respuesta en el cuarto salto: se determinan las IP 172.71.180.2 y 172.71.100.2 a través de las cuales se pueden entregar los paquetes al host de destino.

Es necesario prestar atención a los saltos con alto RTT; esto significa que el enrutador tarda mucho tiempo en procesar el paquete y se debe encontrar la razón de tal retraso.

Vale la pena señalar que la respuesta puede llegar al remitente por otra ruta debido a la presencia de un alternative ruta o el uso de tecnologías de equilibrio de carga. Si hay un RTT alto en algún salto, debe ejecutar la utilidad nuevamente y verificar el resultado.
Además, los filtros de paquetes pueden estar en efecto en uno de los enrutadores, o puede ser un enrutador especializado. firewall dispositivo. En este caso, podría haber restricciones para el puerto o el protocolo UDP, y se mostrarán tres asteriscos en la salida de traceroute (es decir, se ha excedido el tiempo de espera de respuesta):

traceroute mongodb.org

tracing mongodb.com

El recurso mongodb.com está disponible pero los paquetes UDP están filtrados.

Traceroute puede usar el protocolo ICMP en lugar de UDP: se envía una solicitud de "Solicitud de eco", también se reciben mensajes ICMP en respuesta, no se usa ningún puerto. Por lo demás no hay diferencia. La opción "-I" en la línea de comandos para el seguimiento ICMP:

traceroute mongodb.org -I

tracing mongodb.com with icmp

Se puede ver que se recibió la respuesta del host de destino, aunque no hubo respuestas entre 5 y 21 saltos.
También se puede usar el protocolo TCP (opción "-T"); en este caso, las solicitudes SYN se envían al puerto 80.

Opciones útiles de traceroute:

  • "-4" y "-6", especificando IPv4 e IPv6, respectivamente;
  • "-I", especificando la interfaz de red, por ejemplo, "-i ens0s5";
  • "-n", deshabilitando la resolución de nombres;
  • "-p", especificando el puerto personalizado (para UDP y TCP);
  • "-m", número máximo de transiciones (saltos).

Trazado de red en Windows

Tracert es la utilidad disponible en Windows OS para rastrear conexiones de red similares a Traceroute en Linux.
Esta utilidad usa solo el protocolo ICPM, tiene menos opciones y funciona de la misma manera que traceroute.

Conclusión

Traceroute es una herramienta conveniente para diagnosticar conexiones de red, lo que ayuda a determinar en qué nodo hay demoras o restricciones para la transmisión del tráfico. Al mismo tiempo, no siempre es fácil interpretar los resultados de su trabajo debido a las reglas de filtrado, los sistemas de redirección y el equilibrio del tráfico. Para diagnosticar una aplicación distribuida, se requiere una comprensión clara de la arquitectura utilizada. Combinar las opciones disponibles también es útil para diagnosticar recursos externos.

Votar:
5 de 5
Calificación promedio: 5
Calificado por: 1
1101 CT Ámsterdam Países Bajos, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

También te podría interesar...

Utilizamos cookies para hacer que su experiencia en el Serverspace mejor. Al continuar navegando en nuestro sitio web, usted acepta nuestros
Uso de Cookies y Política de Privacidad.