【ping疎通試験】ネットワーク障害・エラーの原因を調べる

ping疎通試験でネットワーク障害・エラーの原因を調べるする方法についてまとめました。

【ネットワーク障害】ping試験で問題の切り分け

ネットワーク障害が発生した際に、自身のホストに近い順にネットワーク機器のIPアドレスを指定してping試験を実施していくのが原因特定の効果的です。
近いところから順にping試験することで「どこまで問題なく通信できるのか、どこから通信エラーが発生するのか」がわかります。
つまり、問題なく通信できた所と、通信エラーが出たところの間に原因があると推測できます。

ping値

オンラインゲームの快適さ(ラグの少なさ)を調べる際にも「ping値」というキーワードが登場します。
オンラインゲームのping値は、クライアント(ゲーム機)とゲームサーバーとのデータ通信にかかる時間を表した数値です。

数値が高いほど、データ通信にかかる時間が長くなるため、ラグが増えてしまいます。
オンラインゲームを快適にプレイするには、下り10Mbps、Ping値50ms以下が目安と言われています。
ping値は以下のようなサイトなどで簡易的に測定できます。

https://speedtest.gate02.ne.jp/

【UNIXコマンド】pingとオプションの使い方
UNIXコマンド「ping」とそのオプションの使い方についてまとめました。

【ping試験】ループバックアドレス

ループバックアドレス(127.0.0.1)とは、自身のホスト(PC)を指すIPアドレスです。
ネットワーク障害が発生した場合、まずループバックアドレスでping試験をして、問題がないか確かめます。

ping 127.0.0.1
応答が無い場合、考えられる原因
1 TCP/IPモジュールの異常(モジュールを再インストールしてみる)

【ping試験】ホストに設定しているローカルIPアドレス

ループバックアドレスで、問題がなければ続けて「自身のホストに設定しているローカルIPアドレス」にping試験を行います。

$ping 192.168.100.100

「自身のホストに設定しているローカルIPアドレス」は、ipconfigコマンドで確認できます。
【例】

$ipconfig

Windows IP 構成

   IPv4 アドレス . . . . . . . . . . . .: 192.168.100.100
応答が無い場合、考えられる原因
1 LANケーブルが未接続・断線(接続されていてもケーブルテスタで断線してないか確認)
2 NICが認識されていない(NICのドライバを再インストール、NICの交換)
3 IPアドレスが設定されていない(ipconfigコマンドで設定されているか確認し修正)

【ping試験】ハブ・スイッチに接続されたホスト

続いて、同じハブやスイッチに接続されたホストにping試験を行います。

【例】

$ping 192.168.100.101

問題なく応答があれば、別のハブやスイッチに接続されたホストに対してもping試験を実行してみます。

応答が無い場合、考えられる原因
1 LANケーブルが未接続・断線(接続されていてもケーブルテスタで断線してないか確認)
2 スイッチ・ハブの故障(まずは電源ランプが点灯しているか確認。特定のポートが故障している可能性もあるので、別のポートに差し替えてみる。それでも駄目ならスイッチ・ハブを交換)

【ping試験】デフォルトゲートウェイ

続いて、デフォルトゲートウェイに設定しているルータのIPアドレス宛にping試験を行います。

$ping 192.168.100.1
応答が無い場合、考えられる原因
1 ルータの設定に問題(電源ランプの確認。次にIPアドレスやインタフェースの状態を確認、VLANを使っている場合、スイッチポートの設定が間違っていることが多いです)
2 LANケーブルが未接続・断線(接続されていてもケーブルテスタで断線してないか確認)
3 ルータの故障(まずは次にインタフェースの状態を確認。問題があればルータを交換)

補足

デフォルトゲートウェイに設定しているルータのIPアドレスは、ipconfigコマンドで確認できます。

$ipconfig

Windows IP 構成

   デフォルト ゲートウェイ . . . . . . .: fe80::ee89:14ff:fec7:7281%7
                                          192.168.100.1

【ping試験】デフォルトゲートウェイの別ネットワークのインタフェース

続いて、デフォルトゲートウェイに設定しているルータの「別ネットワークのインタフェース」にping試験を実行します。

応答が無い場合、考えられる原因
1 ルータのインタフェース設定に問題
2 ルータのルーティング設定に問題

【ping試験】別ネットワークのホスト

続いて、別ネットワークのホストにping試験を行います。

応答が無い場合、考えられる原因
1 デフォルトゲートウェイ~別ネットワークのホスト間にあるLANケーブルが未接続・断線
2 デフォルトゲートウェイ~別ネットワークのホスト間にあるスイッチ・ハブが故障
到達不能(Destination Unreachable)メッセージが表示された場合の原因
1 ルータのルーティングテーブルに経路が存在しない

【ping試験】宛先ホスト

続いて、宛先ホストに対してping試験を行います。

宛先ホストが157.112.145.21(algorithm.joho.info)の場合

$ping 157.112.145.21
$ping algorithm.joho.info
考えられる原因
1 IPアドレス(157.112.145.21)を指定したときは応答が返ってきて、ドメイン名(algorithm.joho.info)で応答が返ってこない場合は、DNSサーバでの名前解決に失敗。
2 どちらも応答があった場合、Webサーバ側の問題

【ping試験】DNSサーバ

IPアドレス(157.112.145.21)を指定したときは応答が返ってきて、ドメイン名(algorithm.joho.info)で応答が返ってこない場合は、DNSサーバでの名前解決に失敗している可能性が高いです。
その場合は、DNSサーバに対してping試験を行います。

応答がない場合に考えられる原因
1 DNSサーバで障害
2 デフォルトゲートウェイ~DNSサーバ間にあるネットワーク機器、LANケーブルに障害
応答がある場合に考えられる原因
1 WebサーバのIPアドレスをDNSで解決出来ていない(nslookupコマンドを使って名前解決を実行し、IPアドレスに変換できていればWebサーバーが動作していない可能性が高いです。変換できなければドメイン名もしくはDNSの設定が誤っている)

【プログラム】ping試験の自動化

ping試験の自動化するプログラムについて下記リンク先で紹介しています。

ping試験の自動化
1 【Python】ping試験を一括で実行&結果をファイルに保存
2
関連記事
1 【UNIX入門】コマンド・サンプル集

コメント