Cómo utilizar el comando traceroute en Linux

Puntos clave

  • El comando traceroute ayuda a identificar el tramo lento del viaje de un paquete de red y a solucionar problemas de conexiones de red lentas.
  • Traceroute utiliza el conjunto de protocolos TCP/IP y reenvía paquetes para determinar el tiempo que tarda un paquete en viajar desde su origen hasta su destino a través del enrutador.
  • Ejecute traceroute (IP o URL) para determinar la ruta que toman los paquetes para llegar a un servidor y el tiempo necesario entre cada salto intermedio.

Puedes usar Linux traceroute comando para localizar el tramo lento del viaje de un paquete de red y solucionar problemas de conexiones de red lentas. ¡Te mostraremos cómo!

→ Índice de contenidos
  • Cómo funciona traceroute
  • Algunos enrutadores no funcionan bien
  • instalación de trazaruta
  • Usando traceroute en Linux
  • Ocultar nombres de dispositivos
  • Configuración del valor de tiempo de espera de traceroute
  • Establecer el número de pruebas
  • Configuración del valor TTL inicial
  • Sé considerado
  • Cómo funciona traceroute

    Cuando aprecias cómo traceroute Funciona, facilita mucho la comprensión de los resultados. Cuanto más complicada sea la ruta que debe seguir un paquete de red para llegar a su destino, más difícil será identificar dónde podría ocurrir alguna desaceleración.

    La red de área local (LAN) de una organización pequeña puede ser relativamente simple. Probablemente tendrá al menos un servidor y uno o dos enrutadores. La complejidad aumenta en una red de área amplia (WAN) que se comunica entre diferentes ubicaciones o a través de Internet. Luego, su paquete de red encuentra (y es reenviado y enrutado por) una gran cantidad de hardware, como enrutadores y puertas de enlace.

    Los encabezados de metadatos de los paquetes de datos describen su longitud, de dónde vienen, hacia dónde van, el protocolo que utilizan, 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 utiliza el conjunto de protocolos TCP/IP y envía paquetes de protocolo de datagramas de usuario. El encabezado contiene el campo Tiempo de vida (TTL), que contiene un valor entero de ocho bits. A pesar de lo que sugiere el 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 al enrutador, este disminuye el contador TTL. Si el valor TTL alguna vez llega a uno, el enrutador que recibe el paquete disminuye el valor y nota que ahora es cero. Luego, el paquete se descarta y no se reenvía al siguiente salto de su viaje porque "se agotó el tiempo de espera".

    El enrutador envía un mensaje de tiempo excedido (ICMP) al origen del paquete para informarle que el paquete ha caducado. El mensaje de tiempo excedido contiene el encabezado original y los primeros 64 bits de datos del paquete original. Esto se define en la página seis de la Solicitud de comentarios 792.

    Así que si traceroute envía un paquete, pero luego establece el valor TTL en uno, el paquete solo llegará hasta el primer enrutador antes de ser descartado. Recibirá un mensaje de tiempo transcurrido ICMP del enrutador y podrá registrar el tiempo necesario para el viaje de ida y vuelta.

    Luego repite el ejercicio con TTL configurado en 2, lo 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, de forma predeterminada).

    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 de tiempo de espera ICMP.

    Según Cisco, algunos proveedores de servicios de Internet (ISP) limitan la velocidad del número de mensajes ICMP reenviados por sus enrutadores.

    Algunos dispositivos están configurados para no enviar nunca paquetes ICMP. Esto suele ser para garantizar que el dispositivo no pueda ser forzado involuntariamente a participar en una denegación de servicio distribuida, como un ataque smurf.

    traceroute tiene un tiempo de espera de respuesta predeterminado de cinco segundos. Si no hay respuesta en estos cinco segundos, se abandona el intento. Esto significa que se ignoran las respuestas de enrutadores muy lentos.

    instalación de trazaruta

    traceroute ya estaba instalado en Fedora 31 pero debe instalarse 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 install traceroute

    Usando traceroute en Linux

    Como explicamos anteriormente, traceroute's el objetivo es obtener una respuesta del enrutador en cada salto desde la computadora al destino. Algunos pueden ser reservados y no revelar nada, mientras que otros probablemente hablarán sin escrúpulos.

    Por ejemplo, ejecutaremos un traceroute al sitio web del Castillo de Blarney en Irlanda, hogar de la famosa Piedra de Blarney. Cuenta la leyenda que si besas la Piedra de Blarney serás bendecido con el "don de la palabra". Esperemos que los enrutadores que encontremos en el camino sean lo suficientemente comunicativos.

    Escribimos el siguiente comando:

    traceroute www.blarneycastle.ie

    Salida de Traceroute utilizada en 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 rendirme.
    • El tamaño de los paquetes UDP que estamos enviando.

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

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

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

    Repasemos lo que tenemos a continuación:

    • Salto 1: El primer puerto de escala (sin juego de palabras) es el enrutador DrayTek Vigor en su red local. Así salen nuestros paquetes UDP de la red local y llegan a Internet.
    • Salto 2: Este dispositivo no respondió. Quizás se haya configurado para no enviar nunca paquetes ICMP. O tal vez respondió pero fue demasiado lento, así que traceroute fuera de tiempo.
    • Salto 3: Un dispositivo respondió, pero no obtuvimos su nombre, solo su dirección IP. Tenga en cuenta que hay un asterisco en esta línea, lo que significa que no recibimos respuesta a las tres solicitudes. Esto puede indicar pérdida de paquetes.
    • Lúpulo 4 e 5: Otros saltos anónimos.
    • Salto 6: Hay mucho texto aquí porque un dispositivo remoto diferente manejó cada una de nuestras tres solicitudes UDP. Se imprimieron los nombres (bastante largos) y las direcciones IP de cada dispositivo. Esto puede suceder cuando se encuentra con una red "muy poblada" en la que hay mucho hardware para manejar grandes volúmenes de tráfico. Este salto está ubicado dentro de uno de los ISP más grandes del Reino Unido. Por lo tanto, sería un pequeño milagro si la misma pieza remota de hardware manejara nuestras tres solicitudes de conexión.
    • Salto 7: Este es el salto que dan nuestros paquetes UDP cuando salen de la red del ISP.
    • Salto 8: Nuevamente, obtenemos una dirección IP pero no el nombre del dispositivo. Las tres pruebas resultaron exitosas.
    • Lúpulo 9 y 10: Dos saltos anónimos más.
    • Lúpulo 11: Llegamos a la web del Castillo de Blarney. El castillo está ubicado en Cork, Irlanda, pero, según la geolocalización de la dirección IP, el sitio web está en Londres.

    Entonces, fue una mezcla de cosas. Algunos dispositivos hicieron caso, algunos respondieron pero no nos dijeron sus nombres y otros permanecieron completamente anónimos.

    Sin embargo, llegamos a nuestro destino, sabemos que estamos 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, a veces incluir nombres de dispositivos genera una visualización desordenada. Para facilitar la visualización de datos puede utilizar el archivo -n (sin mapeo).

    Para hacer esto con nuestro ejemplo, escribimos lo siguiente:

    traceroute -n blarneycastle.ie

    Traceroute -n oculta los nombres de los dispositivos de los dispositivos enumerados.

    Esto hace que sea más fácil detectar números elevados de tiempos de ida y vuelta que podrían indicar un cuello de botella.

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

    Sin embargo, si estuviera analizando su red corporativa, valdría la pena profundizar un poco más en ese nodo.

    Configuración del valor de tiempo de espera de traceroute

    Quizás si extendemos el período de tiempo de espera predeterminado (cinco segundos), obtendremos más respuestas. Para ello utilizaremos 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

    Traceroute con una configuración de tiempo de espera diferente.

    Eso no hizo mucha diferencia, por lo que probablemente se estén agotando las respuestas. Es probable que los saltos anónimos sean deliberadamente reservados.

    Establecer el número de pruebas

    Por defecto, traceroute envía tres paquetes UDP a cada salto. Podemos usar el -q (número de consultas) opción para ajustarlo hacia arriba o hacia abajo.

    Para acelerar el traceroute prueba, escribimos lo siguiente para reducir la cantidad de paquetes de sonda UDP que enviamos a uno:

    traceroute -q 1 blarneycastle.ie

    Ejecutar traceroute con menos paquetes acelera los resultados.

    Esto envía una única sonda a cada salto.

    Configuración del valor TTL inicial

    Podemos establecer el valor inicial de TTL en un valor distinto de uno y omitir algunos saltos. Normalmente, los valores TTL se establecen en uno para la primera serie de pruebas, dos para la siguiente serie, y así sucesivamente. Si configuramos esto en cinco, la primera prueba intentará saltar cinco y saltar 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

    Omita algunos saltos de traceroute para obtener una salida más condensada.

    Esto nos brinda un informe agradable y conciso sobre el estado de la conexión en el destino.

    Sé considerado

    traceroute Es una gran herramienta para investigar el enrutamiento de la red, comprobar la velocidad de la conexión o identificar cuellos de botella. Windows también tiene un tracert comando que funciona de manera similar.

    Sin embargo, no querrás bombardear dispositivos desconocidos con torrentes de paquetes UDP y tener cuidado al incluirlos. traceroute en trabajos con guión o sin supervisión.

    La carga traceroute puede insertar en una red podría 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 habitual.

    Subir Change privacy settings