Ciscoルータで学ぶネットワーク > tracert / traceroute コマンド
当サイト概要CCNA・CCENT・資格書籍学習環境の準備リンクについてリンクの申込お問い合せプライバシーポリシー
◆tracert / traceroute コマンド

tracert / traceroute コマンド


 tracert/traceroute コマンドは、宛先までにたどったルートをリストとして表示するためのコマンドです。ネットワーク層をホップバイホップでテストします。

WindowsとLinuxでは、異なったメカニズムで動作します。

まずは、送信元が

●Windowsでは、ICMPの Echo Requestパケット
●LinuxではUDPパケット

のパケットを送信します。

 宛先の経路途中にある機器(ルータ)は、ICMPのType11(時間超過)で応答を返します。そして、宛先に到達すると宛先機器は、エコー応答(Echo Reply)で応答します。

Windowsの場合の tracert コマンドは、コマンドプロンプト上から実行します。使用方法は以下の通りです。

●Windowsの場合
【使用法】
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout][-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

例えば、「www.yahoo.co.jp」への tracert の実行例は、下図のようになります。


 トレースの結果は、最大で30個の経路情報を表示されます。ルータを1つ越える度に、1ホップとして数えるため、30ホップ表示されます。アスタリスク「*」が表示さる場合は、パケットが到達できなかったことを示します。

※ルータや宛先の端末では、セキュリティーを高めるためにICMPパケットをフィルタしている場合があります。その場合にも「*」が表示されます。

◆tracert コマンドのオプション

オプション 説明
-d アドレスをホスト名に解決しません。
-h maximum_hops ターゲットを検索するときの最大ホップ数です。
-j host-list host-list で指定された緩やかなソース ルートを使用する。※IPv4 のみ
-w timeout timeout ミリ秒間、応答を待ちます。
-R 往復のパスをトレースします (IPv6 のみ)。
-S srcaddr 使用するソース アドレスです (IPv6 のみ)。
-4 IPv4 の使用を強制します。
-6 IPv6 の使用を強制します。


tracert / traceroute の仕組み


ここでは、tracert / traceroute の動作・仕組みについて説明して行きます

WindowsとLinuxでは、少し異なったメカニズムで動作します。

1.送信元がTTL値をセットしたパケットを送信する。

TTL値をセットします。

はじめは、TTL=1をセットします。

次からは、TTL=2、その次は、TTL=3、その次は、・・・とTTL値を1つずつ増やして行きます。

●Windowsでは、ICMPの Echo Request パケット
●LinuxではUDPパケット

UDPパケットは、ポート番号 33434〜33499 辺りを使用する。

のパケットを送信します。

2.経路途中にある機器がTTL値を「-1」する。

途中経路にある機器(ルータ)は、TTL値を「-1」し、TTL=0 でなければ、次のルータに転送します。

3.経路途中にある機器がICMPのType11(時間超過)で応答を返す。

 経路途中の機器は、TTL=0 になった時点で、ICMPのType11(時間超過)で応答を返し、宛先にまだ到達していなければ、手順1に戻る。TTL値は、手順1に戻るたびに、「+1」される。

4.ICMP Type0のエコー応答(Echo Reply)もしくは、Type3(宛先到達不能)の「Port Unreachable」で応答を送信元に返す。

この説明を図で表すと下図のようになります。


@最初にTTL=1をセットして、IPパケットを目的の端末へ送信します。

 1つ目のルータは、パケットを受け取り、TTL値を「-1」します。すると、TTL値は「0」になるので、ICMPのType11 のエラーである時間超過(Time Exceeded)を返します。

A次にTTL=2をセットして、IPパケットを目的の端末へ送信します。

 1つ目のルータは、パケットを受け取り、TTL値を「-1」し、次のルータに転送します。2つ目のルータは、TTL値を「-1」します。すると、TTL値は「0」になるので、ICMPのType11 のエラーである時間超過(Time Exceeded)を返します。

Bその次に、TTL=3セットして、IPパケットを目的の端末へ送信します。

 1つ目のルータは、パケットを受け取り、TTL値を「-1」し、次のルータに転送します。2つ目のルータは、TTL値を「-1」し、次のルータに転送します。3つ目のルータは、TTL値を「-1」します。すると、TTL値は「0」になるので、ICMPのType11 のエラーである時間超過(Time Exceeded)を返します。

C最後に、TTL=4セットして、IPパケットを目的の端末へ送信します。

 1つ目のルータは、パケットを受け取り、TTL値を「-1」し、次のルータに転送します。2つ目のルータは、TTL値を「-1」し、次のルータに転送します。

 3つ目のルータは、TTL値を「-1」し、次のルータに転送します。このようにして、宛先の端末に到達するとすると、宛先の端末は、受信するパケットに応じて、ICMP Type0のエコー応答(Echo Reply)もしくは、Type3(宛先到達不能)の「Port Unreachable」を応答として送信元に返します。

※ルータや宛先の端末では、セキュリティーを高めるためにICMPパケットをフィルタしている場合があります。その場合には、応答が返されません。
◆Menu
◆スポンサードリンク
◆Amazon

Copyright(c)2014〜 Ciscoルータで学ぶネットワーク All rights reserved.