Ces réseaux sont transmis par paquets. Les paquets passent par plusieurs autres nœuds de réseau avant d'atteindre leur destination pour aboutir au début du réseau local du destinataire, puis directement à la destination. Il n'est pas rare que ces paquets s'égarent. Afin de les diriger vers le bon chemin dans le réseau, chaque paquet se voit attribuer une certaine durée de vie.
Le paramètre TTL est responsable de cette durée de vie. Il s'agit du nombre de nœuds qu'un paquet peut passer avant d'être détruit. Lors du passage de chaque nœud, la valeur du TTL diminue jusqu'à atteindre une valeur de zéro. Plus le TTL est élevé, plus le paquet peut traverser des réseaux alambiqués.
Les paramètres de bas niveau du réseau TTL sous Linux sont contrôlés par le noyau. Ils peuvent être configurés à l'aide de l'interface de configuration du noyau. Quel TTL le système utilise-t-il ?
Utilisons la commande ping :
$ ping 127.0.0.1
Dans les données d'envoi du paquet, nous pouvons voir le TTL avec lequel le paquet a été envoyé. Nous pouvons voir que la valeur utilisée est 64. Pour Windows, une valeur TTL de 128 est utilisée. Cette valeur est généralement suffisante, car il y a au moins 20 à 30 routeurs entre les nœuds du réseau. Il n'est pas toujours utile de modifier le TTL pour que les paquets puissent atteindre leur destination.
Il est possible de modifier le TTL en ajustant le paramètre net.ipv4.ip_default_ttl.
Nous essayons une telle commande :
$ sudo sysctl -w net.ipv4.ip_default_ttl=65
Pour que les changements persistent après un redémarrage, vous pouvez écrire cette ligne de paramètres dans le fichier /etc/sysctl.conf :
$ sudo vi /etc/sysctl.conf
net.ipv4.ip_default_ttl=65
Après le TTL sera de 65 :
Si vous ne souhaitez pas modifier les paramètres du noyau, vous pouvez modifier le TTL des paquets lorsqu'ils passent par le filtre réseau iptables. Pour ce faire, exécutez une commande comme celle-ci :
$ iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65
Ceci fonctionnera également. Il n'est pas difficile de modifier le TTL de Linux.