Guest

IP : IP ルーティング

拡張 ping および拡張 traceroute コマンドの使用方法

ライター翻訳版 - December 10, 2003
Document ID: 13730
ダウンロード: PDF

目次

概要
はじめに
     表記法
     前提条件
     使用するコンポーネント
ping コマンド
     拡張 ping コマンド
     ping コマンドのフィールドの説明
     traceroute コマンド
     拡張 traceroute コマンド
     traceroute コマンドのフィールドの説明
関連情報

概要

この文書では、拡張 ping コマンドと拡張 traceroute コマンドの使用法を説明します。 標準の ping コマンドと traceroute コマンドについては、次の文書で幅広く説明されています。

はじめに

表記法

文書表記の詳細については、「シスコ テクニカル ティップスの表記法」を参照してください。

前提条件

この文書を読むには、ping コマンドと traceroute コマンドを理解している必要があります。これらのコマンドは、概要で提供されているリンクで詳細に説明されています。

使用するコンポーネント

この文書の情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

  • Cisco IOS(R) ソフトウェア リリース 12.2(10b)

  • すべての Cisco シリーズ ルータ

ping コマンド

ping(Packet InterNet Groper)コマンドは、デバイスのアクセス可能性のトラブルシューティングに非常によく使用される方法です。 これは、2 つの Internet Control Message Protocol(ICMP; インターネット制御メッセージ プロトコル)クエリー メッセージ、ICMP エコー要求、および ICMP エコー応答を使用して、リモート ホストがアクティブであるかどうかを判断します。 ping コマンドは、エコー応答を受信するまでにかかる時間も測定します。

ping コマンドは、最初に 1 つのアドレスに対してエコー要求パケットを送信し、応答を待機します。 ping は、エコー要求が宛先に到達し、宛先が事前に定義された時間内に ping の送信元にエコー応答を返送できる場合にのみ成功します。

拡張 ping コマンド

通常の ping コマンドがルータから送信される場合、ping の送信元アドレスは、パケットがルータを離れる際に使用するインターフェイスの IP アドレスになります。 拡張 ping コマンドを使用すると、送信元 IP アドレスはルータ上の任意の IP アドレスに変更できます。 拡張 ping は、ホストの到達可能性とネットワークの接続性に対してより高度なチェックを実行するために使用されます。 拡張 ping コマンドは、特権 EXEC コマンドラインでのみ動作します。 通常の ping は、ユーザ EXEC モードと特権 EXEC モードの両方で動作します。 この機能を使用するには、コマンドラインで ping と入力して、Return キーを押します。 次の項で説明されるようなフィールドへの入力を要求されます。

ping コマンドのフィールドの説明

次の表に、ping コマンドのフィールドの説明をリストします。 次の表で示されるように、これらのフィールドは拡張 ping コマンドを使用して変更できます。

フィールド

説明

Protocol [ip]:

サポートされているプロトコルを入力するよう要求されます。 appletalk、clns、ip、novell、apollo、vines、decnet、または xns を入力します。 デフォルト: ip。

Target IP address:

ping しようとしている宛先ノードの IP アドレスまたはホスト名を入力するよう要求されます。 サポートされているプロトコルに IP 以外を指定した場合は、ここにはそのプロトコルに適したアドレスを入力します。デフォルト: なし。

Repeat count [5]:

宛先アドレスに送信される ping パケットの数。デフォルト: 5.

Datagram size [100]:

ping パケットのサイズ(バイト単位)。デフォルト: 100 バイト。

Timeout in seconds [2]:

タイムアウト間隔。デフォルト: 2(秒)。 ping は、この時間間隔以内にエコー応答パケットが受信された場合にのみ成功したと見なされます。

Extended commands [n]:

一連の追加コマンドを表示するかどうかを指定します。デフォルト: no。

Source address or interface:

プローブの送信元アドレスとして使用するルータのインターフェイスまたは IP アドレス。 ルータは、通常、使用する発信インターフェイスの IP アドレスを選択します。 インターフェイスも記述できますが、次に示すような正しい構文を使用します。

Source address or interface: ethernet 0 

注: 上記の例は、拡張 ping コマンドの出力の一部です。 インターフェイスは、e0 とは記述できません。

Type of service [0]:

Type of Service(ToS)を指定します。 要求された ToS が各プローブに配置されますが、すべてのルータが ToS を処理するとは限りません。 これはインターネット サービスの品質しだいです。デフォルト: 0.

Set DF bit in IP header? [no]:

ping パケットに Don't Fragment(DF; フラグメントなし)ビットを設定するかどうかを指定します。 yes を指定した場合、フラグメントなしオプションにより、このパケットは Maximum Transmission Unitit(MTU; 最大伝送ユニット)の小さいセグメントを通過する必要がある場合にフラグメント化されず、デバイスからパケットをフラグメント化する必要があるというエラー メッセージを受信します。 これは、宛先までのパスでの最小の MTU を判断するのに役立ちます。デフォルト: no。

Validate reply data? [no]:

応答データを検証するかどうかを指定します。デフォルト: no。

Data pattern [0xABCD]

データ パターンを指定します。 シリアル回線でのフレーミング エラーやクロッキングの問題のトラブルシューティングに、さまざまなデータ パターンが使用されます。 Default :[0xABCD]

Loose, Strict, Record, Timestamp, Verbose[none]:

IP ヘッダー オプション。 このプロンプトでは、選択オプションが複数提供されます。 次のオプションがあります。

  • Verbose - その他のオプションとともに自動的に選択されます。

  • Record - パケットが通過するホップ(最大 9 個)のアドレスを表示するため、非常に有用なオプションです。

  • Loose - パケットを通過させるホップのアドレスを指定することにより、パスに影響を与えることができます。

  • Strict - パケットを通過させるホップを指定し、その他のホップは通過できないようにすることを指定します。

  • Timestamp - 特定のホストまでのラウンドトリップ時間を測定するために使用します。

このコマンドの Record オプションを使用する場合と traceroute コマンドを使用する場合の違いは、このコマンドの Record オプションでは宛先に到達するまでにエコー要求(ping)が通過するホップが表示されるだけでなく、リターン パスで通過するホップも表示される点です。 traceroute コマンドを使用すると、エコー応答がとるパスに関する情報は取得されません。traceroute コマンドを入力すると、必要なフィールドを入力するようプロンプトが表示されます。 traceroute コマンドは要求されたオプションをエコー プローブに配置しますが、すべてのルータ(またはエンド ノード)がそれらのオプションを処理するとは限らないことに注意してください。デフォルト: なし。

Sweep range of sizes [n]:

送信されるエコー パケットのサイズを変更できます。 これは、宛先アドレスまでのパスに沿ったノード上で設定されている MTU の最小サイズを判断するために使用されます。 このようにして、パケットのフラグメント化によって発生するパフォーマンス上の問題が減らされます。デフォルト: no。

!!!!!

各感嘆符(!)は、応答の受信を示します。 ピリオド(.)は、ネットワーク サーバが応答を待機中にタイムアウトしたことを示します。 その他の文字の説明は、「ping および traceroute コマンドについて」を参照してください。

Success rate is 100 percent

ルータに正常にエコー バックされたパケットのパーセンテージ。 80 % 未満は、通常は問題があると見なされます。

round-trip min/avg/max = 1/2/4 ms

プロトコルのエコー パケット用のラウンドトリップ時間の間隔で、最小/平均/最大(ミリ秒単位)を含みます。

次の図では、ホスト 1 とホスト 2 は互いに ping できません。 ルータ上で、ルーティングの問題があるのか、2 台のホストのうちの 1 台のデフォルト ゲートウェイの設定が正しくないのかを判断して、この問題に対処できます。

ext_ping_trace-01.gif

ホスト 1 からホスト 2 への ping が成功するには、各ホストがそれぞれの LAN セグメント上のルータに対するデフォルト ゲートウェイを指しているか、ホストがルーティング プロトコルを使用してルータとネットワーク情報を交換する必要があります。 ホストのデフォルト ゲートウェイの設定が正しくない場合や、ルーティング テーブルに正しいルートがない場合、Address Resolution Protocol(ARP; アドレス解決プロトコル)キャッシュにない宛先には、パケットを送信できません。 ルータのうちの 1 台が、ホストの ping パケットの送信元となるサブネットへのルートを持たないために、ホストが相互に ping できない可能性もあります。

次に、送信元がルータ A のイーサネット 0 インターフェイスで宛先がルータ B のイーサネット インターフェイスである拡張 ping コマンドの例を示します。 この ping が成功する場合、ルーティング上の問題がないことを示します。 ルータ A はルータ B のイーサネットへの到達方法を認識し、ルータ B はルータ A のイーサネットへの到達方法を認識しています。さらに、両方のホストではそれぞれデフォルト ゲートウェイが正しく設定されています。

ルータ A からの拡張 ping コマンドが失敗する場合、ルーティング上の問題があることを意味します。 3 台のルータのいずれかにルーティング上の問題がある可能性があります。 ルータ A がルータ B のイーサネットのサブネットまたはルータ C とルータ B の間のサブネットへのルートを喪失している、ルータ B がルータ A のサブネットまたはルータ C とルータ A の間のサブネットへのルートを喪失している、ルータ C がルータ A またはルータ B のイーサネット セグメントのサブネットへのルートを喪失している、という可能性があります。 ルーティングの問題を修正した後で、ホスト 1 がホスト 2 への ping を試みる必要があります。ホスト 1 がまだホスト 2 に ping できない場合は、両方のホストのデフォルト ゲートウェイをチェックしてください。 ルータ A のイーサネットとルータ B のイーサネットの間の接続は、次に説明するように拡張 ping コマンドを使用してチェックします。

ルータ A からルータ B のイーサネット インターフェイスへの通常の ping では、ping パケットの送信元アドレスは、発信インターフェイスのアドレス、つまりシリアル 0 インターフェイスのアドレス(172.31.20.1)になります。 ルータ B が ping パケットに応答するとき、送信元アドレス(つまり、172.31.20.1)に応答します。 このように、ルータ A のシリアル 0 インターフェイス(172.31.20.1)とルータ B のイーサネット インターフェイス(192.168.40.1)の間の接続だけがテストされます。

ルータ A のイーサネット 0(172.16.23.2)とルータ B のイーサネット 0(192.168.40.1)の間の接続をテストするには、拡張 ping コマンドを使用します。 拡張 ping コマンドでは、次に示すように ping パケットの送信元アドレスを指定するオプションがあります。

Router A>enable
   Router A#ping
   Protocol [ip]:
   Target IP address: 192.168.40.1
   
   !--- ping するアドレス。
   
   Repeat count [5]:
   Datagram size [100]:
   Timeout in seconds [2]:
   Extended commands [n]: y
   Source address or interface: 172.16.23.2 
   
   !---ping パケットの送信元は、このアドレスになります。
   
   Type of service [0]:
   Set DF bit in IP header? [no]:
   Validate reply data? [no]:
   Data pattern [0xABCD]:
   Loose, Strict, Record, Timestamp, Verbose[none]:
   Sweep range of sizes [n]:
   Type escape sequence to abort.
   Sending 5, 100-byte ICMP Echos to 162.108.21.8, timeout is 2 seconds:
   !!!!!
   Success rate is 100 percent (5/5), round-trip min/avg/max = 36/97/132 ms  
   
   !--- ping は正常に実行されました。
   
   Router A#

このように、上記の拡張 ping コマンドは、2 つの IP アドレス 172.16.23.2 と 192.168.40.1 の間の IP 接続を検証します。

traceroute コマンド

ping を使用してデバイス間の接続を検査できる場合は、traceroute コマンドを使用して、リモートの宛先までにパケットが通過するパスや、ルーティングに障害がある場所を検出できます。

traceroute コマンドの目的は、各 ICMP「time exceeded」メッセージの送信元を記録して、パケットが宛先に到達するまでにとるパスのトレースを提供することです。

traceroute コマンドを実行するデバイスは、一連の User Datagram Protocol(UDP; ユーザ データグラム プロトコル)データグラムを、それぞれ Time-To-Live(TTL; 存続可能時間)値を増やしながら、リモート ホストの無効なポートアドレス(デフォルトは 33434)に送信します。

最初に、3 つのデータグラムが、それぞれ TTL フィールドの値を 1 に設定されて送信されます。TTL 値 1 により、データグラムはパス内の最初のルータに到達すると同時に「タイムアウト」になります。このルータは、データグラムが時間切れになったことを示す ICMP「time exceeded」メッセージで応答します。

次に、3 つの UDP メッセージが、それぞれ TTL 値 2 で送信されます。これにより、宛先までのパス内の 2 番目のルータが ICMP「time exceeded」メッセージを返します。

この処理は、パケットが宛先に到達し traceroute の送信元のシステムが宛先までのパスのすべてのルータから ICMP「time exceeded」メッセージを受信するまで続行されます。 これらのデータグラムは宛先ホストで無効なポート(デフォルトで 33434)にアクセスしようとするため、ホストは到達不能ポートを示す ICMP「port unreachable」メッセージで応答します。 このイベントにより、traceroute プログラムは終了するよう通知されます。

拡張 traceroute コマンド

拡張 traceroute コマンドは、traceroute コマンドのバリエーションです。 拡張 traceroute コマンドは、パケットが宛先までにとるパスを表示するために使用できます。 同時に、このコマンドは、ルーティングをチェックするためにも使用できます。 これは、ルーティング ループのトラブルシューティングや、パケットの喪失した場所(ルートを喪失した場合、またはパケットが Access Control List(ACL; アクセス コントロール リスト)またはファイアウォールによってブロックされている場合)を判断するのに役立ちます。 拡張 ping コマンドを使用して接続上の問題の種類を判断した後、拡張 traceroute コマンドを使用して問題の発生源を絞り込むことができます。

「time exceeded」エラー メッセージは、中継通信サーバがパケットを確認して破棄したことを示します。 「destination unreachable」エラー メッセージは、宛先ノードがプローブを受信して、パケットを配信できないためにそれを破棄したことを示します。 応答が受信される前にタイマーがオフになった場合、trace はアスタリスク(*)を表示します。 このコマンドは、次のいずれかが発生した場合に終了します。

  • 宛先が応答した場合

  • 最大 TTL を超えた場合

  • ユーザがエスケープ シーケンスによりトレースを中断した場合

    注: エスケープ シーケンスは、Ctrl、Shift および 6 キーを同時に押すことで起動できます。

traceroute コマンドのフィールドの説明

次の表に、traceroute コマンドのフィールドの説明をリストします。

フィールド

説明

Protocol [ip]:

サポートされているプロトコルを入力するよう要求されます。 appletalk、clns、ip、novell、apollo、vines、decnet、または xns を入力します。 デフォルト: ip。

Target IP addres

ホスト名または IP アドレスを入力する必要があります。 デフォルトはありません。

Source address:

プローブの送信元アドレスとして使用するルータのインターフェイスまたは IP アドレス。 ルータは、通常、使用する発信インターフェイスの IP アドレスを選択します。

Numeric display [n]:

デフォルトでは、シンボルと数値の両方が表示されます。ただし、シンボルは非表示にできます。

Timeout in seconds [3]:

プローブ パケットへの応答を待機する時間(秒数)。 デフォルトは、3 秒です。

Probe count [3]:

各 TTL レベルで送信されるプローブの数。 デフォルトの個数は 3 です。

Minimum Time to Live [1]:

最初のプローブの TTL 値。 デフォルトは 1 ですが、大きい値に設定して、既知のホップを非表示にできます。

Maximum Time to Live [30]:

使用可能な最大 TTL 値。 デフォルトは 30 です。traceroute コマンドは、宛先に到達するか、この値に達したときに終了します。

Port Number [33434]:

UDP プローブ メッセージによって使用される宛先ポート。デフォルトは 33434 です。

Loose, Strict, Record, Timestamp, Verbose[none]:

IP ヘッダー オプション。 任意の組み合わせを指定できます。 traceroute コマンドを入力すると、必要なフィールドを入力するようプロンプトが表示されます。 traceroute コマンドは要求されたオプションを各プローブに配置しますが、すべてのルータ(またはエンド ノード)がそれらのオプションを処理するとは限らないことに注意してください。

Router A>enable
   Router A#traceroute
   Protocol [ip]:
   Target IP address: 192.168.40.2   
   
   !--- パスがトレースされるアドレスです。
   
   Source address: 172.16.23.2
   Numeric display [n]:
   Timeout in seconds [3]:
   Probe count [3]:
   Minimum Time to Live [1]:
   Maximum Time to Live [30]:
   Port Number [33434]:
   Loose, Strict, Record, Timestamp, Verbose[none]:
   Type escape sequence to abort.
   Tracing the route to 192.168.40.2
     1 172.31.20.2 16 msec 16 msec 16 msec
     2 172.20.10.2 28 msec 28 msec 32 msec
     3 192.168.40.2 32 msec 28 msec *   
   
   !--- traceroute は正常に実行されました。
   
   Router A#
   

注: 拡張 traceroute コマンドは、特権 EXEC モードでしか実行できません。通常の traceroute コマンドは、ユーザ EXEC モードと特権 EXEC モードの両方で動作します。


関連情報