
Sign up to save your podcasts
Or
¿Cómo funciona traceroute?. Mucha gente cree erróneamente que traceroute es algo muy parecido al ping y que funcionan de forma análoga, pero la verdad es que tienen muy poco que ver aunque en muchos casos puedan ser utilizados en entornos similares.
El objetivo de este post es explicar traceroute porque es una herramienta de troubleshooting, fantástica. Por cierto, troubleshooting en español significa solución de problemas
Ping es el más conocido por todos y utiliza el protocolo ICMP. En ping se utilizan mensajes echo request y echo reply entre origen y destino.
Ping es sencillo y nos sirve para comprobar la conectividad entre dos puntos siempre y cuando haya conectividad directa entre ellos.
Traceroute es una herramienta mucho más elaborada que ping y nos ofrece muchísima más información.
Utilizar traceroute nos ofrece la siguiente información:
Para que traceroute funcione correctamente es necesario antes de nada conocer el campo de la cabecera IP llamado TTL.
El TTL no es más que un contador de saltos, en el caso de un traceroute por defecto el campo TTL tiene un valor de 30, esto significa que cada vez que sale a otro nodo se decrementará en 1, así hasta que llegue a 1, si es que llega, y se descarte el paquete.
Si os fijáis cuando ejecutáis un traceroute os dice que 30 es el número máximo de saltos, pues ese número de saltos no es más que el valor del TTL definido.
El datagrama IP se irá enviando entre routers decrementándose cada vez en 1 el TTL hasta que llegue a uno con un valor de TTL de 1. En el caso de un router recibir un datagrama con un valor de TTL de 1 va a remitir al original un mensaje especial denominado «mensajes ICMP TTL excedidos».
Como ese mensaje de TTL excedido lo enviará el router que reciba el datagrama con TTL de 1 al origen, en el momento de llegar al origen este ya sabe cual es la dirección del remitente.
Es un mecanismo muy sencillo pero muy inteligente.
Pues este es el sistema que utiiliza traceroute para descubrir los nodos intermedios, los «mensajes ICMP TTL excedidos».
Ahora la pregunta es cómo consigue Traceroute conocer las IPs de los nodos intermedios, porque al principio hemos comentado que uno de los objetivos de traceroute es mostrar los nodos intermedios que componen una ruta a un destino.
En el momento en el que lanzamos un traceroute contra un destino enviaremos datagramas UDP, porque traceroute funciona con UDP, con el siguiente contenido:
Lo primero será enviar ese detagrama a mi destino pero con un TTL de 1, entonces cuando llegue a mi router este responderá con un «mensajes ICMP TTL excedidos» y es así como el origen sabrá la IP del primer salto, e iremos subiendo el TTL enviando otro y otro datagrama.
De esta manera mandaremos datagramas con TTL de 1, de 2, de 3 …. y así hasta que lleguemos al destino.
¿Cómo sabemos que hemos llegado al destino? Pues simplemente porque el destino tendrá que responder a un puerto UDP aleatóreo entre el 33434 y el 33534 y como lo más probable es que el destino no responda a esos puertos responderá con un «menaje de puerto ICMP de destino inalcanzable»
Esto si abris un wireshark o un tcpdump mientras hacéis el traceroute podréis verlo sin problemas.
Foto de cabecera de Brett Sayles en Pexels
¿Cómo funciona traceroute?. Mucha gente cree erróneamente que traceroute es algo muy parecido al ping y que funcionan de forma análoga, pero la verdad es que tienen muy poco que ver aunque en muchos casos puedan ser utilizados en entornos similares.
El objetivo de este post es explicar traceroute porque es una herramienta de troubleshooting, fantástica. Por cierto, troubleshooting en español significa solución de problemas
Ping es el más conocido por todos y utiliza el protocolo ICMP. En ping se utilizan mensajes echo request y echo reply entre origen y destino.
Ping es sencillo y nos sirve para comprobar la conectividad entre dos puntos siempre y cuando haya conectividad directa entre ellos.
Traceroute es una herramienta mucho más elaborada que ping y nos ofrece muchísima más información.
Utilizar traceroute nos ofrece la siguiente información:
Para que traceroute funcione correctamente es necesario antes de nada conocer el campo de la cabecera IP llamado TTL.
El TTL no es más que un contador de saltos, en el caso de un traceroute por defecto el campo TTL tiene un valor de 30, esto significa que cada vez que sale a otro nodo se decrementará en 1, así hasta que llegue a 1, si es que llega, y se descarte el paquete.
Si os fijáis cuando ejecutáis un traceroute os dice que 30 es el número máximo de saltos, pues ese número de saltos no es más que el valor del TTL definido.
El datagrama IP se irá enviando entre routers decrementándose cada vez en 1 el TTL hasta que llegue a uno con un valor de TTL de 1. En el caso de un router recibir un datagrama con un valor de TTL de 1 va a remitir al original un mensaje especial denominado «mensajes ICMP TTL excedidos».
Como ese mensaje de TTL excedido lo enviará el router que reciba el datagrama con TTL de 1 al origen, en el momento de llegar al origen este ya sabe cual es la dirección del remitente.
Es un mecanismo muy sencillo pero muy inteligente.
Pues este es el sistema que utiiliza traceroute para descubrir los nodos intermedios, los «mensajes ICMP TTL excedidos».
Ahora la pregunta es cómo consigue Traceroute conocer las IPs de los nodos intermedios, porque al principio hemos comentado que uno de los objetivos de traceroute es mostrar los nodos intermedios que componen una ruta a un destino.
En el momento en el que lanzamos un traceroute contra un destino enviaremos datagramas UDP, porque traceroute funciona con UDP, con el siguiente contenido:
Lo primero será enviar ese detagrama a mi destino pero con un TTL de 1, entonces cuando llegue a mi router este responderá con un «mensajes ICMP TTL excedidos» y es así como el origen sabrá la IP del primer salto, e iremos subiendo el TTL enviando otro y otro datagrama.
De esta manera mandaremos datagramas con TTL de 1, de 2, de 3 …. y así hasta que lleguemos al destino.
¿Cómo sabemos que hemos llegado al destino? Pues simplemente porque el destino tendrá que responder a un puerto UDP aleatóreo entre el 33434 y el 33534 y como lo más probable es que el destino no responda a esos puertos responderá con un «menaje de puerto ICMP de destino inalcanzable»
Esto si abris un wireshark o un tcpdump mientras hacéis el traceroute podréis verlo sin problemas.
Foto de cabecera de Brett Sayles en Pexels