ping「要求がタイムアウトしました。」の原因を探る

ネットワーク技術解説

ping を使ってネットワークの疎通を確認した際、「要求がタイムアウトしました。」というメッセージで結果が返ってくる場合があります。実際にネットワーク上でどのような確認がおこなわれてどのような原因でこのメッセージが表示されるのかを確認してみます。いざという時のため知っておくと便利です。

ping の結果でよくある他のパターンとして以下のページもありますので参考にしてもらえればと思います。

【ping「宛先ホストに到達できません。」の原因を探る】

pingで確認できる原因はどこまでか

ping とは指定した宛先ホストまでの IP ネットワークの到達性を ICMP のプロトコルを使用して確認するコマンドツールです。

ping コマンドで確認できるのは OSI 参照モデルのレイヤー3に相当するネットワーク層までです。つまり、送信元から宛先ホストとして指定する IPアドレスまでの間のネットワークが問題なく利用できるかどうかの確認までで、それ以上の端末上で動作するサービスやアプリケーションが動いているかどうかまでは確認できません。

ICMPとは

ICMP とは、以下のようにネットワークの診断情報をタイプとコードで示す通知メッセージです。

ICMP タイプとコードで示す情報の例)

ICMP 要求(Echo Request)

ICMP message nameICMP Echo Request
Type8
Code0
ICMP Echo Request

ICMP 応答(Echo Reply)

ICMP message nameICMP Echo Reply
Type0
Code0
ICMP Echo Reply

pingコマンドの結果

pingが成功した結果の例

Windowsで確認した例

192.168.0.1 -> 192.168.0.2

C:\Users>ping 192.168.0.2

192.168.0.2 に ping を送信しています 32 バイトのデータ:
192.168.0.2 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.0.2 からの応答: バイト数 =32 時間 =2ms TTL=64
192.168.0.2 からの応答: バイト数 =32 時間 =2ms TTL=64
192.168.0.2 からの応答: バイト数 =32 時間 =1ms TTL=64

192.168.0.2 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 1ms、最大 = 2ms、平均 = 1ms

ping を4回試しすべて ping コマンドで指定した宛先IPアドレスからの応答があるため、宛先ホストに到達できていることがわかります。

pingの結果が「要求がタイムアウトしました。」となる例

Windowsで確認した例

192.168.0.1 -> 192.168.0.2

C:\Users>ping 192.168.0.2

192.168.0.2 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

192.168.0.2 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、

192.168.0.2 宛に ping を4回試し、計4回「要求がタイムアウトしました。」という結果になっています。最下行の統計で送信=4に対して、受信=0となり、損失=4とカウントされます。これは、送った要求に対して宛先ホストからの応答がまったくなかったことを示しています。

ping結果「要求がタイムアウトしました。」の原因

「要求がタイムアウトしました。」は、ping で送信したICMPに対して宛先のホストから応答がない時のメッセージです。

では、宛先のホストからの応答がないと言っている理由は何かというと主に以下のパターンが考えられます。

「要求がタイムアウトしました。」の主な3つの原因

①宛先ホスト(端末)が見つからない

ネットワークから宛先ホストが切り離されてしまっている状態です。ping を実行し応答を要求しているのですが、宛先ホストがいないため応答ができない。

②Firewallによりパケットが破棄された

Firewallとはネットワーク上の Firewall や Windows ファイアウォールやホストにインストールされているセキュリティソフトなどがあります。アクセスが拒否されてパケットを破棄されたため応答がない。

③一定時間内に応答が間に合わなかった

IPネットワークとしては、問題がなく応答が返ってきてはいるが、応答が返ってくるまでに時間がかかりすぎてタイムアウトしている。

ping結果「要求がタイムアウトしました。」の原因となる動作の詳しい説明

それぞれの原因についてネットワーク上でおこなわれている具体的な動作について説明します。

原因①の動作【宛先ホスト(端末)が見つからない】

宛先ホストがネットワーク上にいないため、応答が返ってきません。以下のように宛先ホストが属するネットワークまでたどり着き、先ほどまでは同じネットワーク上に確かにその IP アドレスをもつホストが存在したにもかかわらず今は LAN 上にいないために起こります。

ping 要求がタイムアウトしました。 原因①の動作 リモート編

ローカルのLAN上で具体的に説明すると、

例えば、自身の端末と同一ネットワークへの ping を実行すると、まずはじめに宛先の IP アドレスと MAC アドレスの対応情報が PC の ARP テーブルに存在するか確認します。

ping 要求がタイムアウトしました。 原因①の動作 ローカル編①

ARP テーブルに該当の情報があれば ICMP Echo を送信します。しかし、この時に宛先ホストがすでにネットワークから外されている場合、応答が返ってこずタイムアウトの時間(デフォルト4秒)を経過し Windows は「要求がタイムアウトしました。」というメッセージを表示します。

C:\Users> ping 192.168.0.3

ping 要求がタイムアウトしました。 原因①の動作 ローカル編②

ping 結果としては、以下のようになります。

C:\Users>ping 192.168.0.3

192.168.0.3 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

192.168.0.3 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、

原因②の動作 【Firewall によりパケットが破棄された】

ping は実行されたが、途中で Firewall により ICMP パケットが破棄されたため、応答を受け取ることができずイムアウトの時間(デフォルト4秒)を経過し Windows は「要求がタイムアウトしました。」というメッセージ表示します。

C:\Users> ping 192.168.100.1

ping 要求がタイムアウトしました。 原因②の動作

Firewall はネットワーク機器以外にも宛先ホストの Windows ファイアウォールセキュリティソフトにより通信を遮断し ICMP パケットを破棄している場合もあります。

セキュリティ上、ICMP パケットを Firewall で遮断していることも多いので、このような場合は宛先ホストまでのネットワークに問題があるかどうか ping では確認できません。

ping 結果としては同じで、以下のような表示になります。

C:\Users>ping 192.168.100.1

192.168.100.1 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

192.168.100.1の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、

原因③の動作 【一定時間内に応答が間に合わなかった】

ネットワークの混雑や遅延などが原因で、応答がタイムアウトしてしまう場合があります。この場合は、ping のタイムアウト時間を長くすることで応答が変化します。

C:\Users>ping 192.168.100.1

ping 要求がタイムアウトしました。 原因③の動作

ただし、Windowsだとデフォルトタイムアウト値は4秒もあるので、これが原因になることはあまりなさそうです。応答時間は一般的に同じLAN上で1ms~20ms、インターネット上で10ms~500ms以下になるのが現実的かと思います。

この場合もping 結果としては同じで、以下のような表示になります。

C:\Users>ping 192.168.100.1

192.168.100.1 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

192.168.100.1 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、

まとめ

今回は、「要求がタイムアウトしました。」という ping の失敗メッセージを紹介しました。要求がタイムアウトとは、基本的には ICMP 要求を送信したものの宛先がホストがいなかったり、途中でFirewallなどで破棄されていたりが原因であることを示しています。ですので、原因の調査としても以下のような基本的なところから確認していくことが大切です。

  • ping の宛先 IPアドレスが間違っていないか確認する。
  • 宛先の端末が設定している IP アドレスを確認する。
  • 宛先の端末がネットワークに接続されているか確認する。
  • ネットワーク経路上または宛先ホストのFirewallでICMPが許可されているか確認する。

ICMPのメッセージには他にも種類があるので普段から利用している環境で ping を試して使い慣れておくと便利です。

参考リンク

ICMPヘッダのフォーマットとサイズの基本

ping「宛先ホストに到達できません。」の原因を探る

IPアドレス(IP Address)とは – 概要と基本の形

ファイアウォールの概要と基本動作


コメント