【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

連載:ネットワーク・コマンドでトラブル解決(1)

ネットワークの疎通を確認するには?
〜ping/traceroute〜

加地眞也
2001/8/30

関連するコマンド
ping
traceroute(tracert)


 マシンのネットワーク設定を行い、外部のネットワークやサーバとつながるかどうかを確認する際など、実際にネットワーク・アプリケーションを使う前に、「ping」「traceroute(tracert)」などのコマンドを用いる方法が有効だ。

 「ping」は簡単な接続の可否をOK/NGで確認できるコマンドであり、「traceroute」は目的のホストまでの経路を順に表示する詳細な調査向けのコマンドである。エラーメッセージや経路表示から、ネットワーク接続が正常でない場合に、どこに問題がありそうか、ある程度の切り分けが可能になるわけだ。

 こうしたネットワークの疎通確認に用いるコマンド/ツールは、ICMPプロトコルの性質をうまく利用している。

ICMP(Internet Control Message Protocol)とは?

 pingやtracerouteでは一般に、ICMP(Internet Control Message Protocol : RFC792RFC1812)と呼ばれる特別なプロトコルを用いてネットワークの疎通を確認している。

 もともとICMPは、ネットワークに障害があり正常な通信が行えない場合に、経路に位置するルータやホストが送信元ホストへその障害を知らせるためのプロトコルである。そのため、エラー報告プロトコルとも呼ばれる。

 IP自体は到達信頼性の低いプロトコルだが、仮に途中でパケットが破棄されたとしても、再送などによりエラーをハンドリングすることは可能だ。しかし永続的な障害などの場合には、非常に効率が悪い結果となる。そこで、ICMPによってエラーを通知することで、復旧やエラーハンドリングの効率を上げる目的を持っている。ICMPはIP上で動作するプロトコルであり、TCPやUDPと同一階層と考えてよい。IPヘッダにおけるProtocolフィールドは1が設定される。こうした障害時通知など特殊な目的のためには、通常のTCPやUDPに比べ、より詳細な情報が通知できるように設計されている。

図1 ICMPのプロトコルフォーマット

Type
説明
意味
種類
0
Echo Reply Echo要求への返答
Query
3
Destination Unreachable 宛先到達不能
Error
4
Source Quench 軋轢発生による転送抑制指示
Error
5
Redirect より最適な経路への変更指示
Error
8
Echo Request Echo要求
Query
9
Router Advertisment ルータ通知
Query
10
Router Solicitation ルータ要求
Query
11
Time Exceeded TTLの超過によるパケットの破棄報告
Error
12
Paramter Problem パケットパラメータにおけるエラー
Error
13
Timestamp Request タイムスタンプ保持要求
Query
14
Timestamp Reply タイムスタンプ保持要求への返答。
Query
15
Information Request
(未使用)
Query
16
Information Reply
(未使用)
Query
17
AddressMask Request アドレスマスク要求。サブネット内のサブネットマスク値を要求する
Query
18
AddressMask Reply アドレスマスク要求への返答
Query
表1 Type一覧

 ICMPの種類(目的)は、Typeフィールドの性質によって「Queryメッセージ」と「Errorメッセージ」に大きく分けられる。

 「Queryメッセージ」は、pingやtracerouteなどの調査コマンドに対して返答されるメッセージだ。pingやtracerouteでは、Echo Request(Type=8)と呼ばれるTypeがリクエストとして送られる。これに対して調査対象ホストは、Echo Reply(Type=0)レスポンスを返答し、正常に稼動していることを示す。Echo Typeの組み合わせは俗に「Are you Alive」機能とも呼ばれ、「存在確認」機能を提供する。そのほか、Queryメッセージでは、レスポンスタイムを計測するために到達時刻を返答するTimestamp Request(Type=14)/Timestamp Reply(Type=14)などもよく用いられる。

 一方、「Errorメッセージ」は障害を通知するためのメッセージだ。通常のIP通信において何らかの問題が発生した場合には、経路途中のルータやホストが単独でメッセージを送信元ホストへ返答する。Destination Unreachable(Type=3)エラーの場合、Codeフィールドには以下のような障害時の詳細情報が格納されることになっている。

Code
説明
0
Network Unreachable
1
Host Unreachable
2
Protocol Unreachable
3
Port Unreachable
4
Fragmentation Needed and DF set
5
Source Route Failed
6
Destinantion Network Unknown
7
Destinantion Host Unknown
8
Source Host Isolated
9
Network Administartively Prohibited
10
Destinantion Host Administartively Prohibited
11
Network Unreachable For TOS
12
Host Unreachable For TOS
13
Communication Administratively Prohibited
14
Host Precedence Violation
15
Precedence Cutoff in Effect
表2 Code一覧

 Dataフィールドには、Echo Requestの場合は任意の文字列が埋められるが、Errorメッセージの場合ではどのパケットに対するエラーかを示すために、対応するパケットのIPヘッダが格納される。

ICMPの動作例

図2 ICMPの動作例

 図の送信元ホストAでは、パケット送信時に目的のホストが存在しているのかどうかまでは分からない(送信元ホストが把握しているルーティングは、せいぜいネットワークのサブネット単位までのため)。それを把握できるのはルータのみである。パケットがルータに到着すると、ルータはルーティングテーブルから経路を探すが、目的のホストは存在していないため、ルータがDestination Unreachable/Host Unreachable(Type=3 Code=1)を返答し、エラーを報告する。ホストYへのEcho Requestへの場合には、ホストY自身がEcho Reply(Type=0)を報告することになる。

 では実際に、このICMPを利用した、pingとtraceroute(tracert)の使い方や動作の仕組みを解説していこう。

ネットワーク・コマンド/ツール
  ping
〜ネットワークの疎通を確認する
  traceroute(tracert)
〜ネットワークの経路を調査する
 



ネットワークトラブル解決法
- 通信の疎通を確認 - TCP/UDPの状態
- 設定は正しいか? - DHCPの設定
- ルーティングの設定 - DNSの設定
- イーサネット通信確認  
ネットワークコマンド使い方
- ping - route
- traceroute - arp
- ipconfig - netstat
- ifconfig - nslookup


ツールを使ってネットワーク管理

 名前しか知らない後輩君がやってきた。彼によると、コマンドはすでに古くツールがクールだという。ならば教えてもらおうではないか

最終更新 2007/3/26

「Master of IP Network総合インデックス」

ホワイトペーパーTechTargetジャパン

Master of IP Network フォーラム 新着記事
  • どこまで出る? LTEの通信速度 (2010/3/17)
     光ファイバに匹敵する通信速度を実現すると期待されているLTE。ホントにそんなに出るの? という疑問に答えます
  • インターネット世界の地図 (2010/2/23)
     荷物の届け先まではどの道を通っていけばいいのでしょう? それを決める「経路選択」の仕組みを説明します
  • Androidアプリはビジネスになるのか (2010/2/12)
     「iPhoneアプリの次はAndroid?!」NECビッグローブのAndroidアプリ販売サイト「andronavi」を通して、その可能性に迫る
  • 知られざるLTEのネットワーク構成 (2010/1/13)
     LTEのネットワーク構成やプロトコルスタックを詳解。それぞれどんな役割を果たしているかを解説します

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  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台以上! グループ内
サーバの「統合管理」によるメリットは?