Cómo utilizar Traceroute y MTR para diagnosticar problemas de red
Introducción
Una parte importante de la administración de servidores es monitorear la conectividad de la red.
Existen algunas herramientas que son fáciles de usar, pero que vale la pena conocer. En esta guía, analizaremos cómo usar una herramienta llamada traceroute
para diagnosticar dónde puede estar ocurriendo un problema de red.
También veremos una utilidad llamada mtr
que combina gran parte de la funcionalidad de ping y traceroute en una sola interfaz.
Cómo utilizar Traceroute
traceroute
es una herramienta sencilla que muestra la ruta a un servidor remoto. Puede ser cualquier cosa, desde un sitio web que intentas visitar hasta una impresora en tu red local.
El traceroute
programa se instala de forma predeterminada en casi todas las distribuciones de Linux, por lo que no debería ser necesario instalarlo.
Para llamarlo, simplemente necesitamos proporcionar un sitio web o una dirección IP que nos gustaría explorar:
- traceroute google.com
Recibirá un resultado similar al siguiente:
Outputtraceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets 1 192.241.160.253 (192.241.160.253) 0.564 ms 0.539 ms 0.525 ms 2 192.241.164.241 (192.241.164.241) 0.487 ms 0.435 ms 0.461 ms 3 xe-3-0-6.ar2.nyc3.us.nlayer.net (69.31.95.133) 1.801 ms 1.802 ms 1.762 ms 4 144.223.28.73 (144.223.28.73) 0.583 ms 0.562 ms 0.550 ms 5 144.232.1.21 (144.232.1.21) 1.044 ms 1.048 ms 1.036 ms 6 74.125.49.212 (74.125.49.212) 0.494 ms 0.688 ms 0.643 ms 7 209.85.248.180 (209.85.248.180) 0.650 ms 209.85.248.178 (209.85.248.178) 0.621 ms 0.625 ms 8 72.14.236.208 (72.14.236.208) 0.618 ms 72.14.236.206 (72.14.236.206) 0.898 ms 72.14.236.208 (72.14.236.208) 0.872 ms 9 72.14.239.93 (72.14.239.93) 7.478 ms 7.989 ms 7.466 ms10 72.14.232.73 (72.14.232.73) 20.002 ms 19.969 ms 19.975 ms11 209.85.248.228 (209.85.248.228) 30.490 ms 72.14.238.106 (72.14.238.106) 34.463 ms 209.85.248.228 (209.85.248.228) 30.707 ms12 216.239.46.54 (216.239.46.54) 42.502 ms 42.507 ms 42.487 ms13 216.239.46.159 (216.239.46.159) 76.578 ms 74.585 ms 74.617 ms14 209.85.250.126 (209.85.250.126) 80.625 ms 80.584 ms 78.514 ms15 72.14.238.131 (72.14.238.131) 80.287 ms 80.560 ms 78.842 ms16 209.85.250.228 (209.85.250.228) 171.997 ms 173.668 ms 170.068 ms17 66.249.94.93 (66.249.94.93) 238.133 ms 235.851 ms 235.479 ms18 72.14.233.79 (72.14.233.79) 233.639 ms 239.147 ms 233.707 ms19 sin04s01-in-f9.1e100.net (173.194.38.137) 236.241 ms 235.608 ms 236.843 ms
La primera línea nos indica las condiciones en las que opera traceroute:
Outputtraceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets
Proporciona el host especificado, la dirección IP que DNS devuelve para ese dominio, la cantidad máxima de saltos a verificar y el tamaño del paquete que se utilizará.
La cantidad máxima de saltos se puede ajustar con la -m
bandera. Si el host al que intentas enrutar se encuentra a más de 30 saltos de distancia, es posible que debas especificar un valor mayor aquí. El valor máximo que puedes establecer es 255.
- traceroute -m 255 obiwan.scrye.net
Puede ajustar el tamaño del paquete que se envía a cada salto proporcionando el número entero después del nombre del host:
- traceroute google.com 70
Verás un resultado como este:
Outputtraceroute to google.com (173.194.38.128), 30 hops max, 70 byte packets 1 192.241.160.254 (192.241.160.254) 0.364 ms 0.330 ms 0.319 ms 2 192.241.164.237 (192.241.164.237) 0.284 ms 0.343 ms 0.321 ms
Después de la primera línea, cada línea subsiguiente representa un “salto” o host intermedio por el que debe pasar su tráfico para llegar a la computadora representada por el host que especificó.
Cada línea tiene el siguiente formato:
Outputhop_number host_name (IP_address) packet_round_trip_times
A continuación se muestra un ejemplo de un salto que podrías ver:
Output3 nyk-b6-link.telia.net (62.115.35.101) 0.311 ms 0.302 ms 0.293 ms
Esto es lo que significa cada campo:
- hop_number : recuento secuencial de la cantidad de grados de separación entre el host y su computadora. El tráfico de los hosts con números más altos debe pasar por más computadoras para ser enrutado.
- host_name : este campo contiene el resultado de una búsqueda DNS inversa de la dirección IP del host, si está disponible. Si no se obtiene información de la consulta DNS inversa, se proporciona la dirección IP.
- Dirección IP : este campo contiene la dirección IP para este salto de red.
- packet_round_trip_times : el resto de la línea indica los tiempos de ida y vuelta de un paquete al host y de regreso. De manera predeterminada, se envían tres paquetes a cada host y cada intento se agrega al final de la línea.
Si desea cambiar la cantidad de paquetes que se prueban en cada host, puede especificar un número con la -q
opción, de la siguiente manera:
- traceroute -q1 google.com
Si desea renunciar a la búsqueda DNS inversa para acelerar el rastreo, puede pasar la -n
bandera:
- traceroute -n google.com
Obtendrás un resultado como este:
Outputtraceroute to google.com (74.125.235.7), 30 hops max, 60 byte packets 1 192.241.160.253 0.626 ms 0.598 ms 0.588 ms 2 192.241.164.241 2.821 ms 2.743 ms 2.819 ms 3 69.31.95.133 1.470 ms 1.473 ms 1.525 ms
Si su traceroute se disuelve en algunos asteriscos (*), hay un problema con la ruta al host.
Output... 15 209.85.248.220 (209.85.248.220) 121.809 ms 72.14.239.12 (72.14.239.12) 76.941 ms 209.85.248.220 (209.85.248.220) 78.946 ms 16 72.14.239.247 (72.14.239.247) 101.001 ms 92.478 ms 92.448 ms 17 * * 209.85.250.124 (209.85.250.124) 175.083 ms 18 * * * 19 * * *
¿Qué significa un problema de ruta?
Si su intento de traceroute se detiene en un salto o nodo en particular y no puede encontrar una ruta al host, tiene un problema.
Si bien el salto donde la ruta no regresa puede ser la ubicación del problema de red, no siempre es tan fácil de diagnosticar.
Debido al hecho de que cada ping representa un paquete de ida y vuelta, y a la situación en la que los paquetes a menudo utilizan diferentes rutas en cada dirección, puede indicar un problema en una ruta completamente diferente, posiblemente más cercana.
También puede darse el caso de que el problema se encuentre en el salto que se encuentra justo después del último salto que ve. Es difícil diagnosticar la ubicación exacta del problema a menos que pueda obtener un traceroute de retorno de ese salto específico. Por lo general, esto no es posible fuera de su propia red.
Cómo utilizar MTR
Una alternativa dinámica al programa traceroute es mtr
. Al combinar la funcionalidad de ping y traceroute, mtr le permite sondear constantemente un servidor remoto y ver cómo cambia la latencia y el rendimiento con el tiempo.
A diferencia de traceroute, mtr no está instalado de forma predeterminada en la mayoría de los sistemas. Puedes obtenerlo escribiendo los siguientes comandos.
Ubuntu/Debian:
- sudo apt-get install mtr
CentOS/Fedora:
- yum install mtr
Arco:
- pacman -S mtr
Una vez instalado, puedes llamarlo escribiendo:
- mtr google.com
Recibirás un resultado como este:
Output My traceroute [v0.80]traceroute (0.0.0.0) Tue Oct 22 20:39:42 2013Resolver: Received error response 2. (server failure)er of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 192.241.160.253 0.0% 371 0.4 0.6 0.1 14.3 1.0 2. 192.241.164.241 0.0% 371 7.4 2.5 0.1 37.5 4.8 3. xe-3-0-6.ar2.nyc3.us. 2.7% 371 3.6 2.6 1.1 5.5 1.1 4. sl-gw50-nyc-.sprintli 0.0% 371 0.7 5.0 0.1 82.3 13.1
Si bien el resultado puede parecer similar, la gran ventaja sobre traceroute es que el resultado se actualiza constantemente. Esto le permite acumular tendencias y promedios, y también le permite ver cómo varía el rendimiento de la red con el tiempo.
Si ejecutaste un traceroute, existe la posibilidad de que los paquetes que se enviaron a cada salto hayan realizado el recorrido sin incidentes, incluso en una situación en la que la ruta sufre una pérdida intermitente de paquetes. La utilidad mtr te permite monitorear esta situación mediante la recopilación de datos durante un rango de tiempo más amplio.
También es posible ejecutar mtr con la --report
opción, que devuelve los resultados de enviar 10 paquetes a cada salto.
- mtr --report google.com
El informe se ve así:
OutputHOST: traceroute Loss% Snt Last Avg Best Wrst StDev 1.|-- 192.241.160.254 0.0% 10 1.5 0.9 0.4 1.5 0.4 2.|-- 192.241.164.237 0.0% 10 0.6 0.9 0.4 2.7 0.7 3.|-- nyk-b6-link.telia.net 0.0% 10 0.5 0.5 0.2 0.7 0.2 4.|-- nyk-bb2-link.telia.net 0.0% 10 67.5 18.5 0.8 87.3 31.8
Esto puede ser útil cuando no necesariamente desea medir en tiempo real, pero desea un rango mayor de datos que el que proporciona traceroute.
Conclusión
Con traceroute
y mtr
, puede hacerse una idea de qué servidores en su camino hacia un dominio o dirección específicos están causando problemas. Esto puede resultar útil para solucionar problemas en una red interna y también para intentar proporcionar información a los miembros del servicio de asistencia o a los ISP cuando experimenta problemas de red.
Deja una respuesta