tracert・traceroute

通信確認で重要なtracert、及びtracerouteについて説明します。

tracert・tracerouteの概要

 tracert、及びtracerouteは通信相手までどのルーターを経由しているかルーターのIPアドレスを確認出来るコマンドです。Windowsで使うコマンドはtracertでコマンドプトンプトで実行出来ます。Linuxではtracerouteになります。

 tracert 通信相手、又はtraceroute 通信相手と入力する事で、通信相手までに経由するルーターで応答があったIPアドレスを順番に表示します。

【tracert実行例】
コマンドプロンプト
C:\>tracert 192.168.8.1
192.168.8.1へのルートをトレースしています
経由するホップ数は最大 30 です:

  1     1 ms     1 ms     5 ms  router_A.aaa.bbb [192.168.1.1]
  2    26 ms     8 ms     8 ms  router_B.aaa.bbb [192.168.2.1]
  3     9 ms     9 ms     9 ms  router_C.aaa.bbb [192.168.3.1]
  4     9 ms     9 ms    21 ms  router_D.aaa.bbb [192.168.4.1]
  5    17 ms    18 ms    17 ms  router_E.aaa.bbb [192.168.5.1]
  6    19 ms    18 ms    18 ms  router_F.aaa.bbb [192.168.6.1]
  7    19 ms    19 ms    19 ms  router_G.aaa.bbb [192.168.7.1]
  8    20 ms    19 ms    19 ms  server.aaa.bbb [192.168.8.1]
  
トレースを完了しました。

 相手から応答がない場合は*が表示されます。

tracert・tracerouteの動作

 tracert、及びtracerouteはパケットヘッダーのTTLを利用しています。

 TTLはパケットが永遠に回り続けないようにルーターを通る度に1引かれ、TTLが0になった時点でパケットは破棄されICMPのタイプ11であるtime exceededが返ってきます。

 tracert、及びtracerouteではパケットのTTLを最初1にして送信し、次に2にして送信と宛先IPアドレスからecho replayを受信するまで順番に繰り返し、その間に受信したtime exceededの送信元IPアドレスを表示します。

tracert1

 TTLがパケットヘッダーのどこに組み込まれているかは応用編の「パケット」をご参照下さい。

Windowsでの便利なオプション

 Windowsでtracertを実行する時の便利なオプションをご紹介します。

【Windowsのtracertオプション】
オプション 説明
-d アドレスからDNSでホスト名を解決しません。

 オプションを付けない場合、各ルーターのIPアドレスからDNSを使ってホスト名に変換するのですが、ルーターのIPアドレスをホスト名で登録していない場合が多く、DNSのタイムアウト待ちで遅くなります。tracert -d 通信相手と入力する事でホスト名に変換されないため動作が速くなります。

【tracert -d実行例】
コマンドプロンプト
C:\>tracert -d 192.168.8.1
192.168.8.1へのルートをトレースしています
経由するホップ数は最大 30 です:

  1     1 ms     1 ms     5 ms  192.168.1.1
  2    26 ms     8 ms     8 ms  192.168.2.1
  3     9 ms     9 ms     9 ms  192.168.3.1
  4     9 ms     9 ms    21 ms  192.168.4.1
  5    17 ms    18 ms    17 ms  192.168.5.1
  6    19 ms    18 ms    18 ms  192.168.6.1
  7    19 ms    19 ms    19 ms  192.168.7.1
  8    20 ms    19 ms    19 ms  192.168.8.1
  
トレースを完了しました。

Linuxでの便利なオプション

 Linuxでtraacerouteを実行する時の便利なオプションをご紹介します。

【Linuxのtracerouteオプション】
オプション 説明
-n アドレスからDNSでホスト名を解決しません。
-I UDPではなくICMP ECHOで実行する。

 -nはWindowsと同じですが、-IはLinux特有です。Windowsではtracertをpingと同じICMPのタイプ8であるecho requestを使って行いますが、LinuxではUDPを使って行います。UDPはファイアウォールで透過されていない事も多いため、この場合は-IオプションでICMPを使うようにします。

サイト関連1

トラブル対応「ICMP
  • このエントリーをはてなブックマークに追加