ネットワークの接続先までの経路を調べたいとき、「どこで遅延しているのか」「どこで通信が止まっているのか」を知ることは、トラブルシューティングにおいてとても重要です。Linuxではそのような経路の可視化に使える便利なコマンドがいくつかありますが、中でもよく知られているのがtraceroute(トレースルート)です。
本記事では、Linuxにおけるtraceroute
コマンドの基本的な使い方から、仕組み、具体的な出力例、応用テクニックまでを丁寧に解説します。ネットワークエンジニアやサーバー管理者はもちろん、Linux学習者にも役立つ内容となっています。
tracerouteとは?その役割と基本概要
traceroute
は、LinuxやUNIX系のOSで使用できるネットワーク診断ツールの一つです。指定したホスト(ドメインやIPアドレス)までのネットワーク上の経路(ルート)を調査し、各中継点(ルーターなど)での応答時間を表示します。
通常、インターネットを通じてあるホストに接続する際、そのパケットは複数のルーターを経由します。通信の問題が発生した際、「どこで止まっているのか」「遅延がどこで発生しているのか」を可視化することが、traceroute
の最大の役割です。
tracerouteの基本的な使い方
Linuxでtraceroute
を使用するには、ターミナルで以下のように入力します。
traceroute [オプション] 宛先ホスト
たとえば、GoogleのDNSサーバー(8.8.8.8)への経路を確認したい場合は以下のようにします。
traceroute 8.8.8.8
もしくはドメイン名で指定することも可能です。
traceroute www.google.com
主なオプション
-n
:IPアドレスをそのまま表示(DNSによる名前解決を行わない)-w
:タイムアウト秒数の指定(デフォルトは5秒)-m
:最大ホップ数を指定(デフォルトは30)-q
:各ホップごとの試行回数を指定(デフォルトは3)
例:
traceroute -n -w 2 -m 20 -q 2 www.google.com
出力結果の読み方
traceroute
を実行すると、以下のような出力が表示されます。
traceroute to www.google.com (142.250.72.68), 30 hops max, 60 byte packets
1 192.168.0.1 (192.168.0.1) 2.123 ms 1.845 ms 1.703 ms
2 10.10.10.1 (10.10.10.1) 4.013 ms 3.987 ms 4.002 ms
3 * * *
4 203.0.113.1 (203.0.113.1) 15.451 ms 15.332 ms 15.498 ms
...
説明:
- 最初の行:宛先ホストとそのIPアドレス、最大ホップ数
- 各行の左端の数字:ホップ数(ルーターの通過回数)
- 括弧内のIPアドレス:そのホップのルーターのIPアドレス
- 数字(ms):そのホップでの応答時間(3回試行)
* * *
と表示される場合は、そのホップでの応答がなかった(タイムアウト)ことを意味します。ファイアウォールなどによりICMPがブロックされている場合によく見られます。
tracerouteの仕組みを理解しよう
traceroute
はICMPやUDPパケットを利用して経路をたどります。以下のような仕組みで動作します。
- TTL(Time To Live)という値を1に設定してパケットを送信
- 最初のルーターがそれを受信するとTTLが0になり、通信を遮断(ICMP「Time Exceeded」メッセージを返す)
traceroute
はこのメッセージを受け取り、そのルーターを記録- 次はTTLを2にして再送信…以後繰り返し
このようにして最終目的地までのすべての中継点を記録していくのです。
tracerouteが使えない時の対処法
一部のネットワークでは、以下のような理由でtraceroute
が正常に動作しないことがあります。
- ICMPやUDPパケットがフィルタリングされている
- 一部のルーターが応答を返さない設定になっている
- 経路が対称ではなく、帰り道が異なるため応答が返ってこない
その場合は、以下のような代替策を検討しましょう。
代替コマンド例
mtr
:tracerouteとpingの機能を融合したツール(動的表示が可能)ping -R
:経路記録オプション付きのping(IPv4限定)tcptraceroute
:TCPパケットを使用するtraceroute(ファイアウォール回避に有効)
tracerouteの活用事例
実際のネットワーク運用では、以下のようなケースでtracerouteが役立ちます。
- ウェブサイトにアクセスできない時に、どこで止まっているのかを調べる
- 特定のホストへの通信が遅い原因を探る
- 海外サーバーへの通信経路を確認し、冗長なルーティングを検出する
- VPN経由での通信ルートが正しいかどうかの検証
ログの保存や他の調査ツールと組み合わせて使うことで、より効果的なトラブルシューティングが可能になります。
tracerouteがインストールされていない場合の対応
環境によっては、tracerouteコマンドがデフォルトでインストールされていない場合があります。その際は以下のようにインストール可能です。
Debian/Ubuntu系
sudo apt update
sudo apt install traceroute
RedHat/CentOS系
sudo yum install traceroute
または
sudo dnf install traceroute
インストール後は、which traceroute
コマンドでパスを確認できます。
まとめ
traceroute
は、Linux環境でネットワークトラブルの原因を特定するための強力なツールです。通信が遅い、つながらないといった問題に直面した際に、どの中継点で問題が発生しているかを簡単に把握できます。基本的な使い方を覚えておくだけでも、ネットワークトラブル時の対応力が格段に上がります。
単に「インターネットが遅い」と嘆くのではなく、「tracerouteで原因を突き止めてみる」という姿勢を持つことで、よりプロフェッショナルなトラブルシューティングが可能になります。