| [Network] | ||||||||||||||||
pingでネットワーク・トラブルの原因を調査する
|
||||||||||||||||
|
||||||||||||||||
| 解説 |
pingはTCP/IPにおける最も基本的なツールであるとともに、最も有用なツールの1つでもある(本来pingは「ピン」と読むが、日本では「ピング」と読むのが一般的なようである)。さまざまな使い方があるが、一般的には、通信相手のノードが“生きて”いるかどうかを調べたり、相手ノードまでのネットワークの経路が正しく設定され、通信が行える状態になっているかどうかを確かめたりするために使われる。ここでは、ネットワーク管理者の強い味方、pingの基本的な使い方についてまとめておこう。
pingコマンドとは
pingコマンドは、ICMP(Internet Control Message Protocol)のサブコマンドであるechoコマンドを使った、単純なパケットの通信テスト・プログラムの1つだ。TCP/IPネットワークでは、IPやTCP、UDPパケットにさまざまな情報を載せてノード(ホスト)間で通信をしているが、通信中にエラーが起こった場合、ICMPプロトコルを使ってエラーを伝えることになっている。echoはICMPでサポートされている機能の1つであり、echoの引数として受け取ったデータをそのまま送信元へ送り返すという動作をする。パケットを送り返すだけという単純な機能であるが、これが動作するということは、IPアドレスが正しくノードに割り当てられ、かつ途中の経路(ルーティング情報)などが正しく設定され、動作しているということを意味している(途中で不通になっていると応答が返ってこない)。また、パケットの往復の所要時間を測定することによって、ネットワークの混雑具合を調べたりすることもできる。
pingコマンド(PING.EXEプログラム)は、このecho機能を使って、パケットの平均応答時間を測定したり、ネットワーク経路のテストをしたりするためのコマンドである。どんなマシンでも、TCP/IPのプロトコル・スタックが起動して、IPアドレスが割り当てられ、それが正しく動作していれば、このICMPのecho機能は必ずサポートされていることになっている。そのためpingはTCP/IPネットワークの管理に欠かせない必須のツールであるといえる。Windows 95以降のWindows OS(Windows 9x/Me/NT/2000/XP)は必ずこのコマンドを持っているし、UNIXやLinuxでも必ず用意されている。オプション類が若干異なることがあるが、基本的な使い方はどれでも同じなので、ぜひともマスターしておきたい。
pingコマンドの基本的な使い方
pingコマンドの最も基本的な使い方は、次のように、引数として相手ノードのIPアドレスやホスト名を指定して起動する、というものである。
ping <相手ノード> |
例えばsomedomain.co.jpというドメインにある、wwwというホストに対してpingを実行するには、
C:\>ping www.somedomain.co.jp |
とすればよい。これを実行すると、Windows OSに含まれているpingコマンドは、デフォルトでは、32bytesのデータ部(データ内容は単なるASCII文字列)を持つICMP echoパケットを4つ生成して、1秒おきに指定されたノードに対して送信する。そして、そのホストからのecho応答メッセージを受信すると、以下のように、応答を受け取るまでの所要時間や、その平均時間などの情報を表示する。
![]() |
|||||||||||||||||||||||||||||||||||||||
| pingコマンドの使用例 | |||||||||||||||||||||||||||||||||||||||
| pingコマンドは、指定されたホスト(IPアドレスか名前で指定する)に対して、ICMPのechoコマンドを送り、それが送り返されてくるのを待つ。応答があれば、相手ノードや、そこまでの経路が“生きている”ことが分かる。また、往復時間からネットワークの混雑度もある程度分かる。応答がなければ、相手ノードがダウンしているとか、途中の経路設定が正しくないなど、さまざまな問題が発生していることになる。 | |||||||||||||||||||||||||||||||||||||||
|
最後に表示されている統計値の意味は、4回パケットを送った結果、4回応答を受け取り(パケット喪失率は0%)、その応答時間は最小15ms、最大31ms、平均19msであった、という意味である。たとえLAN上であっても、最初の1回はARPコマンド要求のために若干遅くなることがある。そのため、遅延速度を(より正確に)測定したいのならば、同じpingコマンドをもう一回実行するとよい(コマンド・プロンプトでは、上矢印キーを押して直前のコマンドを呼び出し、そのままリターン・キーを押せば簡単に再実行できる)。
ネットワーク(TCP/IPプロトコル)が正しく構成されているかどうかを調べるには、このように、相手先ノードからpingの応答が戻ってくるかどうかで判断する。もちろんローカルのネットワークと比べて、インターネット上のノードの場合は応答がはるかに遅くなるだろうが(ローカルのLAN上ならば10ms以下などが普通だが、インターネットの場合は数十ms以上になる。混雑していれば1秒以上かかる場合も珍しくない)、相手側ノードがアクティブであるかどうか、そこまでのネットワーク経路が正しく“生きている”かどうかは、“Reply from”の行があるかどうかで判断することができる。ばらつきが激しいようならば、ネットワークが混雑していると判断できる。
もし相手ノードからの応答がなければ、次のようになる。
C:\>ping www.YYYYY.co.jp |
「Request timed out.」は、ICMPの応答を指定された時間内に受け取ることができなかったということを表している。ただしデフォルト待ち時間は1秒(1000ms)なので、インターネット上のノードを調べる場合は、次のように“-w 5000”などというオプションを使って(待ち時間は1/1000秒単位で指定する)、応答待ち時間をもう少し長くして調べる必要があるだろう。
C:\>ping -w 5000 www.YYYYY.co.jp……各応答を5秒待つ指定 |
パケットが戻ってこない理由にはさまざまなものが考えられるので(相手先ノードが“死んでいる”とか、経路の途中にあるいずれかのルータがパケットを正しく中継していない、ファイアウォールでpingを禁止しているなど)、その原因を突き止めるには、もう少し順序立ててpingを使う必要がある。具体的には、pingを実行するマシンに近い方のノードから順番に応答があるかどうかを調べていくのである。遠くの方のノード(あて先ノード)の側から調べるよりも、素早くトラブルの場所を特定することができる。
■pingの引数におけるIPアドレスとホスト名
ところで、pingのあて先にホスト名やFQDN名などを使う場合、その名前の指定が間違っていると次のようなエラーが表示される。
■Windows XP以外の場合 |
相手ノードから応答が戻ってこない場合とは表示が異なることに注意されたい。
「Unknown host」とは、ホスト名が見つからないということを表している。つまり「名前解決(名前からIPアドレスを求めること)」が失敗しているわけであるが、その原因はIPアドレスなどの設定が間違っているからかもしれないし、DNSやWINS、NBTの名前解決などが何らかの原因(サーバのIPアドレス設定のミスとか、経路途中のルータのフィルタでブロックされているなど)でうまく動作していないなど、さまざまな要因が考えられる。逆にいうと、その原因を簡単に特定することはできない、ということでもある。せっかくpingを使ってトラブルシューティングを行おうとしているのに、これではさらに話が面倒になるだけだ。このようなトラブルを避けるため、pingを使うときは、最初はIPアドレスであて先を指定することが基本である。
pingを使ってネットワークをチェックする
さてそれでは、pingを使ってTCP/IPのトラブルシューティングを行う場合の方法について見ていこう。例えばインターネットへのアクセスがまったくできなくなった(メールやWebサーバへアクセスできなくなった)とすると、以下のような順番でトラブルの場所(通信が不通になっている場所)を特定していくとよい。
■ハードウェア/ドライバのチェック
ネットワークがつながらないというトラブルを解決する場合、pingを使うよりも前に、まずはケーブルが正しく接続されているかどうか、ネットワークやハブのリンク・ランプが正しく点灯しているかどうか、デバイス・ドライバが正しく導入されているかどうか、などを確認しておこう。pingとはあまり関係ないので詳細は割愛するが、これらに起因するケースも意外と多いので、まずはハードウェア・レベルの動作を確認することから始めるのが望ましい。
■ping 127.0.0.1
ハードウェアが正しく動作しているようならば、次は
C:\>ping 127.0.0.1 |
というコマンドを実行して、正しく応答があることを確認する。「127.0.0.1」というIPアドレスは「ローカル・ループバック・アドレス」といい、TCP/IPプロトコル・スタックの内部にはこのIPアドレスが必ず用意されている。このアドレスは、常に自分自身(自ノード)を表すことになっているので、127.0.0.1へpingを行うということは、自分自身に対してpingを行うということになる。
もしこのコマンドの実行が失敗するようならば、TCP/IPプロトコル・スタックが正しくインストールされていないことになる。Windows 2000やWindow XP、Windows Meでは、必ずTCP/IPプロトコルがインストールされているので、このコマンドの実行が失敗することはまずないだろうが、Windows 9xではインストールされていないこともある(もっとも、TCP/IPプロトコルがインストールされていない場合は、PING.EXEコマンドすら使えないので、すぐに気が付くだろうが)。またセーフ・モードではやはりネットワークが使えないので、このような結果になる。
■ping <自ノードのIPアドレス>
ローカル・ループバック・アドレスの次にチェックするべきことは、自ノードに割り当てられているIPアドレスに対するpingの実行である。例えば、自分のPCに割り当てられている(設定しなければならない)IPアドレスが192.168.0.123である場合、
C:\>ping 192.168.0.123 |
を実行する。ただしIPアドレスをDHCPで自動に割り当てている場合は、代わりに、IPCONFIG.EXEコマンド(Windows 9xでは、WINIPCFG.EXEコマンドも利用可能)で確認してもよいだろう。DHCPでのIPアドレスの取得に失敗していると、0.0.0.0というアドレスか、APIPAで割り当てられる169.254.???.???になっているはずである。
このpingコマンドにより、自分のノードに正しくIPアドレスが割り当てられているかどうかを確認することができる。もし失敗するようならば、IPアドレスの設定方法(手動割り当てやDHCPによる割り当て方法)に問題があることが分かる。またネットワーク・ケーブルが外れているとか、正しく接続できていない場合にも(クロス・ケーブルとストレート・ケーブルを間違えたなど)、IPアドレスの割り当ては失敗するので、これらもチェックする。
■ping <LAN上のノード>
自分のノードに正しくIPアドレスが割り当てられていることが分かったら、次はいよいよほかのノードとの通信をテストしてみる。最初にpingすべき相手は、同一のLAN(同一のイーサネット)上に存在している(同じネットワーク・アドレスを持つ)ノードである。できることなら、現在稼働していることが確実で、IPアドレスが固定的に割り当てられているノード、例えば全員で共有している(Windows 2000の)ファイル・サーバやゲートウェイなどが望ましい。
これが成功するようならば、IPアドレスの割り当てが正しく行われ、ハードウェアやデバイス・ドライバ、TCP/IPプロトコル・スタックなども正しく動作しているということになる。もし失敗するようならば、デバイス・ドライバなどが正しく動作していない/インストールされていないとか、ハードウェア的なトラブルである可能性が高い。例えば、IRQの割り当てが間違っているとか(イーサネット・カードのハードウェア割り込みが間違っていても、デバイスやドライバは特に問題なく動作したりするから)、ハブのオート・ネゴシエーション(10Mbps/100Mbpsと半二重/全二重の自動切り換え)が失敗している、などが考えられる。
■ping <ルータのIPアドレス>
LAN上のノードに対してpingが成功するようならば、次はインターネットとの接続に使っているルータ(ゲートウェイ)に対してpingを実行してみる(ローカルのLAN上ではなく、ルータを介して接続されているネットワーク機器に対して実行する)。これが失敗するようなら、デフォルト・ゲートウェイのIPアドレスや(サブ)ネットマスクの設定などがおかしい(もしくは、設定するのを忘れている)ということが考えられる。また逆に、ping先の機器からの逆向きのルートの設定がどこかで間違っていても、やはり応答が戻ってこなくなる。
■ping <名前>
ここまで成功するようなら、次はIPアドレスではなく、ホスト名を指定してpingを実行してみる。<名前>としては、ローカルのLAN上にあるノード名(ドメイン名を含まないホスト名)や、FQDN形式のホスト名(社内にあるWebサーバやメール・サーバなど)など、いろいろ試してみる。これに失敗するようなら、名前解決のための設定が正しく行われていないことが分かる。ただしセキュリティ上の理由によって、外部からのpingコマンドを受け付けないようにファイアウォールなどが設定されている場合もあるので、pingコマンドが通らないからといって、必ず相手先との通信ができなくなっていると結論付けることはできない。
もし単純なホスト名(FQDN形式でないホスト名)に対するpingが失敗するようならば、WINSサーバの設定などをチェックする。Windows系OSでは、NETBIOS名による名前の登録や解決が自動的に行われるので、Windows系マシンに対するpingが失敗することはそう多くないだろう。しかしWINSとhostsファイル、lmhostsファイルで互いに異なるようなホスト定義が行われていると、名前解決の優先度の問題によって、間違ったホストにpingしてしまう可能性がある(また、NETBIOSの名前解決方法を強制的にブロードキャスト以外に設定していたりすると失敗する可能性がある)。
非Windows系マシンに対しては、hostsファイルやDNSなどで対応しなければならないので、その設定を間違えるとやはりpingできないことがある。
またFQDN形式のホスト名に対するpingが失敗するようならば、DNSサーバ・アドレスやTCP/IPのドメイン名の設定などに問題があるといえる。
■ping <インターネット上のノード>
以上のチェックがすべてパスするようなら、通信できない理由は、インターネットのサービスに接続するための(社内の)ルータやProxyサーバがダウンしているとか、プロバイダのネットワークがダウンしている、インターネット上の目的のサーバそのものがダウンしている、などが考えられる。あとはケース・バイ・ケースで、これらのホストに順次pingを実行して、不通となっている場所を特定すればよい。![]()
| 関連記事(Windows Server Insider) | ||
| Windows TIPS:tracertでネットワークの経路を調査する | ||
|
||||||||||||||||||||||||||||||||
| 更新履歴 | |
|
| 「Windows TIPS」 |
ホワイトペーパー(TechTargetジャパン)
- WindowsTIPS (2010/3/19)
− [シャットダウン]ボタンの設定を変更する
− WINSサーバをインストールする
− WINSサーバをnetshコマンドで管理する - Windows 7のファイアウォール機能 (2010/3/18)
Win 7のファイアウォールの概要解説。ルールセットを切り替えるプロファイル機能が強化され、ドメインでもVPNでも、適切なルールが自動選択される - 第212話 プリンタ用紙 (2010/3/16)
致命的なディスク・クラッシュが起きる確率は、クラッシュによってもたらされる被害の大きさに比例する… - WindowsTIPS (2010/3/12)
− 不要なアドオンを無効化してIE8の起動を高速化する
− IE8のソース表示エディタを変更する
− RRASのNATでポートマッピングを定義する
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |








