目次
トレースルートとは
Pingコマンドと並んでICMPを利用したエンドツーエンド通信の確認のためによく利用するコマンドがトレースルートです。トレースルートは、指定したIPアドレスまでどんなルータを経由するかという通信経路の確認を行うためのコマンドです。

トレースルートの仕組み(Cisco)
トレースルートの仕組みは、ICMP時間超過メッセージを利用して、通信経路上のルータのIPアドレスを調べます。
宛先IPアドレスを指定して、トレースルートを実行するとまずTTL=1としてIPパケットを送信します。すると、最初のルータでTTL=0となりIPパケットは破棄されます。破棄したルータはICMP時間超過メッセージを送信します。これにより、宛先までの経路上の最初のルータのIPアドレスがわかります。次にTTL=2で宛先にIPパケットを送信すると、経路上の2番目のルータからICMP時間超過メッセージが送られてきます。こうして、TTLの値を増やして、宛先IPアドレスへIPパケットを送信することで経路上のルータのIPアドレスがわかるようになります。
Ciscoの実装では、トレースルートにUDPデータグラムを利用します。宛先ポート番号を33434としてIPヘッダのTTLを徐々に増やしながら目的のIPアドレスまでの経路を確認することができます。途中の経路上のルータは、TTLが0になりパケットを破棄するとトレースルートを実行したデバイスにICMP時間超過メッセージを送信します。最終的なトレースルートの宛先では、UDPポート33434を使っていないためパケットを破棄します。そして、ICMP到達不能メッセージのPort Unreachableを送信元のデバイスに送信します。




トレースルートのコマンド(Windows)
Windows OSではコマンドプロンプトで以下のコマンドを入力すると、トレースルートを実行できます。
C:\tracert <IPアドレス または ホスト名>
以下は、GoogleのWebサーバまでのトレースルートを実行した結果の例です。

この例では、トレースルート(tracertコマンド)によって、コマンドを実行したPCからGoogleのWebサーバ(216.58.197.131)まで13台のルータを経由していることがわかります。なお、「要求がタイムアウトしました」と表示されているのは、トレースルートに応答しないように設定されているルータです。
トレースルートのコマンド(Cisco)
Cisco機器のトレースルートは次のコマンドを利用します。
#traceroute <ip-address|hostname>
Ciscoのtracerouteコマンドのサンプルは以下です。
R6#traceroute 181.1.0.1 Type escape sequence to abort. Tracing the route to 181.1.0.1 1 160.1.26.2 32 msec 36 msec 32 msec 2 160.1.12.1 36 msec 32 msec *
tracerouteコマンドの表示結果と意味は次の表のようになります。
表示結果 | 意味 |
---|---|
nn msec | 経路上の各ホストに対してのmsec単位のランドトリップ時間 |
* | プローブタイムアウト |
A | アクセスリストなどで管理上禁止されている |
Q | 送信先がビジーなため送信元抑制メッセージを受信した |
U | ポートに到達できない |
H | ホストに到達できない |
N | ネットワークに到達できない |
P | プロトコルに到達できない |
? | 不明なエラー |
拡張tracerouteコマンドで、tracerouteを行うときのパケットのパラメータを柔軟に指定することができます。IPアドレスやホスト名を指定せずにtracerouteコマンドを実行することで拡張tracerouteとなります。
以下は、拡張tracerouteコマンドの実行例です。
R2#traceroute Protocol [ip]: Target IP address: 10.3.3.3 Source address: Numeric display [n]: Timeout in seconds [3]: Probe count [3]: Minimum Time to Live [1]: Maximum Time to Live [30]: Port Number [33434]: Loose, Strict, Record, Timestamp, Verbose[none]: Type escape sequence to abort. Tracing the route to 10.3.3.3 1 192.168.23.3 20 msec * 16 msec
拡張tracerouteコマンドで指定するパラメータの概要をまとめると、次の表のようになります。
パラメータ | 概要 |
---|---|
Protocol [ip] | レイヤ3プロトコル |
Target IP address | 宛先IPアドレス |
Source address | 送信元IPアドレスまたはインタフェース |
Numeric display [n] | IPアドレスのみの表示 |
Timeout in seconds [3] | タイムアウトの秒数 |
Probe count [3] | Tracerouteで送信するプローブ(探索)パケット数 |
Minimum Time to Live [1] | TTLの最小値 |
Maximum Time to Live [30] | TTLの最大値 |
Port Number [33434] | UDPプローブパケットのポート番号 |
Loose,Strict, Record, Timestamp, Verbose [none] | IPヘッダのオプションの指定 |
この表にあるように拡張tracerouteコマンドでは、送信元IPアドレスやインタフェース、TTLの値などを指定できます。
TCP/IP
- TCP/IPの階層
- IP(Internet Protocol) ~データを送り届ける~
- ICMP ~きちんとIPで転送できますか?~
- Ping ~きちんとデータは届きますか?~
- Windows OSのPingコマンド
- トレースルート ~データはどのルータを通っていますか?~
- tracertコマンド(Windows OS)
- ICMPリダイレクト
- トラブルはどこ? ~Pingとトレースルート~
- ARP ~IPアドレスとMACアドレスを対応付け~
- ARPフォーマット
- Gratuitous ARP(GARP)
- ポート番号 ~どのアプリケーションのデータなの?
- TCPの概要
- TCPの動作
- UDPの概要
- アプリケーションのデータが届くまでのまとめ
- DNS ~宛先IPアドレスを求める~
- nslookupコマンド ~DNSの名前解決の確認~
- DHCP ~IPアドレスを自動割り当て~
- Cisco IOS DHCPサーバの設定と確認コマンド
- Ciscoルータ DHCPサーバの設定例
- DHCPリレーエージェント
- DHCPリレーエージェントの設定例[Cisco]
- TCP/IPの設定のまとめ
- ipconfigコマンド ~Windows OSのTCP/IP設定を確認~
- Linux(Ubuntu)でのTCP/IP設定の確認
- Webサイト
- HTMLとCSS ~Webページを作る~
- URL ~Webサイト(Webページ)のアドレス~
- HTTP ~HTMLファイルを転送する~
- Webアプリケーション ~Webブラウザだけあればいい~
- HTTP Cookie
- Webアプリケーションのセッション管理
- Webプロキシサーバ ~Webアクセスを代わりに~
- Webアクセスのまとめ
- 電子メール
- SMTP ~電子メール送信用プロトコル~
- POP3 ~メール受信用プロトコル~
- IMAP4 ~メールサーバ上でメールを管理~
- 電子メールのまとめ
- FTP ~代表的なファイル転送プロトコル~
- TFTP ~簡易的なファイル転送プロトコル~
- Windows10のTFTPクライアント
- ネットワークのトラブルの切り分け手順