(最終更新月:2023年5月)
✔このような方へ向けて書かれた記事となります
「tracerouteコマンドって何ができるのだろうか?」
「tracerouteコマンドの使い方を知りたい」
「tracerouteコマンドについて、その実例が見てみたい」
✔当記事を通じてお伝えすること
- tracerouteコマンドとは?
- tracerouteコマンドの基本・書き方
- tracerouteコマンドの実例
当記事では、ネットワーク経路解析ツールであるtracerouteコマンドの基本から応用までを、具体例や実践的な使い方を交えてわかりやすく解説しています。
ぜひ最後までご覧ください。
tracerouteコマンドの基本
tracerouteコマンドの基本をご覧ください。
まずはその概要を理解することと、簡単なコマンドを打てるようになることがこの章の目的です。
- tracerouteコマンドとは?
- tracerouteコマンドの基本構文
- 結果の読み方と解析
- インストール方法
tracerouteコマンドとは?
tracerouteコマンドは、インターネット上のネットワーク経路を調べるためのコマンドです。
このコマンドを使用することで、データパケットが目的地に到達するまでに経由するルーターやネットワークデバイスの経路情報を取得できます。
以下の用途で役立つでしょう。
- ネットワークトラブルシューティング
- ネットワーク遅延の原因特定
- 経路の設定確認
通常、Unix系OSで利用されますが、Windows環境では類似の機能を持つtracertコマンドが利用されます。
tracerouteコマンドの基本構文
tracerouteコマンドは、以下の構文で使用します。
traceroute [オプション] [対象ホスト名 or IPアドレス]
例えば、Googleのウェブサーバーへの経路を調べる場合、次のように入力します。
$ traceroute itc.tokyo
traceroute to itc.tokyo (162.43.120.150), 30 hops max, 60 byte packets
1 buffalo.setup (192.168.11.1) 2.573 ms 2.480 ms 2.510 ms
2 192.0.0.1 (192.0.0.1) 6.698 ms 6.654 ms 7.191 ms
3 163.139.136.70 (163.139.136.70) 6.740 ms 6.696 ms 6.652 ms
4 163.139.92.2 (163.139.92.2) 7.013 ms 6.970 ms 6.924 ms
5 163.139.130.218 (163.139.130.218) 7.923 ms 163.139.130.222 (163.139.130.222) 7.879 ms 163.139.130.218 (163.139.130.218) 7.835 ms
6 222.230.187.206 (222.230.187.206) 14.369 ms 14.380 ms 14.285 ms
7 103.3.0.5 (103.3.0.5) 14.024 ms 14.054 ms 13.944 ms
8 103.3.0.39 (103.3.0.39) 16.496 ms 103.3.0.43 (103.3.0.43) 14.510 ms 14.554 ms
9 103.54.156.1 (103.54.156.1) 21.250 ms 21.559 ms 103.54.156.3 (103.54.156.3) 21.510 ms
10 * * *
11 * * *
結果の読み方と解析
tracerouteコマンドを実行すると、経路上の各ルーターの情報が表示されます。
出力結果は、次のような形式で表示されます。
1 router1.example.com (192.0.2.1) 10 ms 10 ms 10 ms
2 router2.example.com (198.51.100.1) 20 ms 20 ms 20 ms
各行は、経由するルーターの情報を示しており、左から順に以下のとおりとなります。
- ホップ数(経由するルーターの順番)
- ホスト名
- IPアドレス
- 応答時間(3回分)
応答時間が長い場合や、応答がない場合(`*`が表示される)、その箇所で問題が発生している可能性があります。
インストール方法
tracerouteコマンドは、多くのLinuxディストリビューションやmacOSでデフォルトでインストールされています。
もしインストールされていない場合や、アップデートが必要な場合は、以下の方法でインストールできます。
- Linux (Debian/Ubuntu 系)
- Linux (Fedora 系)
- Linux (CentOS/RHEL 系)
- macOS
- Windows
Linux (Debian/Ubuntu 系)
コマンドラインから以下のコマンドを実行して、tracerouteをインストールします。
sudo apt install traceroute
Linux (Fedora 系)
コマンドラインから以下のコマンドを実行して、tracerouteをインストールします。
sudo dnf install traceroute
Linux (CentOS/RHEL 系)
コマンドラインから以下のコマンドを実行して、tracerouteをインストールします。
sudo yum install traceroute
macOS
macOSでは、デフォルトでtracerouteがインストールされているため、通常は追加のインストールは必要ありません。
もしインストールが必要な場合は、Homebrewを使用してインストールしましょう。
brew install traceroute
Windows
Windowsでは、tracerouteに相当する機能を持つtracertコマンドがデフォルトでインストールされています。
コマンドプロンプトやPowerShellで「tracert」コマンドを使用して、同様の経路調査ができます。
特別なインストールは必要ありません。
tracerouteコマンドの仕組み
tracerouteコマンドの仕組みを見ていきましょう。
仕組みを理解することで、トラブル時などにも応用が効くようになります。
- ICMPとTTL
- パケットのルーティング
ICMPとTTL
tracerouteコマンドの仕組みを理解するには、ICMPとTTLの2つの概念を知る必要があります。
ICMP(Internet Control Message Protocol)は、ネットワーク上でエラーや制御情報を伝達するためのプロトコルです。
tracerouteでは、ICMPパケットが経路上のルーターから返されることで経路情報を取得します。
TTL(Time To Live)は、パケットがネットワーク上で生きている時間を制限するための値で、各ルーターを経由する度に減少します。
tracerouteは、TTL値を1から順に増やしながらパケットを送信し、各ルーターからの応答を受け取って経路を特定しているのです。
パケットのルーティング
インターネット上でデータをやり取りする際、パケットは複数のルーターを経由して目的地に到達します。
tracerouteコマンドは、このルーターを経由する経路を調べているのです。
これにより、通信の遅延や障害が発生している場所を特定します。
実践編: tracerouteコマンドを使ってみよう
tracerouteコマンドを実践で使う例をご覧いただきます。
例を見たほうがイメージがわきやすく、実践で使えるようになるでしょう。
- インターネット経路の調査
- ローカルネットワークの経路確認
- コマンドオプションの活用
インターネット経路の調査
tracerouteコマンドを使って、特定のウェブサイトへの経路を調べられます。
これにより、通信遅延や障害の原因を特定し、問題解決に役立てましょう。
ローカルネットワークの経路確認
ローカルネットワーク内でもtracerouteコマンドを使用できます。
ネットワーク機器の接続状況や経路設定を確認するために利用可能です。
コマンドオプションの活用
tracerouteコマンドには、いくつかのオプションがあります。
例えば、`-n`オプションを使用すると、IPアドレスだけを表示してホスト名の解決を省略できます。
これにより、コマンドの実行速度が向上します。
traceroute -n www.google.com
tracerouteコマンドのオプション一覧
tracerouteコマンドのオプションを一覧にまとめました。
さまざまなオプションを使いこなせば、デフォルトではできないことまで使えます。
オプション名 | 説明 | 具体例 |
---|---|---|
-n | ホスト名の解決を省略し、IPアドレスのみを表示する | traceroute -n www.google.com |
-I | ICMP ECHOパケットを使用してトレースを実行する(デフォルト) | traceroute -I www.google.com |
-T | TCP SYNパケットを使用してトレースを実行する | traceroute -T www.google.com |
-U | UDPデータグラムを使用してトレースを実行する | traceroute -U www.google.com |
-p | 送信するパケットのポート番号を指定する | traceroute -p 80 www.google.com |
-f | 初期TTL値を指定する | traceroute -f 5 www.google.com |
-m | 最大TTL値を指定する | traceroute -m 30 www.google.com |
-w | 応答のタイムアウト(秒)を設定する | traceroute -w 3 www.google.com |
-q | 各ホップで送信するクエリの数を指定する | traceroute -q 5 www.google.com |
-r | ホスト名解決を行わずにルーターアドレスのみを表示する | traceroute -r www.google.com |
-s | 送信元アドレスを指定する | traceroute -s 192.168.1.1 www.google.com |
-g | 経路にあるLSRR(Loose Source Routing)ゲートウェイを指定する | traceroute -g 192.168.2.1 www.google.com |
-V | バージョン情報を表示する | traceroute -V |
-h | ヘルプを表示する | traceroute -h |
トラブルシューティングの実例
トラブルシューティングの実例を見ていきましょう。
理解することで、解決までの時間が短くなります。
- 遅延の原因特定
- 経路変更の検証
遅延の原因特定
tracerouteコマンドの結果から、通信遅延が特定のルーターで発生していることがわかった場合、そのルーターの設定やネットワーク状況を確認し、問題を解決するための情報を得られます。
経路変更の検証
ネットワーク管理者が経路の設定変更を行った場合、tracerouteコマンドを使って変更が適切に反映されているかを確認できます。
新しい経路が正常に機能しているか、遅延や障害が発生していないかをチェックするために役立ちます。
よくある問題と対処法
よくある問題とその対処法を見ていきましょう。
事前に理解しておけば、回避できるかもしれません。
- タイムアウトや途中で止まる場合
- 経路が表示されない場合
タイムアウトや途中で止まる場合
tracerouteコマンドの結果が途中でタイムアウトになる(`*`が表示される)場合、経路上のルーターがICMPパケットをブロックしている可能性があります。
この場合、他の方法で経路情報を取得するか、問題が発生しているルーターの管理者に連絡して対処を依頼することができます。
経路が表示されない場合
tracerouteコマンドを実行しても経路がまったく表示されない場合、ファイアウォールやセキュリティ設定が原因でパケットがブロックされている可能性があります。
その場合は、ファイアウォールの設定を確認し、適切な設定をおこないましょう。
類似ツールと比較
tracerouteに似たツールとその比較をしていきます。
ネットワーク状況を調べられるのは、tracerouteだけではないのです。
- tracert(Windows環境)
- mtr
- その他のツール
tracert(Windows環境)
Windows環境では、tracerouteコマンドに代わるツールとしてtracertコマンドが利用可能です。
基本的な機能はtracerouteと同じですが、コマンド名と一部のオプションが異なります。
mtr
mtrは、tracerouteとpingの機能を組み合わせたツールです。
経路上のルーターへの応答時間やパケットロスの情報をリアルタイムで表示できます。
これにより、ネットワークの問題をより詳細に解析することができます。
その他のツール
他にも、ネットワーク経路を調査するツールとして、PathPingやPingPlotterなどがあります。
これらのツールは、tracerouteとは異なる機能や表示方法を提供しており、問題解析の際に役立つでしょう。
まとめ
当記事の内容をまとめます。
- tracerouteコマンドでネットワーク経路やトラブルの確認ができる
- tracerouteコマンドではオプションでさまざまなことができる
- tracerouteコマンドの類似ツールも存在する
tracerouteコマンドは、ネットワークに何らかのトラブルがある際に使えるもの。
インストールがされていない方は、インストールしておくことをおすすめします。
使いこなして、トラブルの解決をいち早くおこなえるようにしましょう。