pingはネットワーク上にあるコンピュータまでの接続経路がきちんと接続されているか導通確認をするコマンドだ。
ネットワークに新しいコンピュータや機器を接続した際に最初にチェックするコマンドなので、使用頻度は極めて高い。ぜひ、覚えておこう。
pingコマンドの基本
コマンドの基本動作
使い方は、次のとおりだ。
$ ping 接続先IPアドレスまたはホスト名
IPアドレス192.168.179.10へ接続されているかチェックする場合は、次のコマンドだ。
$ ping 192.168.179.10
導通が確認された。
コマンド実行後、何もしなければpingは導通試験を繰り返し行う。
Ctrl+Cのショートカットキーで強制的に停止できる。
今回は18回目で停止させた。
64byteは、導通試験をするのに送信したデータのバイト数。パケットデータサイズと呼ばれるものだ。
fromの後は接続確認先のIPアドレスだ。
icmp_reqは、密にはicmpパケットデータの何番目のデータ送信かという意味だが、実際には何回目の導通試験かを表していると捉えればよいだろう。
ttlはネットワーク用語のTTLで、ネットワーク機器を通過するたびに1ずつ消費され、0になるとその通信データは破棄される。
これは、ネットワーク上に何らかの不具合でデータが残り続けることを防止するための仕組みである。
同じネットワーク機器でもHUBでは消費されず、IPアドレスを変換するルーターのような装置を通過した場合に消費される。
timeはpingコマンドを実行したコンピュータが導通試験のパケットデータを発してから、相手先からのリアクションが戻ってくるまでの時間だ。
通信速度と考えていいだろう。
接続したばかりの機器では安定しないため大きな値が出ることもあるが、数回のうちに安定すれば問題ない。
また、同ネットワーク上の他の機器の通信の多さにも影響されるので突然大きな値が出ることもある。
上記の例でのコマンド実行結果の最後の行のrttは、通信速度の基本統計量データだ。
最速値(min)、最遅値(max)、平均値(ave)、通信速度の偏差(mdev)だ。
すべて早いほうがよりよい。
最速値と最遅値の差が少なければ通信は安定していると言えるだろう。
通信速度の偏差はばらつき度合いを表しているのだが、最速値と最遅値だと突発的な速度の差が出てしまうが、偏差であれば、数個の突発的なデータに左右されないばらつき度合を見ることができる。
しかし、統計の知識がなければ偏差の数の意味を計るのは困難なので、数値自体の意味よりも、小さければ小さいほど安定していると考えてよいだろう。
数台のコンピュータで同じ条件でpingを実施し、mdevの値が1台のコンピュータだけ極端に大きい場合は、その経路になんらかの不安定要素があると捉えることができる。
全く導通が確認されない場合は、次のような表示になる。
Distination Host Unreachableと表示され、相手先が見つからずに100%のパケットが破棄されるのだ。
pingコマンドのオプションたち
オプションの一覧
後から詳細をご紹介するが、まずは一覧で見てみよう。
オプション -c
pingの回数を設定する
オプション -i
pingの間隔を設定する
オプション -p
pingの試験するパケット内容を設定する
オプション -s
pingの試験するパケットサイズを設定する
オプション -t
pingの試験するTTLの数を設定する
-cオプション:pingの回数を設定する
pingコマンドの繰り返し回数を指定するコマンドだ。
オプションを設定しなければ、無限にpingを実行するが、その回数を決めることができる。
書式は次のとおりだ。
$ ping -c 回数 接続先IPアドレスまたはホスト名
IPアドレス192.168.179.10へ接続されているか4回のみチェックする場合は、次のコマンドだ。
$ ping -c 4 192.168.179.10
pingが4回実行され、4回分導通が確認された。
-iオプション:pingの間隔を設定する
pingコマンドの繰り返し間隔を指定するコマンドだ。
繰り返し間隔はミリ秒で指定する。1秒なら1000、10秒なら10000だ。
書式は次のとおりだ。
$ ping -i 間隔 接続先IPアドレスまたはホスト名
10秒間隔でIPアドレス192.168.179.10へ接続されているかチェックする場合は、次のコマンドだ。
$ ping -i 10 192.168.179.10
-pオプション:pingの試験するパケット内容を設定する
pingコマンドの送信するパケット内容を16進数で指定するコマンドだ。
書式は次のとおりだ。
$ ping -p 送信したいパケット内容 接続先IPアドレスまたはホスト名
よくある例として、パケット内容を5とAの繰り返しで行うときがある。
これは16進数の5は2進数だと0101、Aは1010という0と1の交互の組み合わせになり、常に変化が起きるデータなので最も厳しい条件でのテストができるためだ。
IPアドレス192.168.179.10へ16進数で5A5A5A5Aの組み合わせのパターンで接続されているかチェックする場合は、次のコマンドだ。
$ ping -p 5A5A5A5A 192.168.179.10
1行目にPATTERNが0x5A5A5A5Aと表示されている。
IPアドレス192.168.179.10へ16進数で5A5A5A5Aの組み合わせのパターンでの導通が確認された。
-sオプション:pingの試験するパケットサイズを設定する
ping試験を行うパケットサイズを指定するコマンドだ。
書式は次のとおりだ。
$ ping -s パケットサイズ 接続先IPアドレスまたはホスト名
パケットサイズ1バイトとしてIPアドレス192.168.179.10へ接続されているかチェックする場合は、次のコマンドだ。
$ ping -s 1 192.168.179.10
これはパケットサイズを1としてpingコマンドを実行した結果とオプションを設定せずにpingコマンドを実行した結果だ。
パケットサイズを1とした場合でもパケットサイズは9となる。
実際には、指定したサイズに8バイトが足される形でpingは実行される。
これは、パケット通信のためには、実際の通信内容の他に通信先や通信元などの通信に必要な情報が8バイト必要であるため、そのパケット分が足されているためだ。
-tオプション:pingの試験するTTLの数を設定する
pingコマンドを実施する時のTTLを指定するコマンドだ。
書式は次のとおりだ。
$ ping -t TTLの数 接続先IPアドレスまたはホスト名
TTLを32回に限定し、IPアドレス192.168.179.10へ接続されているかチェックする場合は、次のコマンドだ。
$ ping -t 32 192.168.179.10
-tオプションについては、実働させた内容を見て理解を深めよう。
次はその実働内容だ。
表示されているアドレスは、適宜加工してある。
インターネット上のアドレスxxxx.xxxx.xxxx.xxxxへの導通試験をTTLを13に既定して実施した。
$ ping -t 13 xxxx.xxxx.xxxx.xxxx
戻ってきたTTLは51である。今回の環境ではTTLは64で開始している。
つまりTTLは13消費されている通信ルートで接続されているのだ。
今度はTTLを12に既定して実施した。
$ ping -t 12 xxxx.xxxx.xxxx.xxxx
先ほど、この通信ルートではTTLが13消費されるルートだったのだが、12に既定したことで、ルートの途中、xxx1.xxx2.xxx3.xxx4のネットワーク機器の時点でTTLを使いきり、パケットデータがネットワークから破棄されたことが表示された。
注意したいのは、-tオプションで指定するTTLは通信で消費する上限のTTLの指定であって、実行結果として表示されるTTLは消費されて戻ってきた残りのTTLであるので区別しておきたい。
pingコマンドの注意点
pingコマンドは、導通試験のために短い間に試験のためのパケットデータを一気にネットワークや導通相手の機器に送り続けてしまう。
つまり、ネットワークに負担をかけてしまうのだ。
pingは物理的に接続されているか試験するために、ICMPという、いわばどこへでもアクセスできるプロトコルを使用する。
ネットワーク管理者が監視しているログにもpingコマンドの実行は記録される。
そのために、あらかじめネットワークに関係するユーザーやネットワーク管理者に実施の連絡をしておこう。
pingで導通が確認できない場合のチェック項目
LANケーブルの接続確認
LANならLANケーブルがしっかり接続されているか確認しよう。
特に、コネクタはカチッと音がするまで差し込まれているか確認しよう。
無線LANの設定ミス
新たに接続した機器に無線LANがきちんと接続されているか確認しよう。
その際に、ifconfigコマンドを利用すればよいだろう。
コンピュータの設定ミス
固定IPアドレスが重複していれば、ネットワーク上には同じコンピュータが2つあることになり、通信が混乱する。
固定IPアドレスで各コンピュータを運用する場合は一覧表を作って重複しないようにきちんと管理しよう。
接続機器数の管理
ネットワーク機器にはそれぞれ最大で接続できる機器数が決まっている。
その数を超えた構成になっていないか確認しよう。
無線LANの場合は、製品に書いてある最大接続機器数を接続すると動作が不安定になることもあるので、少し余裕を見て構成しよう。
ネットワーク機器の電源確認
経路上のHUBやルーターの電源が入っているか確認しよう。
HUBのカスケード接続
通信が安定しない場合に多いが、HUBをカスケード接続しているつもりが、いつのまにかループ接続になっている場合がある。
カスケード接続する際は、カスケードポートから子にあたるHUB、孫にあたるHUBをきちんと図式化して、ケーブルのコネクタにはどこのHUB、どこの機器へ接続されているかラベルを張ろう。
LANケーブルの切断
最近ではLANケーブルも細いものや平らなものが多くなってきている。
形状によっては破断しやすくなっているので、注意が必要だ。
特にコネクタ部は何度も付け替えしているとロックするための爪が破損し、ロックされないので接触不良となるケースもある。
pingの結果、繋がるときもあればそうではない時もあるのであれば、コネクタ部の故障ということが多い。
機器の故障
ネットワーク機器のほとんどは実に堅牢な作りになっているので滅多に壊れることはない。
しかし、使用年数が増えれば故障する確率は上がってくるので絶対ではない。
疑うのは最後の方でいいだろう。
不具合箇所の特定
どのコンピュータからの接続もお互いにできないのであれば、すべてのコンピュータが接続されている大元のHUBやルーターに不具合が発生している可能性もある。
1台のコンピュータだけ接続されないのであれば、その経路のみチェックすればよい。
コンピュータが原因なのか、ネットワークのどこかが原因なのか判断するには、正常に動いているコンピュータを、不具合の出ているコンピュータと入れ替えてみるとわかる。
ping関連コマンド
最後にpingコマンドに関連して、基本的なネットワーク用コマンドも紹介しておく
ifconfigコマンド
コンピュータのネットワーク設定内容を確認する。
まとめ
今回は、pingコマンドを使ったネットワーク経路の接続状況の確認方法を解説した。
社内ネットワークを構築する場合、新しいネットワーク機器を追加した場合や、無線LANで固定IPアドレスではなく設定しているような場合、きちんとIPアドレスが自動割り振りされているかを確認するような時など使用頻度は高いだろう。
ただし、ネットワークに負荷をかける操作でもあるので、-cオプションで回数を制限したり、-iオプションで実行間隔を制限したり、-sオプションでパケットサイズを制限するとよいだろう。
コメント