図1 相手とIPパケットがやりとりできるかを調べるのがpingコマンドだ<BR>コマンド・プロンプトで「ping あて先」と打ち込めば使える。あて先の指定はIPアドレスのほか,ドメイン名やWindowsのコンピュータ名でもよい。
図1 相手とIPパケットがやりとりできるかを調べるのがpingコマンドだ<BR>コマンド・プロンプトで「ping あて先」と打ち込めば使える。あて先の指定はIPアドレスのほか,ドメイン名やWindowsのコンピュータ名でもよい。
[画像のクリックで拡大表示]
図2 pingコマンドはICMPを使う&lt;BR&gt;pingコマンドはあて先に対してICMPエコー要求パケットを送り,その応答としてICMPエコー応答パケットが戻ってくるかを調べる。ICMPはIPパケットとして送受信される。
図2 pingコマンドはICMPを使う<BR>pingコマンドはあて先に対してICMPエコー要求パケットを送り,その応答としてICMPエコー応答パケットが戻ってくるかを調べる。ICMPはIPパケットとして送受信される。
[画像のクリックで拡大表示]

 ネットワーク技術者なら,ぜひ身につけておきたいテクニックを解説する。ネットワーク・コマンドの基本中の基本ping(ピング)だ。コマンドの基本的な使い方から応答メッセージの読み方まで,現場で役立つ実践的な知識を身につけよう。

 なにかトラブルがあったら,まずはping(ピング)*。プロも活用しているトラブル原因探しのための基本コマンドである。IPネットワークを介して通信相手とパケットがやりとりできるかを確認するためのコマンドだ。このpingコマンドの使い方を基本から確認し,応答メッセージの意味を理解して現場でも使えるようにしよう。

コマンド・プロンプトから使う

 IPネットワーク越しに特定のコンピュータと通信できるかどうかを調べるコマンドがpingである。IPアドレスなどで指定した相手にパケットを送り,相手からの応答を待つ。応答が正しく受け取れた場合は,相手のコンピュータやそこまでの経路が正常であることが確認できる。応答がなかったり,応答が届くまでに時間がかかり過ぎるようだと,どこかに問題があると推測できる。

 このpingコマンドの基本的な使い方は簡単だ。コマンド・プロンプト*を開いて,「ping」と打ち込んだら半角スペースを空け,そのあとに通信できるか調べたい相手のコンピュータのアドレスを打ち込むだけである。

 例えば,IPアドレスが192.168.5.12の機器を調べるには,

ping 192.168.5.12

と打ち込めばよい(図1(1)[拡大表示])。相手が正常に稼働しており,そこまでの経路が正常ならば,

Reply from ……

のような結果が表示される(2)。こうした表示が4行表示されたあとに,テスト結果をまとめた統計情報も出る(3)。pingコマンドを標準状態で使うと,4回繰り返してIPパケットを送って,その応答を表示するからである。

 何らかの理由で,時間内に応答が返って来ない場合は,

Request timed out.

という表示になる(7)。この場合は,相手のコンピュータが稼働していないか,途中の経路が切れていてパケットが相手に届いていない*

 統計情報には,応答パケットが正しく受け取れた比率や応答パケットが戻って来るまでの平均時間,最短や最長時間といった情報が表示される。これらの値が大きくばらつくと,途中の経路や相手のコンピュータに何か問題がありそうだとわかる。

 あて先の指定方法はIPアドレスだけではない。「nnw.nikkeibp.co.jp」のようなドメイン名*や,「WinXPclient」といったWindowsのコンピュータ名も利用できる(4,6)。

 このように名前(コンピュータ名やドメイン名)で相手を指定した場合,pingコマンドは,まずその名前に対応するIPアドレスを調べ,そのIPアドレスに対してパケットを送信する。この作業は名前解決と呼ばれ,pingコマンドでは名前解決で判明したIPアドレスが,結果表示画面の先頭行の[ ]内に表示される(5)。

IPネットの探査プロトコルを利用

 ここでpingコマンドのしくみを簡単に確認しておこう。pingコマンドは,ICMP*というプロトコルを利用している(図2[拡大表示])。ICMPはIPネットワークの制御や検査のために作られたプロトコルで,TCP/IPを利用するコンピュータはすべて対応している。

 pingコマンドを実行すると,パソコンはICMPエコー要求というパケットを送る。これを受け取った通信相手は,ICMPエコー応答というパケットを送り返す。ちょうど,「ヤッホー」と呼びかけたら,「ヤッホー」と返すようなやりとりである。

 IPを使うコンピュータはエコー要求パケットを受け取ると,原則としてICMPエコー応答パケットを返すことになっている。しかし,インターネットに公開されたサーバーなどでは,セキュリティ確保のためにあえて応答を返さないように設定しているケースもある。また,企業のファイアウォールなどは,ICMPパケットを遮断していることが多い。こうしたケースでは,通信相手が稼働していても,pingコマンドの結果は「Request timed out.」と表示される。