Le paquet IP TTL (Time to Live) est d'empêcher le transfert infini. Décrémenter (la valeur est décrémentée de 1) lors du passage à travers un sous-réseau (routeur). Ici, définissez le routeur sur Linux et vérifiez le fonctionnement de TTL.
Comme d'habitude, nous utilisons VirtualBox pour créer une telle configuration. Voir ici pour un exemple de paramètres VirtualBox.
Avec la configuration ci-dessus, il n'est pas nécessaire de définir une route statique. Activez simplement le transfert (net.ipv4.ip_forward).
~# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
~# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
Ping du terminal 2 (192.168.102.2) au terminal 1 (192.168.101.2). À ce stade, définissez TTL sur 10 (option -t).
~# ping -t 10 192.168.101.2
PING 192.168.101.2 (192.168.101.2) 56(84) bytes of data.
64 bytes from 192.168.101.2: icmp_seq=1 ttl=63 time=0.691 ms
Il semble que la valeur par défaut de ttl soit généralement 64. Le décrément TTL peut également être confirmé avec le paquet de réponse "ttl = 63", mais ici, l'état de "TTL = 10" au moment de la transmission est confirmé avec les données de capture de paquet. Cliquez ici pour les données capturées côté envoi (terminal 2). Cliquez ici pour les données capturées côté réception (terminal 1). Comme prévu, il est décrémenté comme "TTL = 9".
Réglez sur "TTL = 1".
~# ping -t 1 192.168.101.2
PING 192.168.101.2 (192.168.101.2) 56(84) bytes of data.
From 192.168.102.1 icmp_seq=1 Time to live exceeded
Le TTL a été décrémenté par le routeur, et il est devenu «0», rendant le paquet inaccessible.
J'ai confirmé que cela pouvait être un routeur même sous Linux. Est-ce naturel?
Recommended Posts