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-listhost-list で指定された緩やかなソース ルートを使用します(IPv4 のみ)。
-w timeouttimeout ミリ秒間、応答を待ちます。
-R往復のパスをトレースします (IPv6 のみ)。
-S srcaddr使用するソース アドレスです (IPv6 のみ)。
-4IPv4 の使用を強制します。
-6IPv6 の使用を強制します。