ping の ttl オプションが認識されません

ping の ttl オプションが認識されません

次のコマンドを使用して、Linux Mint 12 ラップトップで Android-2.3 pandaboard (Linaro Build) に ping を実行しています:

$ ping -c 5 -t 10 192.168.50.200
PING 192.168.50.200 (192.168.50.200) 56(84) bytes of data.
64 bytes from 192.168.50.200: icmp_req=1 ttl=64 time=360 ms
64 bytes from 192.168.50.200: icmp_req=2 ttl=64 time=401 ms
64 bytes from 192.168.50.200: icmp_req=3 ttl=64 time=404 ms
64 bytes from 192.168.50.200: icmp_req=4 ttl=64 time=402 ms
64 bytes from 192.168.50.200: icmp_req=5 ttl=64 time=603 ms

--- 192.168.50.200 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 360.455/434.506/603.300/85.995 ms

Time To Live を 10 に指定したにもかかわらず、ping コマンドはデフォルトの 64 値を維持するようです。

  1. ここで何を見逃したのでしょうか?
  2. ネットワーク構成が非 64 TTL の使用を妨げていないことをどのように確認すればよいですか?

逆に、Android デバイスからラップトップに ping を実行する場合、TTL オプション (-t) も使用されません。ご協力ありがとうございました。Emeric

[編集]

# ping -c 10 -t 52 74.125.224.72
PING 74.125.224.72 (74.125.224.72) 56(84) bytes of data.
64 bytes from 74.125.224.72: icmp_seq=1 ttl=52 time=1143 ms
64 bytes from 74.125.224.72: icmp_seq=2 ttl=52 time=81.3 ms
64 bytes from 74.125.224.72: icmp_seq=3 ttl=52 time=80.2 ms
^C
--- 74.125.224.72 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2215ms
rtt min/avg/max/mdev = 80.200/435.170/1143.921/501.162 ms, pipe 2

# ping -c 10 -t 51 74.125.224.72
PING 74.125.224.72 (74.125.224.72) 56(84) bytes of data.
64 bytes from 74.125.224.72: icmp_seq=1 ttl=52 time=78.5 ms
64 bytes from 74.125.224.72: icmp_seq=2 ttl=52 time=78.5 ms
64 bytes from 74.125.224.72: icmp_seq=3 ttl=52 time=81.1 ms
64 bytes from 74.125.224.72: icmp_seq=4 ttl=52 time=78.6 ms
64 bytes from 74.125.224.72: icmp_seq=5 ttl=52 time=84.3 ms
^C
--- 74.125.224.72 ping statistics ---
6 packets transmitted, 5 received, 16% packet loss, time 5556ms
rtt min/avg/max/mdev = 78.507/80.237/84.372/2.290 ms

答え1

送信トラフィックに設定される TTL は、ほとんどのオペレーティング システム上のシステム全体のパラメータであり、すべての送信トラフィックに対して同じに設定されます。ICMP 応答とは関係ありません。

システムが受信した TTL を減分する必要がある唯一の状況は、送信元アドレスと宛先アドレスが書き換えられたパケットの正確なコピーを別のインターフェイスから転送する場合、つまり、ルータとして動作している場合です。ICMP エコー要求は、このカテゴリには該当しません。

それでも、ホスト上でパケット スニファーを実行して着信トラフィックのキャプチャ レコードを確認したり、オペレーティング システムにログ記録をサポートするファイアウォール ソフトウェアがインストールされている場合はファイアウォール ログを確認したりすることで、確実に確認できます。

答え2

pandaboard は、最も一般的なシェル コマンドを処理するために busybox を実行します。これらのコマンドは、従来の Linux マシンのように個別の実行可能ファイルとして実行されるのではなく、busybox バイナリに組み込まれています。

busybox pingコマンドにはサブセット標準の ping 実行可能ファイルで使用可能な「適切な」オプション。

おそらく、ttl が必要な場合は、インストールできる完全な ping バイナリがあるでしょう。

関連情報