Tracertコマンドは自ホストから指定したホストまでの到達経路とその中継時間を表示してくれるコマンドでPingコマンド同様、ICMPプロトコルを利用したネットワークコマンドのひとつです。Tracertコマンドを使用すると、途中でどのようなゲートウェイを経由しているのかを調査することができ、その結果としてネットワーク障害が発生したときなどに、どこで回線障害が発生しているのかを特定しやすくなります。また、ポートスキャンなどの攻撃を受けた際にも、Tracertコマンドを利用することで、攻撃者が一体、どのような経路で自分のコンピュータまで到達したのかをある程度把握することもできるのです(尚、UNIXシステム上ではtracerouteコマンドとして実装されています)。因みに、「
無通信状態での自動切断の防止策」でも、Tracertの有用性について説明しているのでこちらも参考にしてください。
◎Tracertコマンド概要図
それでは早速、実践に移りましょう。コマンドプロンプトを起動して以下のように入力します。
|
tracert [相手先ホスト名]
または[相手先IPアドレス] |
|
◎Tracertコマンド実行結果
C:\>tracert www.plala.or.jp
↑ぷららに対してTracertコマンドを実行
Tracing route to www.plala.or.jp [210.153.0.27]
over a maximum of 30 hops:
1 40 ms <10 ms 11 ms 192.168.0.1
↑まず一番最初に、自分のルータを経由します。
2 20 ms 31 ms 30 ms 218.47.160.196
3 20 ms 30 ms 20 ms 218.47.160.194
4 30 ms 30 ms 30 ms 218.47.158.34
5 30 ms 30 ms 30 ms 61.199.133.241
6 30 ms 30 ms 30 ms 211.122.9.89
7 30 ms 30 ms 30 ms 61.207.0.25
8 30 ms 30 ms 30 ms 61.207.0.2
9 30 ms 30 ms 30 ms 211.6.0.42
10 20 ms 30 ms 30 ms 210.150.215.157
↑2~9まではホスト名への逆引きができていません(DNSによる名前解決ができていない)。
11 30 ms 30 ms 30 ms f4-1-0-n-otemachi-core4.sphere.ad.jp
[203.138.68
.203]
12 30 ms 30 ms 30 ms a3-3-kanda-core4.sphere.ad.jp
[202.239.114.61]
13 30 ms 30 ms 30 ms f4-1-0-kanda-user-core1.sphere.ad.jp
[202.239.11
4.147]
14 30 ms 30 ms 30 ms 203.138.77.105
15 30 ms 30 ms 40 ms 202.229.146.110
16 30 ms 40 ms 30 ms 202.229.63.130
17 40 ms * 30 ms 202.229.63.162
18 * * 31ms 210.153.4.188
19 31 ms 40 ms 30 ms 202.229.63.166
20 30 ms 30 ms 40 ms wwwc.plala.or.jp [210.153.0.27]
↑20ホップを経由してようやく、ぷららへと辿り着きました。ちょっと遠いですね・・・。
Trace complete.
|
上記のTracertコマンド実行結果からわかることは、ぷらら組織内にあるホストに辿り着くまでには20のネットワークを経由しているということです。ネットワークの世界ではひとつのネットワークを越える単位として
ホップ数という用語が使われます。つまり、ここではぷららに辿り着くまでに20のホップ数を経由したと言うことができます。次に、1行1行を細かく見ていきましょう。まず、2番目に経由した
|
2 20 ms 31 ms 30
ms 218.47.160.196 |
|
を例にあげてみていきます。一番左側にある「2」という数字がホップ数を表しています。次に「20 ms 31 ms 30
ms」という数字は、そのネットワークに達するまでに要した往復の時間を(ms)を表しており、1回の検証だけでは信憑性がもてないので3回分の到達時間の検証を行っています。そして、最後に表示されているのが実際にその中継点に存在したゲートウェイ(ルータなど)のIPアドレス、もしくはホスト名を表しています。
なお、17ホップ目と18ホップ目に注目して欲しいのですが、「*」(アスタリスク)が表示されている箇所がありますよね。これは、Tracertの試行が途中でタイムアウトになってしまったことを意味し、17~18ホップ目に一時的な可能性も含めて、なんらかのネットワーク障害が発生していることが見て取ることができます。
もうひとつ例を挙げてみましょう。今度はいつまで経っても最終目的地に辿り着かないケースです。以下の例は22ホップ目以降から完全にタイムアウトの状態となってしまい、最終目的地までのルートが確認できないまま、Tracertが終了してしまったケースです。この場合は、明らかに21ホップ目でなんらかの回線障害、もしくは他のところでネットワーク障害が発生していると判断することができます。
21 160 ms 171 ms 160 ms unknown.net.reach.com
[210.57.48.46]
22 * * * Request timed out.
23 * * * Request timed out.
24 * * * Request timed out.
25 * * * Request timed out.
26 * * * Request timed out.
27 * * * Request timed out.
28 * * * Request timed out.
29 * * * Request timed out.
30 * * * Request timed out.
Trace complete.
|
プロバイダ間のルーティングはほとんどの場合、
ダイナミックルーティング(回線不通等のネットワーク障害が発生しても、迂回すべき最適な別ルートを自動的(動的)に導き出すルーティング方法)によって管理されているため、自ホストから目的のホストまでの到達経路を調査したとしても必ずしも同じルートを経由するとは限りません。時間をずらして何回かTracertコマンドを実行すると、表示されるゲートウェイやホップ数に違いが生じてくることわかると思います。Tracertコマンドは応答が遅い時に、ネットワーク状況を調査するために非常に重宝するコマンドなので是非、活用するようにしましょう。
◎tracertオプション
|
-d |
名前解決を行わなくなります。 |
|
-h 最大ホップ数 |
ターゲットホストまでの最大ホップ数を指定します(Tracertのデフォルトでは30ホップに達するとそれ以上のトレースルートを行わなくなります)。 |
|
-w タイムアウト |
タイムアウトの時間をミリ秒単位(ms)で指定します。 |
|