LoginSignup
0
1

More than 3 years have passed since last update.

LinuxルーターでTTL確認

Posted at

Linuxをルーターに仕立て、IPパケットのTTLが機能していることを確認

IPパケットのTTL(Time to Live)は無限転送を防ぐためのもの。サブネット(ルーター)を通過するとデクリメント(値が1減)される。ここでは、Linuxにルーター設定を行い、TTLの動作を確認する。

ネットワーク構成

構成.png

例によってVirtualBoxを使ってこのような構成を作る。VirtualBoxの設定例は、こちらを参照。

Linuxルーターの設定

上記構成だとStatic Routeの設定は不要。単にForwarding(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

実験

その1

端末2(192.168.102.2)から端末1(192.168.101.2)へpingする。このときTTLを10(-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

通常ttlのデフォルトは64になっている様子。リプライパケットの”ttl=63”でも、TTLのデクリメントが確認できるが、ここでは、送信時の”TTL=10”の様子をパケットキャプチャデータで確認する。送信側(端末2)のキャプチャデータはこちら。
TTL=10.png
受信側(端末1)のキャプチャデータはこちら。
TTL=9.png
期待どおり、”TTL=9”とデクリメントされている。

その2

”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

ルーターでTTLがデクリメントされて、’0’となりパケット到達不能となった。

終わりに

Linuxでもルーターになることを確認した。当たりまえか。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1