traceroute

読み:とれーするーと / 英語表記:traceroute

宛先までの経路上にあるルータを、順番に調べるコマンド。IPv4のTTL(IPv6のホップリミット)を1から順に増やしながらパケットを送り、途中のルータから返ってくるICMPのエラーで、経由した機器を知る。

イマシルちゃんの解説

tracerouteは、宛先までの通信がどのルータを通るか調べるコマンドだよ。
IPv4では通過できるルータの数を制限するTTLを変えたパケットを送り、途中で転送が打ち切られるようにするんだ。
そのルータが返すICMPという通知用プロトコルのエラーメッセージから、どこまで届いたか分かるよ。
IPv6ではTTLに相当するホップリミットを使うの。
こうして経路と応答までの時間を調べると、通信がうまくいかない場所を探す手掛かりになるんだ。
ただし返事をしないルータもあるから、表示が抜けただけで故障とは決められないよ。

より深い解説

定義

traceroute(Windowsでは tracert、IPv6用には traceroute6 や tracert -6)は、宛先までの経路上のルータを列挙し、それぞれまでの往復時間を表示するコマンドである。

仕組み

  1. TTL(ホップリミット)を1にしたパケットを宛先に送る
  2. 1台目のルータで、TTLが0になってパケットが破棄され、ルータからICMPの時間超過(IPv6ではICMPv6 Time Exceeded)が返ってくる。その送信元アドレスが、1台目のルータのアドレスである
  3. TTLを2、3…と増やしながら同じことを繰り返す
  4. 宛先に届くと、宛先から応答(UNIXのtracerouteではUDPの宛先ポート到達不能、Windowsのtracertではエコー応答)が返り、終了する
実装送るパケット
UNIX系の tracerouteUDP(使われていない大きなポート番号宛て)
Windowsの tracertICMPのエコー要求

表示されるアドレス

時間超過のメッセージの送信元は、パケットを受信したインタフェース(または実装によって決まるインタフェース)のアドレスである。そのため、ルータのインタフェースにどのアドレスを割り当てているかで、表示が変わる。

状況結果
各インタフェースに固有のGUA(IPv6)や管理しやすいアドレスを割り当てているアドレスから、どの機器のどのインタフェースかを識別しやすい
アドレスを割り当てていない(IPv6でLLAだけ)ほかのインタフェースのアドレスで応答するなど、どの機器かが分かりにくくなる
途中の機器がICMPを返さない、遮断されているその段は「*」と表示される

IPv6でルータ間のネットワークにGUAを静的に割り当てる利点の1つは、traceroute6 で経路を調べたときに、各機器を識別しやすくなることである。

結果を読むときの注意

注意点内容
行きの経路しかわからない戻りの経路は別のことがある
負荷分散経路が複数あると、試行ごとに違うルータが表示されることがある
ICMPの扱いICMPの応答を後回しにするルータでは、表示される時間が実際の転送の遅延より長くなることがある

実際の試験ではここに出る!全1問

ネットワークスペシャリスト

午後Ⅱ

この用語が出てくる記事

↑