ネットワークの接続先までの経路を調べたいとき、「どこで遅延しているのか」「どこで通信が止まっているのか」を知ることは、トラブルシューティングにおいてとても重要です。Linuxではそのような経路の可視化に使える便利なコマンドがいくつかありますが、中でもよく知られているのがtraceroute(トレースルート)です。
本記事では、Linuxにおけるtraceroute
コマンドの基本的な使い方から、仕組み、具体的な出力例、応用テクニックまでを丁寧に解説します。ネットワークエンジニアやサーバー管理者はもちろん、Linux学習者にも役立つ内容となっています。
traceroute
は、LinuxやUNIX系のOSで使用できるネットワーク診断ツールの一つです。指定したホスト(ドメインやIPアドレス)までのネットワーク上の経路(ルート)を調査し、各中継点(ルーターなど)での応答時間を表示します。
通常、インターネットを通じてあるホストに接続する際、そのパケットは複数のルーターを経由します。通信の問題が発生した際、「どこで止まっているのか」「遅延がどこで発生しているのか」を可視化することが、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
...
* * *
と表示される場合は、そのホップでの応答がなかった(タイムアウト)ことを意味します。ファイアウォールなどによりICMPがブロックされている場合によく見られます。
traceroute
はICMPやUDPパケットを利用して経路をたどります。以下のような仕組みで動作します。
traceroute
はこのメッセージを受け取り、そのルーターを記録このようにして最終目的地までのすべての中継点を記録していくのです。
一部のネットワークでは、以下のような理由でtraceroute
が正常に動作しないことがあります。
その場合は、以下のような代替策を検討しましょう。
mtr
:tracerouteとpingの機能を融合したツール(動的表示が可能)ping -R
:経路記録オプション付きのping(IPv4限定)tcptraceroute
:TCPパケットを使用するtraceroute(ファイアウォール回避に有効)実際のネットワーク運用では、以下のようなケースでtracerouteが役立ちます。
ログの保存や他の調査ツールと組み合わせて使うことで、より効果的なトラブルシューティングが可能になります。
環境によっては、tracerouteコマンドがデフォルトでインストールされていない場合があります。その際は以下のようにインストール可能です。
sudo apt update
sudo apt install traceroute
sudo yum install traceroute
または
sudo dnf install traceroute
インストール後は、which traceroute
コマンドでパスを確認できます。
traceroute
は、Linux環境でネットワークトラブルの原因を特定するための強力なツールです。通信が遅い、つながらないといった問題に直面した際に、どの中継点で問題が発生しているかを簡単に把握できます。基本的な使い方を覚えておくだけでも、ネットワークトラブル時の対応力が格段に上がります。
単に「インターネットが遅い」と嘆くのではなく、「tracerouteで原因を突き止めてみる」という姿勢を持つことで、よりプロフェッショナルなトラブルシューティングが可能になります。