Mi hija esta terminando la carrera de informática y matemáticas y ha empezado a hacer prácticas en el departamento de soporte de una empresa de telecomunicaciones.
Muchas veces me pregunta cómo funciona una u otra cosa, en muchos casos la respuesta consiste simplemente en decirle que use un comando u otro, pero a veces la respuesta tiene su parte interesante, como cuando la ayude a usar traceroute para ver un problema de red.
Porque para usarlo bien, hay que saber cómo funciona traceroute.
El traceroute, creado por un genio poco conocido de Internet apellidado Van Jacobson, funciona usando un truco del protocolo IP.
En la cabecera de los paquetes IP hay un campo denominado tiempo de vida (TTL) que sirve cuando la IP o red de destino no existe, para evitar que el paquete se quede dando vuelta de forma infinita por la red.
Cada vez que un paquete da un salto, el router correspondiente disminuye el campo TTL de la cabecera en 1. Si llega a cero, el router correspondiente envía al origen un mensaje de que no se ha podido entregar el paquete al destino y elimina el paquete original.
Lo que hace el traceroute es enviar un mensaje a la IP del equipo de destino que se le dice pero con un TTL de 1. Cuando llega al primer router, este decrementa el TTL y se queda en cero, por lo que devuelve al origen un mensaje de error que tiene como origen la IP de este router que ha generado el error, y
Así se tiene la IP del primer salto.
Luego se envía el paquete al mismo destino con TTL 2, de forma que el primer router lo deja pasar (decrementa el TTL y queda en 1) pero el segundo devuelve un error con su IP y así se continúa haciendo sucesivamente hasta llegar a destino.
De esta forma el equipo de origen recopila las IP de cada salto y nos las muestra en secuencia.
Hay operadores de red que piensan que eso es un problema porque muestra cómo es su red internamente y detectan y bloquean los paquetes traceroute.
Entre esos operadores está Telefónica
Cuando pasa eso, el router intermedio correspondiente descarta el paquete pero no devuelve ningún mensaje y el programa traceroute en el equipo original da un timeout al pasar x tiempo sin recibir respuesta y muestra * * *
Cada salto se prueba tres veces por defecto, por eso 3 asteriscos.