Cómo usar el comando traceroute en Linux

Cómo usar el comando traceroute en Linux

Fatmawati Achmad Zaenuri / Shutterstock

Puedes usar linux traceroute comando para detectar la parte lenta del viaje de un paquete de red y solucionar problemas de conexiones de red lentas. ¡Te mostraremos cómo!

¿Cómo funciona traceroute?

Cuando aprecias como traceroute funciona, hace que sea mucho más fácil comprender los resultados. Cuanto más complicada es la ruta paquete de red debe tomar para llegar a su destino, más difícil es determinar dónde pueden ocurrir desaceleraciones.

Una pequeña organización red local (LAN) puede ser relativamente sencillo. Es probable que tenga al menos un servidor y un enrutador o dos. La complejidad aumenta a lo largo de un Red de larga distancia (WAN) que se comunica entre diferentes ubicaciones o por Internet. Su paquete de red luego encuentra (y es transmitido y enrutado por) una gran cantidad de hardware, como enrutadores y pasarelas.

Los encabezados de metadatos del paquete de datos describen su longitud, de dónde viene, a dónde va, qué protocolo usa, etc. La especificación del protocolo define el encabezado. Si puede identificar el protocolo, puede determinar el inicio y el final de cada campo en el encabezado y leer los metadatos.

traceroute usarlo TCP / IP suite de protocolos y envía Protocolo de datagrama de usuario paquetes. El encabezado contiene el Tiempo para vivir (TTL), que contiene un valor entero de ocho bits. A pesar de lo que sugiere su nombre, representa un recuento, no una duración.

Un paquete viaja desde su origen hasta su destino a través de un enrutador. Cada vez que el paquete llega a un enrutador, disminuye el contador TTL. Si el valor TTL alguna vez llega a uno, el enrutador que recibe el paquete disminuye el valor y se da cuenta de que ahora es cero. A continuación, el paquete se descarta y no se reenvía en el siguiente salto de su ruta porque se ha agotado el tiempo de espera.

El enrutador envía un Protocolo de control de mensajes de Internet (ICMP) Tiempo pasado mensaje del creador del paquete para informarle que el paquete ha expirado. El mensaje Tiempo excedido contiene el encabezado original y los primeros 64 bits del paquete de datos original. Esto se define en la página seis de Solicitud de comentario 792.

Así que si traceroute envía un paquete, pero luego establece el valor TTL en uno, el paquete solo irá al primer enrutador antes de ser descartado. Recibirá un mensaje de tiempo de espera ICMP del enrutador y puede registrar el tiempo que tomó el viaje de ida y vuelta.

Luego repite el ejercicio con un TTL establecido en 2, que fallará después de dos saltos. traceroute aumente el TTL a tres y vuelva a intentarlo. Este proceso se repite hasta que se alcanza el destino o se prueba el número máximo de saltos (30, por defecto).

Algunos enrutadores no funcionan bien

Algunos enrutadores tienen errores. Intentan reenviar paquetes con un TTL de cero en lugar de descartarlos y generar un mensaje ICMP agotado.

De acuerdo a Cisco, algunos proveedores de servicios de Internet (ISP) limitan la cantidad de mensajes ICMP transmitidos por sus enrutadores.

Algunos dispositivos están configurados para no enviar nunca paquetes ICMP. Esto a menudo es para asegurar que el dispositivo no pueda ser coaccionado involuntariamente para que participe en una denegación de servicio distribuida, como un ataque de los pitufos.

traceroute tiene un tiempo de espera predeterminado para respuestas de cinco segundos. Si no recibe una respuesta en cinco segundos, el intento se aborta. Esto significa que se ignoran las respuestas de enrutadores muy lentos.

Instalación de traceroute

traceroute ya estaba instalado en Fedora 31 pero debe estar instalado en Manjaro 18.1 y Ubuntu 18.04. Instalar traceroute en Manjaro, use el siguiente comando:

sudo pacman -Sy traceroute

Instalar traceroute en Ubuntu, use el siguiente comando:

sudo apt-get install traceroute

Usando traceroute

Como vimos arriba, traceroute's El objetivo es obtener una respuesta del enrutador cada vez que salte de su computadora al destino. Algunos pueden quedarse sin palabras y no dar nada, mientras que otros probablemente derramarán los frijoles sin escrúpulos.

Como ejemplo, ejecutaremos un traceroute a la Castillo de Blarney sitio web en Irlanda, hogar de los famosos Piedra de Blarney. Cuenta la leyenda que si besas la Piedra de Blarney serás bendecido con el «regalo de la palabra». Con suerte, los enrutadores con los que nos encontramos en el camino son lo suficientemente comunicativos.

Escribimos el siguiente comando:

traceroute www.blarneycastle.ie

La primera línea nos da la siguiente información:

  • El destino y su dirección IP.
  • El número de saltos traceroute Lo intentaré antes de rendirse.
  • El tamaño de los paquetes UDP que enviamos.

Todas las demás líneas contienen información sobre una de las rupturas. Sin embargo, antes de profundizar en los detalles, podemos ver que hay 11 saltos entre nuestra computadora y el sitio web de Blarney Castle. El salto 11 también nos dice que hemos llegado a nuestro destino.

El formato de cada línea de ruptura es el siguiente:

  • El nombre del dispositivo o, si el dispositivo no se identifica, la dirección IP.
  • La dirección IP.
  • El tiempo que tomó el viaje de ida y vuelta para cada una de las tres pruebas. Si hay un asterisco aquí, significa que no hubo respuesta para esta prueba. Si el dispositivo no responde en absoluto, verá tres asteriscos y ningún nombre o dirección IP del dispositivo.

Repasemos lo que tenemos a continuación:

  • Salto 1: El primer puerto de llamada (sin juego de palabras) es el enrutador DrayTek Vigor en la red local. Así es como nuestros paquetes UDP salen de la red local y acceden a Internet.
  • Salto 2: Este dispositivo no respondió. Es posible que se haya configurado para no enviar nunca paquetes ICMP. O tal vez respondió pero fue demasiado lento, así que traceroute Fin del tiempo.
  • Salto 3: Un dispositivo respondió, pero no obtuvimos su nombre, solo la dirección IP. Tenga en cuenta que hay un asterisco en esta línea, lo que significa que no hemos recibido una respuesta a las tres solicitudes. Esto podría indicar la pérdida de paquetes.
  • Lúpulo 4 y 5: No más saltos anónimos.
  • Salto 6: Aquí hay mucho texto porque un dispositivo remoto diferente manejó cada una de nuestras tres solicitudes UDP. Se han impreso los nombres (bastante largos) y las direcciones IP de cada dispositivo. Esto puede suceder cuando se encuentra con una red «densamente poblada» con mucho hardware para manejar grandes volúmenes de tráfico. Este salto se puede encontrar en uno de los ISP más grandes del Reino Unido. Por lo tanto, sería un pequeño milagro si el mismo hardware remoto manejara nuestras tres solicitudes de conexión.
  • Salto 7: Este es el salto realizado por nuestros paquetes UDP cuando abandonaron la red del ISP.
  • Salto 8: Nuevamente, obtenemos una dirección IP pero no el nombre del dispositivo. Las tres pruebas se devolvieron con éxito.
  • Lúpulo 9 y 10: Dos saltos anónimos más.
  • Salto 11: Llegamos al sitio web del Castillo de Blarney. El castillo se encuentra en Cork, Irlanda, pero, según Geolocalización de la dirección IP, el sitio está en Londres.

Así que fue una bolsa mixta. Algunos dispositivos jugaron a la pelota, algunos respondieron pero no nos dijeron sus nombres, y otros permanecieron completamente anónimos.

Sin embargo, llegamos a nuestro destino, sabemos que están a 11 saltos de distancia y el tiempo de ida y vuelta para el viaje fue de 13,773 y 14,715 milisegundos.

Ocultar nombres de dispositivos

Como hemos visto, la inclusión de nombres de dispositivos a veces conduce a una pantalla desordenada. Para facilitar la visualización de los datos, puede utilizar el -n (sin mapeo).

Para hacer esto con nuestro ejemplo, escribimos lo siguiente:

traceroute -n blarneycastle.ie

Esto facilita la selección de números grandes para tiempos de ida y vuelta que podrían indicar un cuello de botella.

Hop 3 empieza a parecer un poco sospechoso. La última vez solo respondió dos veces, y esta vez solo respondió una vez. En este escenario, está fuera de nuestro control, por supuesto.

Sin embargo, si tuviera que investigar su red corporativa, valdría la pena profundizar un poco más en este nodo.

Configuración del valor de tiempo de espera de traceroute

Quizás si ampliamos el tiempo de espera predeterminado (cinco segundos), obtengamos más respuestas. Para hacer esto, usaremos el -w (tiempo de espera) para cambiarlo a siete segundos. (Tenga en cuenta que este es un número de punto flotante).

Escribimos el siguiente comando:

traceroute -w 7.0 blarneycastle.ie

No hizo mucha diferencia, por lo que las respuestas probablemente se agoten. Es probable que los saltos anónimos sean deliberadamente secretos.

Establecer el número de pruebas

Por defecto, traceroute envía tres paquetes UDP en cada salto. Podemos usar el -q (número de solicitudes) para ajustar esto hacia arriba o hacia abajo.

Para acelerar el traceroute prueba, escribimos lo siguiente para reducir el número de paquetes de sondeo UDP que enviamos a uno:

traceroute -q 1 blarneycastle.ie

Esto envía una sola sonda con cada salto.

Configuración del valor TTL inicial

Podemos establecer el valor TTL inicial en algo diferente a uno y omitir algunos saltos. Normalmente, los valores de TTL se establecen en uno para el primer conjunto de pruebas, dos para el siguiente conjunto de pruebas, y así sucesivamente. Si lo ponemos en cinco, la primera prueba intentará dar cinco saltos y saltarse los saltos del uno al cuatro.

Como sabemos que el sitio web del Castillo de Blarney está a 11 saltos de esta computadora, escribimos lo siguiente para ir directamente al salto 11:

traceroute -f 11 blarneycastle.ie

Esto nos da un buen informe condensado sobre el estado de la conexión en el destino.

Se considerado

traceroute es una gran herramienta para estudiar el enrutamiento de la red, verificar las velocidades de conexión o identificar cuellos de botella. Windows también tiene tracert comando que funciona de la misma manera.

Sin embargo, no desea bombardear dispositivos desconocidos con torrentes de paquetes UDP y tenga cuidado de incluir traceroute en guiones o trabajo desatendido.

La carga traceroute que puede colocar en una red puede tener un impacto negativo en su rendimiento. A menos que se encuentre en una situación de «arreglarlo ahora», es posible que desee utilizarlo fuera del horario comercial normal.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas