対象試験と出題頻度
traceroute(トレースルート)は、基本情報技術者・応用情報技術者で出題されるネットワーク分野のテーマです。
午前問題ではpingやarpなど他のネットワークコマンドとの区別が問われ、午後問題ではネットワーク障害調査のシナリオの中でtracerouteの実行結果を読み解く形式で出題されています。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
用語の定義
情報処理試験を勉強していると、「tracerouteってpingと何が違うの?」と混乱しがちです。
traceroute(トレースルート)とは、一言で言うと
「宛先ホストまでの通信経路上にあるルータを順番に一覧表示するコマンド」
のことです。
イメージとしては、「宅配便の追跡サービス」です。
荷物(パケット)が届かないとき、「どこの中継拠点(ルータ)まで届いているか」を追跡画面で確認できます。tracerouteは、ネットワーク上の荷物がどの中継地点を通過しているかを1ホップずつ表示してくれる追跡機能にあたります。
📊 tracerouteの基本情報
| 項目 | 内容 |
|---|---|
| コマンド名 | traceroute(Linux/macOS)/ tracert(Windows) |
| 利用する仕組み | IPヘッダのTTL+ICMPの「Time Exceeded」メッセージ |
| 主な用途 | 宛先までの通過ルータの特定・障害箇所の切り分け |
| 動作する階層 | ネットワーク層(OSI参照モデル 第3層) |
解説
pingで「宛先に到達できない」と分かったとき、次に知りたいのは「どこで止まっているのか」です。
ネットワーク上のパケットは複数のルータを中継して宛先に届きますが、途中のどのルータで通信が途絶えているかをpingだけで特定することはできません。
この「障害箇所の特定」を可能にするのがtracerouteです。
▶ tracerouteの仕組み ― TTLとICMP Time Exceededの連携(クリックで展開)
IPヘッダには「TTL(Time To Live)」というフィールドがあります。
TTLはパケットの寿命を示す数値で、ルータを1つ通過するたびに1ずつ減算されます。TTLが0になるとルータはそのパケットを破棄し、送信元に対してICMPの「Time Exceeded(時間超過)」メッセージを返送します。
tracerouteはこの仕組みを巧みに利用します。
(1)まず、TTLを1に設定したパケットを送信する。最初のルータがTTLを0にして破棄し、Time Exceededメッセージを返す → 1番目のルータのIPアドレスが判明する
(2)次に、TTLを2に設定したパケットを送信する。1番目のルータを通過し、2番目のルータでTTLが0になる → 2番目のルータのIPアドレスが判明する
(3)この処理をTTLを1ずつ増やしながら繰り返す。宛先ホストに到達すると「Echo Reply」または「Port Unreachable」が返り、経路の全貌が確定する
この一連の動作により、送信元から宛先までの全経路が1ホップずつ可視化されます。
▶ コマンド例 ― 実際のtracerouteの使い方(クリックで展開)
Windowsのコマンドプロンプトでは「tracert」、Linux/macOSのターミナルでは「traceroute」を使います。
C:\> tracert 203.0.113.50 203.0.113.50 へのルートをトレースしています。経由するホップ数は最大 30 です: 1 1 ms 1 ms 1 ms 192.168.1.1 2 5 ms 4 ms 5 ms 10.0.0.1 3 12 ms 11 ms 12 ms 172.16.0.1 4 15 ms 14 ms 15 ms 203.0.113.50 トレースを完了しました。
左端の数字がホップ数(何番目のルータか)、中央の3つの数値が各プローブの応答時間(RTT)、右端がそのルータのIPアドレスです。
「* * *」(アスタリスク3つ)が表示された行は、そのルータが応答を返さなかったことを意味します。ファイアウォールでICMPを遮断しているケースもあるため、必ずしも障害とは限りません。
Linux/macOSでは以下のように実行します。
$ traceroute 203.0.113.50
出力形式はほぼ同じですが、Linux版のtracerouteは既定でUDPパケットを使用する点がWindows版(ICMP使用)と異なります。
試験ではこの違いまで問われることはないので、「経路上のルータを表示するコマンド」と理解しておけば十分です。
pingとの使い分け
ここだけは確実に押さえてください。pingとtracerouteは目的が異なります。
| コマンド | 確認できること | 使いどころ |
|---|---|---|
| ping | 宛先に到達できるか(疎通の有無) | 障害の有無を最初に確認する「スクリーニング検査」 |
| traceroute | 宛先までの経路(通過ルータの一覧) | 障害箇所を特定する「精密検査」 |
まずpingで疎通の有無を確認し、到達できない場合にtracerouteで「どのルータの時点で止まっているか」を調べるのが実務の定石です。
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 tracerouteの核心を3行で
・TTLを1ずつ増やしたパケットを送信し、各ルータからのICMP Time Exceededで経路を特定するコマンド
・Windowsでは「tracert」、Linux/macOSでは「traceroute」というコマンド名
・pingは「到達できるか」、tracerouteは「どこを通っているか」を調べる
試験ではこう出る!
tracerouteは、午前問題と午後問題で出題形式が大きく異なります。
午前問題ではネットワークコマンドやICMPの知識問題として、午後問題ではネットワーク障害調査のシナリオ中にtracerouteの実行結果が登場し、障害箇所を推定させる記述問題として出題されます。
📊 過去問での出題実績(クリックして表示)
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| AP R6秋 午前 問34 |
IPv4ネットワークにおけるICMPの機能を選ぶ問題。tracerouteの基盤であるICMPのエラー通知機能が正解。 | ・ICMPの役割=IPパケットの送信エラー報告 ・RARP、NAT、DHCPとの区別 |
| AP H25秋 午後 問4 |
ネットワーク障害調査の文脈でtracerouteコマンドの実行結果が示され、障害原因の設定項目を推定させる問題。 | ・tracerouteの実行結果の読み方 ・タイムアウトの行から障害箇所を絞り込む力 |
| AP H29春 午前 問32 |
pingが用いるプロトコルを選ぶ問題。選択肢にSNMPが紛れ込む構成で、ICMPを正解に導く。 | ・ping/tracerouteの共通基盤=ICMP ・SNMPとの混同がひっかけ |
📝 IPA試験での出題パターン
パターン1(午前):「ICMPの機能を選べ」「ネットワークコマンドの役割を選べ」
ping、arp、ipconfig、nslookupなどと並べて「経路調査に使うコマンドはどれか」を問う、または「ICMPの機能として適切なものはどれか」を問う形式。キーワードは「経路」「通過するルータ」「TTL」。
パターン2(午後):「tracerouteの実行結果を読み、障害箇所を答えよ」
AP H25秋 午後問4のように、ネットワーク構成図とtracerouteの出力が提示され、どの機器の設定に問題があるかを記述させる形式。出力のどの行でタイムアウト(* * *)になっているかがヒントになる。
午前対策は「traceroute=経路上のルータを表示」「ICMPのTime Exceededを利用」の2点で十分です。午後対策では、出力結果の各行が何ホップ目のどのルータかを構成図と突き合わせる読解力が求められます。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. ネットワークコマンド「traceroute」の説明として、最も適切なものはどれでしょうか?
- A. IPヘッダのTTLを1ずつ増やしたパケットを送信し、各ルータからのICMP Time Exceededメッセージによって宛先までの経路上のルータを一覧表示するコマンドである。
- B. ICMPのEcho RequestとEcho Replyを利用して、宛先ホストまでのネットワーク疎通を確認するコマンドである。
- C. IPアドレスとMACアドレスの対応関係を管理するARPテーブルを表示・操作するコマンドである。
正解と解説を見る
正解:A
解説:
tracerouteは、TTLを段階的に増やしたパケットを送信し、各ルータから返されるICMP Time Exceededメッセージを手がかりに経路上のルータを1ホップずつ特定するコマンドです。
選択肢Bはpingの説明です。pingはEcho Request / Echo Replyで疎通の有無を確認するコマンドであり、通過ルータの一覧を表示する機能はありません。選択肢Cはarpコマンドの説明です。arpはIPアドレスとMACアドレスの対応テーブルを操作するコマンドであり、経路調査の機能はありません。
よくある質問(FAQ)
Q. tracerouteで「* * *」と表示される行がありますが、障害ですか?
必ずしも障害ではありません。ルータやファイアウォールの設定でICMPのTime Exceededメッセージを返さないようにしているケースがあります。次のホップ以降で正常にIPアドレスが表示されていれば、その「* * *」の行は応答を返さなかっただけで経路自体は問題ないと判断できます。最終行まで全て「* * *」の場合は、途中のルータまたは宛先ホストに到達できていない可能性が高いです。
Q. Windowsの「tracert」とLinuxの「traceroute」は同じものですか?
機能はほぼ同じですが、既定で使用するプロトコルが異なります。Windows版のtracertはICMPのEcho Requestを使用するのに対し、Linux/macOS版のtracerouteは既定でUDPパケットを使用します。ただし、Linuxでも「traceroute -I」オプションを付ければICMPモードに切り替えられます。IPA試験ではこの差まで問われることはないので、深追いは不要です。
Q. tracerouteの結果に表示される応答時間(ms)が途中で急に大きくなるのはなぜですか?
主に2つの原因が考えられます。1つ目は、そのホップ間の物理的な距離が長い場合です。国内のルータから海外のルータに中継される際に遅延が大きくなるのは正常な動作です。2つ目は、該当ルータに高負荷がかかっている場合です。特定のホップだけ極端に遅延が大きい場合は、そのルータの処理能力がボトルネックになっている可能性があります。
Q. 応用情報の午後問題でtracerouteの出力結果を読む問題が出た場合、どこに注目すべきですか?
注目すべきは「どの行からタイムアウト(* * *)になっているか」です。正常に応答を返した最後のルータまではパケットが届いている、という事実が障害切り分けの出発点になります。あとは問題文のネットワーク構成図と照らし合わせ、タイムアウトが始まったルータの次にある機器(ルータまたは宛先ホスト)の設定に原因があると推定してください。AP H25秋 午後問4はまさにこのパターンでした。