Traceroute の出力をわかりやすく解説:各ホップの意味、アスタリスクが表示される理由、ネットワーク経路が本当に途切れている場所の見つけ方。
Traceroute は、パケットがホストに届くまでに通過するすべてのルーターと、それぞれの応答時間を一覧表示します。「どこで切れているのか?」に答える最良のツールですが、出力は誤解されやすいものです。
すべての IP パケットには TTL(Time To Live)があり、ルーターを通るたびに 1 ずつ減ります。0 になるとルーターはパケットを破棄し、エラーを返します。Traceroute は TTL を 1、2、3… と増やしながらパケットを送るので、経路上のルーターが順番に姿を現します。出力の各行が 1 つのホップで、ルーターのアドレス、ホスト名(あれば)、往復時間が表示されます。
ae1.fra.example.net はフランクフルトです。* * * の行は、そのルーターが時間内に応答しなかったことを意味します。多くのルーターは Traceroute のパケットへの応答を制限・無視しつつ、通信自体は正常に転送しています。その後のホップが応答していれば、アスタリスクは無害です。最後までアスタリスクが続く場合だけが本当の切断で、切れているのは最後に応答したホップの直後です。
途中で 1 つだけ遅いホップがあっても、多くの場合意味はありません。ルーターは Traceroute に低い優先度で応答するからです。重要なのは、増えた遅延がその後のすべてのホップでも続いているかです。ホップ 7 で 20 ms から 150 ms に跳ね上がり、以降のホップもすべて約 150 ms なら、遅い区間はホップ 6 と 7 の間です。この規模の跳ね上がりは、たいてい経路が海を越えたことを意味し、別の大陸にあるホストなら正常です。
ファイアウォールはこれらを異なる扱いをします。従来の Unix の traceroute は UDP、Windows の tracert は ICMP を使い、443 番ポートへの TCP traceroute は通常のウェブ通信のように見えるため、厳しいファイアウォールの内側のホストにも届きやすくなります。オンライン Traceroute ではプロトコルとポートを選べます。
インターネットのルーティングは非対称で、地域によって異なります。ドイツからの経路と日本からの経路はまったく別物です。複数の国から同時に Traceroute を実行すれば、障害が特定の事業者だけのものか、宛先の近くにあるのかが分かります。すべての地点が同じ最後のホップで止まるなら、問題はホストの近くです。1 つの地域だけ失敗するなら、その地域のルーティングやピアリングの問題です。
Traceroute は経路を示し、Ping テストは複数パケットにわたる接続の安定性を示します。両方を使いましょう:Ping でパケットロスを検出し、Traceroute でその場所を特定します。遅延とパケットロスのガイドで、どんな値が正常かを解説しています。