【Windowsコマンド】tracertでネットワーク経路を表示させる

Windowsには標準コマンドとして、ネットワーク経路を調査するコマンドが存在します。この記事では、あるホストから通信相手までの経路を調べるためのコマンド「tracert」について説明しています。
1. tracertの概要
「tracert」は「trace route」を省略したコマンド名であり、「トレースルート」と読みます。このtracertコマンドは、文字通りルート(経路)をトレース(追跡する)ために使用するコマンドです。ここでいう経路とは、ネットワーク経路のことを示しており、あるホストから特定クライアントや特定サーバなどの指定ホストまでの経路をいいます。通信経路にはルータが存在するため、このtracertを使用することで、通信相手までのルータの一覧を表示することが可能となります。
※tracertはWindows標準のコマンドとして機能するものであり、MacやLinuxではコマンド名が「traceroute」となるため注意しましょう。
2. tracertの構文
tracertの構文は以下のとおりです。
使用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
構文やオプション部分が分からなくなったときは、コマンドプロンプトで「tracert /?」を実行すると構文が表示されます。専門のネットワークエンジニアでなければ、各オプションは覚える必要はないでしょう。
SE(システムエンジニア)であれば、
>tracert target_name 例1.) >tracert 172.16.xxx.xxx(IPアドレス) 例2.) >tracert xxx.co.jp(ドメイン名)
とだけ書ければ問題なしです。
各パラメータの内容は表のとおりです。
パラメータ | 意味 | |
-d | アドレスをホスト名に解決しません。 | |
-h maximum_hops | ターゲットを検索するときの最大ホップ数です。 | |
-j host-list | host-list で指定された緩やかなソース ルートを使用します (IPv4 のみ)。 | |
-w timeout | timeout ミリ秒間、応答を待ちます。 | |
-R | 往復のパスをトレースします (IPv6 のみ)。 | |
-S srcaddr | 使用するソース アドレスです (IPv6 のみ)。 | |
-4 | IPv4 の使用を強制します。 | |
-6 | IPv6 の使用を強制します。 | |
target_name | IPアドレスもしくはドメイン名 |
ちなみにデフォルト値だと、最大ホップ数は30、応答時間は4秒(4000ミリ秒)で設定されています。
3. tracertの使用例
tracertを使用する方法は、コマンドプロンプトから実行するだけです。コマンドプロンプトは、「Windowsキー」+「R」で「ファイル名を指定して実行ファイル」のウィンドウを開き、「cmd」と入力すれば開くことができます。

コマンドプロンプトが開けたら、tracertコマンドを入力します。
ここでは、ヤフー(ドメイン名「yahoo.co.jp」)までのルートをトレースしてみます。(例では「-w」オプションで応答時間を設定しています。)
実行結果は次のようになります。

実行結果の①、②、③はそれぞれ以下を示しています。
①経由したホップ数。 ②ルータからのICMPパケットの応答時間。 ※3回実行した結果が表示されます。したがって、各時間にばらつきがあると回線が混雑しているなど、ネットワークが不安定であることを示しています。ルータからICMPパケットが受信できない場合は、「*」が表示されます。 ③ルータのIPアドレスもしくはドメイン名。 ※ルータの応答がない場合は、「要求がタイムアウトしました。」と表示されます。実行結果にも1つありますが、ルータの応答がない場合は、「-w timeout」オプションで指定した時間内に応答がないか、ルータにICMPの設定がされていない可能性があります。また、セキュリティの観点から「tracert」に対してICMPパケットへの応答をしない設定にする機器(ルータ、ファイアウォール)も存在しますが、その先にルータが存在する場合は、そのルータより応答が返ってくることがあります(実行結果のホップ12,13)。 通信経路の途中で有効な経路がなくなった場合は、宛先へ到達できない旨のメッセージがルータより返されます。
4. tracertの仕組み
tracertは、pingと同じICPMのエコー要求/応答の仕組みで動作しており、TTL(Time To Live)と呼ばれる、パケットに付加される有効期限を用いて動作しています。TTL値と言われることが多いのですが、このTTLは次の性質を持っています。
- TTLは数字である。
- 機器を経由するごとにTTL値が「-1」され、TTL値が「0」でない場合、次の機器(ルータ)へ転送される。
- TTL値が「0」になるとICPMのtype11(時間超過:Time Exceeded)を送信元に応答し、送信元のTTL値を「+1」する。
例として、送信元である端末から3つのルータを経由して宛先のサーバまで到達するまでのTTLの図を表現すると以下になります。

①TTL=1をセットし、IPパケットを宛先(サーバ)へ送信する。
ルータ1がパケットを受け取ると、TTL値を「-1」します。すると、TTL値が「0」になるので、ICMPのType11 (時間超過:Time Exceeded)を送信元に返します。
②TTL=2をセットし、IPパケットを宛先(サーバ)へ送信する。
ルータ1がパケットを受け取ると、TTL値を「-1」し、TTL=1をルータ2に転送します。ルータ2が、TTL値を「-1」すると、TTL値が「0」になるので、ICMPのType11 (時間超過:Time Exceeded)を送信元に返します。
③TTL=3セットし、IPパケットを宛先(サーバ)へ送信する。
ルータ1がパケットを受け取ると、TTL値を「-1」し、TTL=2をルータ2に転送します。次にルータ2がパケットを受け取ると、TTL値を「-1」し、TTL=1をルータ3へ転送します。ルータ3が、TTL値を「-1」すると、TTL値は「0」になるので、ICMPのType11 (時間超過:Time Exceeded)を送信元に返します。
④最後に、TTL=4セットし、IPパケットを宛先(サーバ)へ送信する。
ルータ1がパケットを受け取ると、TTL値を「-1」し、TTL=3をルータ2に転送します。次にルータ2がパケットを受け取ると、TTL値を「-1」し、TTL=2をルータ3へ転送します。その次にルータ3がパケットを受け取ると、TTL値を「-1」し、TTL=1を宛先のサーバへ転送します。宛先に到達すると、宛先の端末は、受信するパケットに応じて、ICMPのType0(エコー応答:Echo Reply)もしくは、Type3(宛先到達不能:Port Unreachable)を送信元に返します。
参考情報
Type | 内容 | 意味 | 種類 | |
0 | Echo Reply | エコー応答 | Query | |
3 | Destination Unreachable | 宛先到達不能 | Error | |
4 | Source Quench | 始点抑制 | Error | |
5 | Redirect | 最適経路への変更指示 | Error | |
8 | Echo Request | エコー要求 | Query | |
9 | Router Advertisement | ルータ通知 | Query | |
10 | Router Solicitation | ルータ要求 | Query | |
11 | Time Exceeded | TTL超過によるパケット破棄の報告 | Error | |
12 | Parameter Problem | パケットパラメータにおけるエラー | Error | |
13 | Timestamp | タイムスタンプ | Query | |
14 | Timestamp Reply | タイムスタンプ応答 | Query | |
15 | Information Request | インフォメーション要求 | Query | |
16 | Information Reply | インフォメーション応答 | Query | |
17 | Address Mask Request | アドレスマスク要求 | Query | |
18 | Address Mask Reply | アドレスマスク応答 | Query |
まとめ
本記事では、Windowsコマンドの1つである「tracert」について説明しました。tracertは指定ホストまでのネットワーク経路上に存在するルータを表示するコマンドです。pingと同じICMPエコー要求および応答を利用している仕組みは同じですが、宛先までに存在するルータを表示する点では異なる性質を持っています。
ネットワーク経路を調査する際に活躍するコマンドの一つなので、クライアントからサーバまでの経路を調査したい場合などは「tracert」を活用してみましょう。
↓この記事を気に入っていただけた方は、ぜひ「いいね」をお願いします。
-
前の記事
【医療費控除】更正の請求で還付金を手に入れる方法 2021.05.23
-
次の記事
【バイク】公道デビューで気を付けること 2021.06.17
コメントを書く