目次
トレースルートとは
Pingコマンドと並んでICMPを利用したエンドツーエンド通信の確認のためによく利用するコマンドがトレースルートです。トレースルートは、指定したIPアドレスまでにどんなルータを経由するかという通信経路の確認を行うためのコマンドです。
トレースルートは通信「経路」の確認と解説されることが多いです。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を送信元のデバイスに送信します。
UDPデータグラムには必ずIPヘッダが付き、IPパケットとなります。関連記事 「階層ごとのデータの呼び方」
Windowsでは、トレースルートのためにUDPデータグラムではなくICMPエコー要求メッセージを送信します。トレースルートの最終的な宛先からはICMPエコー応答メッセージが返ってきます。
トレースルートのコマンド(Windows)
Windows OSではコマンドプロンプトで以下のコマンドを入力すると、トレースルートを実行できます。
トレースルート Windows tracertコマンド
C:\tracert <IPアドレス または ホスト名>
以下は、GoogleのWebサーバまでのトレースルートを実行した結果の例です。
C:\Users\gene>tracert www.google.co.jp www.google.co.jp [216.58.220.131] へのルートをトレースしています 経由するホップ数は最大 30 です: 1 <1 ms <1 ms <1 ms 192.168.1.1 2 1 ms <1 ms <1 ms 172.31.1.1 3 5 ms 3 ms 3 ms ike-bbrt10.transix.jp [14.0.9.153] 4 5 ms 5 ms 4 ms 72.14.214.173 5 5 ms 4 ms 3 ms 142.251.233.137 6 6 ms 4 ms 4 ms 108.170.237.93 7 4 ms 3 ms 3 ms nrt20s17-in-f3.1e100.net [216.58.220.131] トレースを完了しました。
この例では、トレースルート(tracertコマンド)によって、コマンドを実行したPCからGoogleのWebサーバまで6台のルータを経由していることがわかります。
トレースルートはデフォルトで3つずつパケットを送信します。
GoogleのWebサーバのIPアドレスは記事執筆時点のものです。IPアドレスは変更される可能性があります。
トレースルートのコマンド(Cisco)
Cisco機器のトレースルートは次のコマンドを利用します。
トレースルート Cisco IOS
#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]
- DHCPサーバ配置のまとめ
- 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/11のTFTPクライアント
- ネットワークのトラブルの切り分け手順