Estas redes se transmiten por paquetes. Los paquetes pasan por varios otros nodos de la red antes de llegar a su destino para acabar en el principio de la red local del destinatario y luego directamente en el destino. No es raro que estos paquetes se extravíen. Para dirigirlos por el camino correcto en la red, a cada paquete se le asigna un tiempo de vida determinado.
El parámetro TTL es el responsable de su vida útil. Es el número de nodos que puede atravesar un paquete antes de ser destruido. Durante el paso de cada nodo, el valor TTL disminuye hasta que el tiempo alcanza un valor de cero Cuanto mayor sea el TTL, más enrevesadas serán las redes que el paquete puede atravesar.
Los parámetros de red TTL de bajo nivel en Linux están controlados por el kernel. Se puede configurar utilizando la interfaz de configuración del kernel. ¿Qué TTL está utilizando el sistema?
Usemos el comando ping:
$ ping 127.0.0.1
En los datos de envío del paquete podemos ver el TTL con el que se envió el paquete. Podemos ver que el valor utilizado es 64. Para Windows, se utiliza un valor TTL de 128. Esto suele ser suficiente, ya que hay al menos 20-30 routers entre los nodos de la red. No siempre merece la pena cambiar el TTL para que los paquetes lleguen a su destino.
Cambiar el TTL es posible ajustando el parámetro net.ipv4.ip_default_ttl.
Probamos tal comando:
$ sudo sysctl -w net.ipv4.ip_default_ttl=65
Para hacer que los cambios persistan después de un reinicio puedes escribir esta línea de ajustes en el fichero /etc/sysctl.conf:
$ sudo vi /etc/sysctl.conf
net.ipv4.ip_default_ttl=65
Después de TTL será 65:
Si no quieres cambiar la configuración del kernel, puedes modificar el TTL a los paquetes cuando pasan a través del filtro de red iptables. Para ello, ejecute un comando como este:
$ iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65
Esto también funcionará. Cambiar el TTL de Linux no es difícil en absoluto.