GNU/Linux >> Linux の 問題 >  >> Linux

Time to Live over ping エラー

送信されるすべてのデータ パケットには、IP パケット ヘッダー内に TTL 値が含まれています。これは、データが破棄される前に通過できるホップ数を指します。ホスト間のネットワーク トラフィックに基づいて、システムで実行されている OS を予測できます。すべてのオペレーティング システムには、TCP/IP スタックを実装する独自の方法があります。非常に単純だが効果的なパッシブな方法は、IP ヘッダーの初期有効期間 (TTL) を検査することです。

この ICMP ping エラー「Time to live exceeded」は、Time to Live (TTL) フィールドがゼロの値に達したか、セグメントの再構成にタイムアウトが発生したことが原因です。解決策として、TTL (Time To Live) 値を増やすことをお勧めします (最高は 255 です)。

解決策

たとえば、ipaddress 8.8.8.8 (Google のパブリック DNS サーバー) に対して traceroute を実行します。目的地までのホップ数を求めます。

[root@server ~]# traceroute 8.8.8.8      (in linux distro)
C:\>tracert 8.8.8.8                                (in Windows OS)

私にとっては、8.8.8.8 への 6 ホップです。したがって、icmp パケットを 8.8.8.8 に到達させて ping リプレイを取得するには、最小 TTL 値 6 が必要です。また、TTL 値が 5 以下の 8.8.8.8 に ping できません。

異なる TTL 値での ping の結果:

[root@server ~]# ping 8.8.8.8 -t 5                 (-t 5  is for custom TTL value of 5)

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.1.1  icmp_seq=1 Time to live exceeded
From 192.168.1.1  icmp_seq=2 Time to live exceeded
From 192.168.1.1  icmp_seq=3 Time to live exceeded
From 192.168.1.1  icmp_seq=4 Time to live exceeded
# ping 8.8.8.8 -t 6 (-t 6 はカスタム TTL 値 6 用です)
PING 8.8.8.8 (8.8.8.8) 56(84) バイトのデータ.
64 バイト8.8.8.8 から:icmp_req=1 ttl=55 時間=48.9 ミリ秒
8.8.8.8 から 64 バイト:icmp_req=2 ttl=55 時間=49.5 ミリ秒
8.8.8.8 から 64 バイト:icmp_req=3 ttl=55 time=50.4 ms
8.8.8.8 からの 64 バイト:icmp_req=4 ttl=55 time=49.4 ms


Linux
  1. Ubuntu 15.10のライブUSBでの「ブートエラー」–修正方法

  2. Linux プロセスの状態

  3. とは :-!! Cコードで?

  1. Bashスクリプトでのエラー処理

  2. WifiエラーWpa_supplicant?

  3. ping と tcpdump を同時に行う

  1. Linux での ping コマンドの例

  2. ping -c から平均時間を抽出する

  3. 複数のコマンドの実行時間を計る