ping からサーバーに到達できない理由を診断するときに適用するテクニックは何ですか?

ping からサーバーに到達できない理由を診断するときに適用するテクニックは何ですか?

仕事中、サーバーが稼働中かどうかを確認するために ping を実行する必要があることがよくあります。ホスト (名前?) が見つからないというメッセージや、応答しない結果になるその他のエラーが表示されることがあります。

これらの問題の原因を診断するにはどのようなテクニックがありますか? 最初にターゲット マシンを確認する必要がありますか? それとも、自分のマシンとそのファイアウォールを確認する必要がありますか? ping の送信元と送信先のマシンが異なるドメインにある場合、問題になりますか? (ファイアウォール設定に従う必要がある場合にのみ問題になると思います)。

ありがとう

答え1

ping が失敗した場合、次のいずれかを意味します。

  1. ping 要求がターゲット ホストに届かない
  2. リクエストを送信したホストにping応答が届かない

これらのいずれかが発生する理由は多数ありますが、その大部分は物理的な問題とソフトウェアの問題のいずれかに分類できます。

デバッグを行うときは、伝送パスの物理コンポーネント、つまり NIC、ネットワーク ケーブル、中間デバイスから始めます。

身体検査

  1. ネットワークケーブルは 2 つのホストを接続します。2 つのホストがケーブルで直接接続されていない場合は、送信側と受信側の NIC が正しいルーターやスイッチ ポートに接続されていることを確認してください。これらはトラフィックを異なる方法でルーティングするように設定できます。

ソフトウェアチェック

  1. 各マシンのNICがオペレーティングシステムによって認識されていることを確認してください。[1]
  2. 両方のマシンに有効なIPアドレス、サブネットマスク、ゲートウェイ、ネームサーバーの構成があることを確認してください。[2]
  3. 送信ホストと受信ホストに有効なMACアドレスがあることを確認してください(はい、私は以前にこの問題を経験しました)[3]
  4. 送信ホストと受信ホストがゲートウェイの正しいARPキャッシュ情報を持っていることを確認する[4]
  5. 送信ホストに受信ホストのARPキャッシュエントリが存在する可能性があります。その逆も同様です。そのようなエントリが存在する場合は、IPアドレスが正しいMACアドレスにマップされているかどうかを確認して、これらのエントリが正しいことを確認してください。矛盾がある場合は、ARPキャッシュからそれらのエントリを削除します。
  6. ping パケット (ICMP エコー要求および ICMP エコー応答) が、ローカル ソフトウェア ファイアウォールのフィルター、または送信ホストと受信ホスト間のデバイスで実行されているフィルターによってブロックされていないことを確認します。
  7. 受信ホストを識別するためにホスト名を使用している場合は、名前解決プロセスに起因する問題を排除するために、IP アドレスを直接使用してみてください。

トラブルシューティングを行う際には、ping コマンドによって返されるエラー メッセージも考慮する必要があります。よく表示されるエラー メッセージには次のようなものがあります。

Request Timed Out

これは、タイムアウト期間内に応答が受信されなかったことを示す非常に一般的なメッセージです。これは、ワークロードと時間の制約のため、または前述の接続またはルーティングの問題のため、ホストが応答できなかったために発生する可能性があります。

Reply from {host}: Destination network unreachable

多くの場合、{host}ローカル マシンの NIC またはマシンのゲートウェイです。このメッセージは、受信ホスト間のルートが見つからなかったことを意味します{host}(間違っている可能性があります)

これはpingが失敗する理由を網羅したリストではありませんが、多くの一般的な問題をカバーしています。次にネットワークがダウンしたときに誰かの助けになれば幸いです。

以下の脚注は、私が経験のあるWindows NTベースのシステムに適用されます。

[1] デバイス マネージャーの [不明なデバイス] ノードの下にあるネットワーク コントローラー項目の存在を確認することで、オペレーティング システムにネットワーク カード用の有効なドライバーがあることを確認できます。存在する場合は、カードと互換性のあるドライバーを見つける必要があります。

ネットワークアダプタノードの下でカードを確認します。カードがリストされている場合は、それをダブルクリックし、デバイスステータスの下にリストされている既知のエラーがないか確認します。

[2] TCP/IP 構成ダイアログは、Vista / Win 7 でネットワークと共有センターを開き、アダプター設定の変更 (左側のペイン) を選択して、対象のアダプターを右クリックしてプロパティ (昇格が必要) を選択し、使用している TCP/IP プロトコル バージョン 4 または 6 (ほとんどの場合 v4) をダブルクリックすることでアクセスできます。

[3]ipconfig /allコマンドを実行すると、MACアドレス、IPアドレス、サブネットマスク、ゲートウェイ、ネームサーバーが表示されます。MACアドレスは出力で物理アドレスとして表示されます。

[4] このARP -aコマンドはホストの現在のARPテーブルを表示します。

答え2

先ほどの答え:

ホスト名が見つかりません: これはルーティングの問題ではなく DNS の問題を示しているため、DNS サーバーと、ping 元のデバイスとの関係を確認する必要があります。

ping がどこまで到達しているかをトレースするには、ping ではなく tracert を使用して、ルートが失敗する前に到達しているデバイスを確認します (これは、他のデバイスが開始デバイスと同じサブネット上にない場合にのみ役立ちます)。

答え3

時々 ping が受信されるが、他の時には受信されず、それを証明/捕捉できない場合は、ネットワークの問題を特定するのに役立つツールがいくつかあります。

ウィンドウズ: http://www.pingplotter.com/freeware.html パスピング

リナックス: http://en.wikipedia.org/wiki/MTR_%28ソフトウェア%29

これらのツールは、5 番目のホップで問題が発生していることを特定し、そのホップだけをトラブルシューティングするのに役立つ可能性があります。

ネットワーク全体で、応答が遅い原因となっているデバイスを見つける必要がある場合があり、1 回の ping では見つけられないことがあります。これらのツールは、一連の ping で「スコア」を記録してグラフを表示することで、原因を特定するのに役立ちます。

場合によっては ping の優先度も低くなるため、ping が遅いからといって必ずしもネットワークが悪いというわけではないことに注意してください。

上記のすばらしい徹底的な回答とは別に、NIC が適切なリンク速度を使用していることを確認してください。

Windows では、ネットワーク プロパティの GUI を調べることができます。Linux では、「ethtool」を使用します。ルーター/スイッチのどちらかの側のホストが 10MB および半二重に設定されていても、ルーター/スイッチが 100MB の全二重に設定されている場合、奇妙なエラーが発生します (例)。ただし、これは確立されたシステムよりも新しいセットアップでよく発生します。

netstat を使用すると、これらのエラーの一部を確認できます。

ネットスタット -S

または、超オタクなら、常に監視することで:

/L %i in (0,0,0) の場合、@cls を実行します && netstat -S|find /I "Error" && @ping -n 1 -w 2000 224.0.0.0 >NUL && @cls

エラーが発生しているだけであれば、大した問題ではありませんが、秒ごとにエラーが増えていく場合は、ハードウェア/ケーブル/速度/デュプレックスの問題である可能性があります。

答え4

ping が機能しない場合は、次のようにします。

  • 名前が正しい IP に解決されることを確認します。これはサーバーの問題ではなく、同僚のラップトップなどの問題であることが多いです。
  • IP が正しいことが確実な場合は、tracert を使用して到達距離を確認します。
  • ping しようとしているサーバーが ICMP メッセージに反応しているかどうかわからない場合は、telnet を使用してサーバーのポートを開き、結果を確認します。
  • 同僚が自分のPCからサーバーにアクセスできるかどうかを確認します

関連情報