図5 結果表示にはいろいろなものがある<BR>pingの結果表示では「Reply from…」と「Request timed out.」がよく表示されるが,それ以外の場合もある。そうした結果の意味を理解すれば,トラブル原因などを見つけるのが早まる。
図5 結果表示にはいろいろなものがある<BR>pingの結果表示では「Reply from…」と「Request timed out.」がよく表示されるが,それ以外の場合もある。そうした結果の意味を理解すれば,トラブル原因などを見つけるのが早まる。
[画像のクリックで拡大表示]

結果表示の違いを押さえよう

 使い方はこれだけだ。あとは,実行結果をどう読み解くか。むしろ,こちらの方が重要なくらいだ。

 よく見るのは,最初にも紹介した「Reply from ・・・」と「Request timed out.」の2種類。前者が表示されれば,相手までの経路と相手の機器は正常に動作している。後者なら,経路か機器に不具合がありそうだとわかる。

 ただ実行結果の表示は,この2種類だけではない。ほか4種類を合わせ計6種類ある(図5[拡大表示])。例えば,「Reply from XXX:Destination net unreachable.」という表示(c-1)。これは,相手の機器がつながるネットワークに到達できないという意味だ。XXXの部分は途中のルーターのIPアドレスで,このルーターがpingコマンドを実行したパソコンにエラーを返したわけだ。したがって,XXXのルーターまではパケットが届き,ルーターがpingパケットを転送できなかったことがわかる。

 これと似た表示で「Reply from XXX:Destination host unreachable.」と表示されることもある(c-2)。こちらは,相手の機器がつながるネットワークには到達できるが,該当する機器につながらないという意味。XXXのルーターからエラーが返ってきたときに表示される。

 また,「Reply from XXX:Packet needs to be fragmented but DF set.」という表示が出ることもある(c-3)。これは,パケットを分割しないと先に転送できないが,パケットの分割が禁止されているという意味。例えば,イーサネットにつながったパソコンで

ping -f -l 2000 調査対象の機器

と実行すると,このようなエラーが表示されるだろう。これは,パケットを分割せずに(-fオプション),2000バイトのデータを入れたパケット*(-lオプション)を送信せよという意味だ。しかし,パソコンがつながるイーサネットは最大でも1500バイトのIPパケットしかやりとりできない。このため,パソコンはpingパケットを送出できず,エラーを表示したわけだ。

 このほか,「Reply from XXX:TTL expired in transit.」という表示もある(c-4)。こちらは,パケットの寿命(TTL*)が尽きたため,XXXのルーターが先にパケットを転送できなかったときに表示される。標準では最大の255が設定されるが,-iオプションでTTL値を小さく指定すると,このようなエラーが出ることがある。

 c-1からc-4までのエラー表示は,経路途中のルーターなどがエラー・メッセージを返してきたときに出る。しかし,中にはパケットを転送できなくても,送信元にエラーを返信しないルーターもある。特にインターネットの中核にあるバックボーン・ルーターの多くは,大量のパケットを高速に転送することに注力しているので,エラーを返さない場合が多い。こうしたルーターがパケットを捨てたときは,pingコマンドの結果は「Request timed out.」という表示しか出ない。