Linuxコンピュータからパケットが出てからどこに向かっているかを把握する必要がある場合、Linux上のtracerouteが役立ちます。
Tracerouteは、ネットワーク上を通過するネットワークパケットのルーターを追跡するほとんどのLinuxディストリビューションに搭載されている便利なユーティリティです。このユーティリティは、トラブルシューティングやシンプルなネットワーク計画に役立ちます。
Linuxのディストリビューションごとに、
traceroute
コマンドのパッケージが異なります。一部のディストリビューションでは、トレーサーテールトを含むネットワークツールのスイートの一部としてレガシーのinetutilsパッケージを使用している一方、他のディストリビューションではモダンなtraceroute.x86_64パッケージを使用しています。
関連記事: Windows 10でTraceroute(Tracert)を使用する方法
Tracerouteパラメータの検査
まず、Linuxのtracerouteコマンドで可能なことを確認しましょう。
ターミナルを開き、コマンドtraceroute -?
を入力してマニュアルページにアクセスします:
上記のように、tracerouteの動作を微調整するための多くのオプションがあります。
基本的なTraceroute機能
トレースルートのパラメータを微調整することができますが、実際にはすべてのパラメータが必要ではありません。実際には、単にトレースルートを実行し、トレース先のホストを指定するだけで十分です。以下のように、Linuxでトレースルートを実行すると、60バイトのパケットが送信され、目的地のホストに到達するまでに経由する各ホップが追跡されます。
これらのホップは、各パケットにタイム・トゥ・リブ (TTL) を使用して追跡され、パケットが受信されなくなった時にはホップが終了したことが検出されます。

トレースルートには最大ホップ数の制限があります。最大30ホップまでしか進みません。
より正確なトラッキングのためのスイッチの追加
Linux上のトレースルートのデフォルト機能はうまく機能しますが、もっと多くのことができます。ここでは、利用可能な最も人気で便利なスイッチの多くを説明します。
最初のホップスイッチを使用してホップを除外する
特定のルーターをトレースから除外する便利なコマンドがあります。 -f
または--first-hop=NUM
パラメータを使用して、特定のルーターを表示から除外することができます。これは、1つ以上のルーターが問題を引き起こしていないことを確信している場合に非常に役立ちます。
また、-f
スイッチを使用して、トレースをネットワークの境界線を超えて開始し、インターネット上の遅延の可能性のある原因を絞り込むこともできます。
次のGIFでは、traceroute -f 3 google.com
コマンドが実行されているのが見えます。このコマンドは最初の3つのルーターをスキップし、私のホームネットワーキングとISPルーターをバイパスしています。最初の2つのホップが欠落していることに注意してください。

上記の例からwww.google.comに到達するまでには15ホップかかります。以下のようになります:
- ホップ数
- トレースされるパスのルーターのホスト名またはIPアドレス
- 以前と同様の応答時間
出力では、一部のホップに追加のインターフェースが表示される場合があります。これは予想される動作です。
Max-Hopスイッチを使用してホップ数を制限する
さて、最初の2つのホップをスキップするだけでなく、経路の5番目のホップまでのパスを表示したいとします。その場合には、-m
または--max-hop=NUM
スイッチパラメータを使用します。
ターミナルにtraceroute -m 5 -f 3 http://www.google.com
と入力し、Enterキーを押してください。このコマンドは、潜在的なルーティングの問題を絞り込むのに便利です。tracerouteは最初の2つのホップをスキップし、5番目のホップで停止します。

-Qスイッチを使用して送信するプローブパケットを削減する
Linux上のtracerouteは、デフォルトでパスの各ルーターに3つのプローブパケットを送信します。tracerouteの実行時間を短縮したい場合には、-q
パラメータを使用して各ルーターに送信するプローブパケットの数を変更できます。
ターミナルにtraceroute -q -m 5 -f 3 www.google.com
と入力し、Enterを押します。以下に示すように、traceroute
は1つのパケットのみを送信していることがわかります。ホップごとに1つの応答時間しか取得していません。

また、-q
パラメータの引数を指定することで、ホップごとに送信されるプローブパケットの数を増やすこともできます。パケットプローブを増やすことで、各ホップの応答時間を平均化する方法を提供できるかもしれません。

概要
このLinuxのTracerouteに関する記事では、この便利なユーティリティの基本について学びました。このコマンドでできることはまだまだたくさんあります。すべてのスイッチの使用方法を学びたい場合は、manページを参照してください。