IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

きほんの トラブルシューティング

CTC 教育サービス

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート 

第2回 ネットワークトラブルで使う超基本的なコマンドをおさらい (小澤昌樹) 2016年8月

はじめに

みなさん、こんにちは。前回より始まりました「きほんのトラブルシューティング」。前回は、サイトにアクセスできない時のトラブルシューティングとして、パブリックDNSを設定してみることを紹介しました。でも、ネットワークトラブルは、一見しただけでは問題となっている箇所を把握しづらく、原因を特定することが難しいものです。今回は、ネットワークトラブルが発生した時に最初に使うであろう、「超基本的なコマンド」をおさらいしましょう。みなさんお馴染みかと思いますが、ping と traceroute です。

ping

ネットワークのトラブルに遭遇したとき、最初に使うだろうコマンドです。相手先に到達できるか?相手先が生きているか?を簡単にテストできます。ちなみに、「ピング」や「ピン」と呼ばれていますが、筆者の周りでは「ピング」と呼んでいる人が多いようです。

pingは、TCP/IPにおける最も基本的なコマンドで、ICMP(Internet Control Message Protocol)のサブコマンドであるechoコマンドを使って、相手先に文字列を送信し、その戻りを判断することによって状況を確認するといった、単純なパケットテストプログラムです。なお、ICMPは、TCP/IPにおける補助的なプロトコルですが、TCPでもUDPでもありません。TCPやUDPと同じトランスポート層(レイヤ4)に位置するプロトコルですが、実際にユーザーが使う場面は、この ping コマンドくらいです。

ping コマンドは以下のように発行します。

`$ ping (相手先ホスト名 or IPアドレス) `

相手先に到達した場合には、以下のように結果が表示されます。

> 64 bytes from xx.xx.xx.xx

一方、以下のように結果が表示された場合は、ホスト名の名前解決に失敗しています。これは相手先というよりも、ホスト名の指定が間違っていることが多いので、確認してからもう一度、発行してみましょう。

> cannot resolve www.hoge.huga: Unknown host

また、相手先に到達しなかった場合には、以下のように表示されます。

> Request timeout for icmp_seq

この場合は、相手先までのネットワーク経路上のポイントまで ping すると問題箇所の絞り込みができます。つまり、少なくとも、localhost(127.0.0.1)とデフォルトゲートウェイに ping すると、どこまで到達しているかを把握することができます。

なお、pingで相手先に到達しなかった場合、相手先が生きていないと思ってしまうのは、早急かもしれません。設定によっては、相手先が ping を拒否していることもありますので注意しましょう。AWSもデフォルトでは ping に応答しません。

traceroute

こちらは、ネットワークの通信経路を調べるコマンドです。あるホストから別のホストまでの経路をリスト表示できます。なお、Linuxなどでは「traceroute」ですが、windowsは「tracert」です。

traceroute は、パケットヘッダに含まれるTTL(Time to Live)というフィールドの値を、1,2,3 と徐々に大きくしながらパケットを送信し、隣接したルータから「ICMP TIME EXCEEDED」という返事を受け取ることで、通信経路の確認をおこなっています。デフォルトでは、UDPプロトコルを使用しますが、オプションでTCPやICMPを使用することもできます。もし、通信経路がうまく表示できない場合は、プロトコルを変更するとうまくいくかもしれません。

traceroute コマンドは以下のように発行します。

`$ traceroute (対象のホスト名 or IPアドレス) `

TCPプロトコルを使用する場合は以下のように、-T オプションを使います。

`$ traceroute -T -p ポート番号 (対象のホスト名 or IPアドレス) `

-g オプションを使うと、経由するルーターを8個まで指定することができます。

`$ traceroute -g (ゲートウェイアドレス1), (ゲートウェイアドレス2), ... (対象のホスト名 or IPアドレス)`

-f オプションを使うと、開始するTTLの値を指定することができるので、通信経路の途中から探索することができます。

`$ traceroute -f 3 (対象のホスト名 or IPアドレス)`

なお、windowsの「tracert」では、使えるオプションが少ないです。ヘルプなどで確認して使いましょう。

まとめ

今回は「ネットワークトラブルで使う超基本的なコマンド」として、ping と traceroute をおさらいしました。

ネットワークトラブルに遭遇したとき、真っ先に使うだろう2つのコマンドですが、実は奥が深いのです。これらのコマンドの詳しい中身については、また別の機会に解き明かしたいと思います。

それでは、また!

 


 

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート