GNU/Linux >> Tutoriales Linux >  >> Linux

Traceroute:encontrar significado entre las estrellas

Si alguna vez ha trabajado en el espacio de redes, o en el soporte técnico, probablemente tenga buenas historias sobre la solución de problemas de una conexión perdida. Inevitablemente, se instala y configura algún sistema nuevo, pero no podemos hacer que el tráfico pase hacia o desde el sistema.

Una de esas historias que recuerdo es algo así.

El caso de uso

Estaba solucionando un problema de una matriz de almacenamiento back-end que acababa de instalar una gran corporación financiera estadounidense muy conocida. El cliente intentaba configurar la replicación de datos desde su sitio de producción (PROD) en Houston a un sitio de recuperación ante desastres (DR) en San Antonio. El sistema de recuperación ante desastres se había implementado durante mucho tiempo y tenía la reputación de ser una buena configuración conocida.

El sitio de producción era completamente nuevo y, por supuesto, la causa de todos nuestros problemas. El verdadero problema era que no podíamos hacer que el tráfico se moviera entre las dos interfaces de replicación que habíamos configurado. Pudimos llegar fuera de la puerta de enlace en el sitio DR, pero no pudimos llegar fuera del sitio PROD. El tráfico llegaba al dispositivo de puerta de enlace y se interrumpía.

Media hora después de solucionar el problema, le pregunté al cliente si tenía un firewall en el sitio de PROD que pudiera estar bloqueando el tráfico en los puertos necesarios. "Por supuesto que no, no hay firewall entre estos sitios". Esta respuesta fue impactante considerando que esta era una de las instituciones financieras más grandes de todo el país. Pero, como sucede con todos los puestos de atención al cliente, debe ser respetuoso y cortés.

Entonces, revisé todos los cheques que se me ocurrieron por mi parte. Cortafuegos de almacenamiento interno desactivado:comprobar. Puertos abiertos de DR a PROD:consultar. ¿Puertos abiertos de PROD a DR? No.

Resulta que después de cuatro horas de resolución de problemas y reconfiguración de interfaces, el cliente dijo:"Déjame llamar a nuestro chico del cortafuegos".

¿Qué chico?

Esa es una posición extraña para haber contratado por considerar que no tiene un firewall entre estos sitios. Pero no fue raro porque, por supuesto, tenían un cortafuegos. Asunto resuelto. Ahora que la pesadilla había terminado, las herramientas que usé para descubrir dónde ocurrió el problema fueron Telnet a la antigua (que podemos cubrir en un artículo posterior) y, por supuesto, traceroute .

El comando

Ahora que puede ver un caso de uso claro para traceroute , hablemos sobre el comando en sí y qué información puede obtener de él. El propósito de este artículo, después de todo, es que obtenga un poco más de conocimiento sobre la utilidad que traceroute ofertas.

La sintaxis es bastante simple. El comando traceroute <x> (x siendo aquí una IP o nombre de host) es la versión más básica y comenzará a enviar paquetes al destino designado. Este resultado le permitirá rastrear la ruta de los paquetes enviados desde su máquina a cada uno de los sistemas entre usted y su destino deseado.

Por ejemplo, si quisiera rastrear la ruta desde mi computadora hasta google.com , ingresaría algo como esto:

[root@rhel8dev ~]# traceroute www.google.com
traceroute to www.google.com (216.58.194.100), 30 hops max, 60 byte packets
 1  _gateway (192.168.2.1)  2.396 ms  2.726 ms  3.057 ms
 2  145.sub-66-174-43.myvzw.com (66.174.43.145)  119.355 ms  119.315 ms  119.508 ms
 3  * * *
 4  10.209.189.140 (10.209.189.140)  120.321 ms  119.836 ms  120.009 ms
 5  66.sub-69-83-106.myvzw.com (69.83.106.66)  119.042 ms  119.489 ms  119.156 ms
 6  2.sub-69-83-107.myvzw.com (69.83.107.2)  120.039 ms  125.954 ms  101.450 ms
 7  112.sub-69-83-96.myvzw.com (69.83.96.112)  110.757 ms  108.485 ms  122.108 ms
 8  112.sub-69-83-96.myvzw.com (69.83.96.112)  115.028 ms  121.073 ms  125.537 ms
 9  116.sub-69-83-96.myvzw.com (69.83.96.116)  121.793 ms  124.769 ms  124.434 ms
10  Bundle-Ether10.GW6.DFW13.ALTER.NET (140.222.237.123)  128.082 ms  128.400 ms  126.509 ms
11  google-gw.customer.alter.net (204.148.43.118)  106.276 ms  107.885 ms  105.718 ms
12  108.170.252.129 (108.170.252.129)  99.725 ms  101.797 ms 108.170.252.161 (108.170.252.161)  101.671 ms
13  108.170.230.109 (108.170.230.109)  101.207 ms  100.515 ms  99.730 ms
14  dfw06s48-in-f100.1e100.net (216.58.194.100)  99.059 ms  94.502 ms  94.015 ms
[root@rhel8dev ~]# 

El desglose

Analicemos estos resultados en partes más pequeñas. Este comando puede producir una gran cantidad de información y, como dice el refrán, "La mejor forma de comer un elefante es un bocado a la vez:"

[root@rhel8dev ~]# traceroute www.google.com
traceroute to www.google.com (216.58.194.100), 30 hops max, 60 byte packets
 1  _gateway (192.168.2.1)  2.396 ms  2.726 ms  3.057 ms

Solo estamos viendo el primer salto aquí. Sin embargo, podemos usar este salto para diseccionar la información que se muestra. En primer lugar, vemos lo que realmente se envía y dónde:

traceroute to www.google.com(IP), 30 hops max, 60 byte packets

A partir de este resultado, deducimos que estamos enviando tráfico al objetivo deseado (www.google.com ). Traceroute, por defecto, mide 30 saltos de paquetes de 60 bytes.

A continuación, vemos que se produce el primer salto. Aquí estamos accediendo a la puerta de enlace externa:

 1  _gateway (192.168.2.1)  2.396 ms  2.726 ms  3.057 ms

Puede decir aquí dónde aterrizó realmente el salto uno, y luego hay tres valores numéricos. Estos se conocen como Tiempo de ida y vuelta (RTT), que se refiere a la cantidad de tiempo que tarda un paquete determinado en llegar a su destino y enrutar de regreso un mensaje ICMP a la fuente. Por defecto, traceroute enruta tres paquetes de datos para probar cada salto. Puede encontrar más información sobre este proceso en línea, sin embargo, el resumen es que cada paquete enruta un mensaje de error ICMP a la fuente cuando llega a un dispositivo en la red. Esta acción permite traceroute para determinar el RTT de ese paquete y no necesariamente indica un error.

Ahora, veamos los saltos 2 a 4:

 2  145.sub-66-174-43.myvzw.com (66.174.43.145)  109.206 ms  109.400 ms  109.423 ms
 3  * * *
 4  10.209.189.140 (10.209.189.140)  124.793 ms  123.585 ms  124.585 ms

Podemos ver algo nuevo aquí. Hop 2 parece normal:un dispositivo recibe tiempos de RTT en el rango de 100 milisegundos. Entonces, se pone interesante. Solo vemos estrellas (*).

¿Qué significan estas estrellas (asteriscos)? ¿Se descartaron los paquetes? ¿Están agotados?

Dejame explicar. Hay dos posibilidades cuando se trata de estas estrellas. En primer lugar, es posible que ICMP/UDP no esté configurado. Si el traceroute el comando se completa con éxito y ve estas estrellas, lo más probable es que el dispositivo afectado no estaba configurado para responder al tráfico ICMP/UDP. Este resultado no significa que no se pasó el tráfico. La segunda posibilidad es que los paquetes se cayeron debido a un problema en la red. Estos resultados suelen ser tiempos de espera de paquetes o el tráfico ha sido bloqueado por un firewall.

Como puede ver en el ejemplo anterior, incluso después de ver estrellas en el salto 2, los paquetes continúan y se enrutan de regreso en el salto 4. Este comportamiento conduce a un traceroute exitoso. como podemos ver que se ha llegado a Google.

La comida para llevar

Traceroute puede ser una herramienta invaluable cuando se trata de solucionar problemas de red. Realmente ayuda a visualizar dónde está ocurriendo realmente el problema. Por supuesto, hay otras operaciones detrás de escena de traceroute que no fueron cubiertos aquí.

Le sugiero encarecidamente que si desea profundizar aún más en esta herramienta, investigue un poco en línea. Hay mucha información sobre Time-to-Live (TTL) y RTT que, en aras del tiempo, no se incluyó en este artículo. Mi objetivo es que ahora tenga una mejor comprensión de cuándo y por qué debe usar traceroute herramienta, y cómo interpretar los datos que ofrece. Para obtener más información sobre conceptos y solución de problemas de redes, consulte nuestros artículos relacionados aquí.


Linux
  1. ¿Cuál es el significado de *nix?

  2. ¿Cuáles son las diferencias entre grep, awk y sed?

  3. ¿Cuál es el significado de fork() y grep en Linux?

  4. ¿Cuál es el significado de 'lista negra' en GStreamer?

  5. ¿Cuál es el significado de 1 al final del script awk?

Tracepath vs Traceroute:¿Cuál es la diferencia?

Cómo instalar Traceroute en Ubuntu

Encontrar los archivos y carpetas más grandes en la línea de comandos de Linux

Cómo usar el comando mtr (Mi Traceroute) de Linux

Encontrar la palabra más larga en un archivo de texto

¿Encontrar el PID del proceso usando un puerto específico?