Guest

IP : IP ルーティング

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

ライター翻訳版 - July 28, 2006
機械翻訳版 - July 28, 2006
英語版 - July 28, 2006
Document ID: 13730

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
ping コマンド
      拡張 ping コマンド
      ping コマンドのフィールドの説明
      traceroute コマンド
      拡張 traceroute コマンド
      traceroute コマンドのフィールドの説明
NetPro ディスカッション フォーラム:特集対話
関連情報

概要

このドキュメントでは、拡張 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 コマンドのフィールドの説明を示します。これらのフィールドは、拡張 ping コマンドを使用して変更できます。

フィールド 説明
Protocol [ip]: サポートされているプロトコルを入力するように要求されます。appletalk、clns、ip、novell、apollo、vines、decnet、または xns を入力します。デフォルトは ip です。
Target IP address: ping しようとしている宛先ノードの IP アドレスまたはホスト名を入力するよう要求されます。サポートされているプロトコルに IP 以外を指定した場合は、ここにはそのプロトコルに適したアドレスを入力します。デフォルトは none です。
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] データ パターンを指定します。シリアル回線でのフレーミング エラーやクロッキングの問題のトラブルシューティングに、さまざまなデータ パターンが使用されます。デフォルトは [0xABCD] です。
Loose, Strict, Record, Timestamp, Verbose[none]:

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

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

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

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

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

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

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

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#

これは、拡張コマンドとスイープの詳細を含む例です。

Router A>enable
Router A#ping

Protocol [ip]:

!--- プロトコル名。


Target IP address: 192.168.40.1

!--- ping するアドレス。


Repeat count [5]: 10


!--- 宛先アドレスに送信される ping パケットの数。


Datagram size [100]:

!--- ping パケットのサイズ。デフォルトは 100 バイトです。


Timeout in seconds [2]:

!--- タイムアウト間隔。ECHO REPLY パケットがこの間隔内に受信された場合にだけ
!--- ping が成功したことになります。


Extended commands [n]: y        

!--- Loose Source Routing、Strict Source Routing、Record route、Timestamp などの
!--- 拡張コマンド オプションが必要な場合は yes を選択します。


Source address or interface: 172.16.23.2 

!--- Ping パケットの送信元はこのアドレスであり、IP アドレスか、
!--- インターフェイスのフルネームで指定する必要があります(Serial0/1 や 172.16.23.2 など)。


Type of service [0]:

!--- Type of Service(ToS)を指定します。


Set DF bit in IP header? [no]:

!--- ping パケットに Don't Fragment(DF; フラグメントなし)ビットを
!--- 設定するかどうかを指定します。


Validate reply data? [no]:

!--- 応答データを検証するかどうかを指定します。


Data pattern [0xABCD]:

!--- ping ペイロードのデータ パターンを指定します。一部の物理リンクでは
!--- データ パターンに依存する問題が発生する可能性があります。たとえば、
!--- ライン コーディングが誤って設定されているシリアル リンクなどです。
!--- テストに有用なデータ パターンには、
!--- すべて 1(0Xffff)、すべて 0(0x0000)、および
!--- 1 と 0(0xaaaa)などがあります。


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

!--- IP ヘッダー オプション。


Sweep range of sizes [n]: y

!--- 送信されるエコー パケットのサイズを変更する場合は yes を選択します。

        
Sweep min size [36]:
Sweep max size [18024]:
Sweep interval [1]:
        
Sending 179890, [36..18024]-byte ICMP Echos to 162.108.21.8, timeout is 2 seconds:


!--- カウント 179890 は最小スイープ、
!--- 最大スイープ、スイープ間隔、およびリピート回数の各値によって異なります。
!--- 計算は次の式に基づいて行われます。 

!--- 18024(範囲の上限)-36(範囲の下限)=17988(範囲内のバイト数) 
!--- 17988(範囲内のバイト数)/1(スイープ間隔)=17988(範囲内のステップ数)
!--- 17988(範囲内のバイト数)+1(最初の値)=17989(テストする値)
!--- 17989(テストする値)* 10(リピート回数)=179890(送信する ping 回数)

!--- 値を減らすには、スイープ間隔を増やすか、
!--- リピート回数を減らします。または、最小のスイープ サイズと
!--- 最大のスイープサイズの差を縮めることもできます。上の例では、
!--- 数字 17890 は予測値で、ping が 17890 回試行されます。


Packet sent with a source address of 172.16.23.2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent, round-trip min/avg/max = 1/2/4 ms



!--- ping は正常に実行されました。


Router A#

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 モードの両方で動作します。

NetPro ディスカッション フォーラム:特集対話

Networking Professionals Connection はネットワーキング プロフェッショナルが、ネットワーキングに関するソリューション、製品、およびテクノロジーについての質問、提案、情報を共有するためのフォーラムです。特集リンクでは、このテクノロジー分野での最新の対話を取り上げています。
NetPro ディスカッション フォーラム:RP に関する特集対話
サービス プロバイダー:MPLS
バーチャル プライベート ネットワーク:サービス
バーチャル プライベート ネットワーク:セキュリティ

関連情報