Tracerouteとは何ですか?何に使用しますか?

インターネットを使用していると、World Wide Webを維持するために多くの作業部品とサーバーが働いていることを忘れてしまいがちです。チャットメッセージから猫の写真まで、送信するすべてのパケットは、交換所とサーバーを経由して宛先に到達する必要があります。

残念ながら、ウェブサイトに接続できなくなったときほど、この設定を思い出させてくれるものはありません。原因は、あなたの側、ウェブサイト側、またはその中間にある可能性があります。そして、問題がどこにあるかを突き止める最良の方法は、Tracerouteを使用することです。

Tracerouteとは何ですか?

Tracerouteは、データパケットがインターネットを介して移動する経路を追跡する方法です。すべての最新のオペレーティングシステムは、経路を追跡できます。

Tracerouteを開始すると、どのウェブサイトまたはサーバーの経路を追跡するかを指定します。通常は、アクセスしようとしているウェブサイトのURLですが、必要に応じてIPアドレスを入力することもできます。

Tracerouteを開始すると、設定した宛先に向けてパケットが送信されます。その後、パケットの移動をログに記録し、情報をPCに送信します。PCは、パケットの移動先を表示します。

これは、ネットワークの障害を見つけるのに非常に便利です。サーバーまたは交換所がダウンしている場合、Tracerouteはその問題を検出し、何かが正しく機能していないことを報告します。この情報を使用して、何が問題なのかをより適切に診断できます。

Tracerouteはどのように機能しますか?

Tracerouteは、ネットワークエラーを診断するのに便利な方法です。ただし、Tracerouteの発明は、パケットの「生存時間」変数を使用した巧妙な悪用のおかげです。

パケットの「生存時間」とは何ですか?

理想的には、コンピュータがパケットをある場所から別の場所に送信すると、問題なくそこに到達します。ポイントAからポイントBまで可能な限り最短の経路をたどり、スタックしたり、保持されたりすることはありません。

残念ながら、ネットワークは気難しいものです。エンジニアがサーバーのセットアップ中にミスを犯すと、パケットがサーバー間で無限ループで送信される可能性があります。そして、それが頻繁に起こると、ネットワークは永遠にぐるぐると回るパケットでいっぱいになります。

データパケットの背後にある賢い人たちは、これを修正するためのソリューションを思いつき、「生存時間」または「TTL」と呼びました。すべてのデータパケットは、未知の世界に送信される前に、TTL値として0より大きい数値が与えられます。この値が0になると、パケットは「デッド」とみなされ、破棄されます。

パケットは移動中に、さまざまなサーバーで複数回停止します。サーバーに到着するたびに、TTL値から1が減算されます。通常、このTTL値は、パケットが0になる前に宛先に到達するのに十分な時間がある数値に設定されます。ただし、パケットがループに入ると、TTLは最終的に減少し、パケットは期限切れになります。

パケットが期限切れになると、パケットが終了したサーバーは「ICMPタイムアウト」メッセージをホームに送信します。これは基本的に、パケットが期限切れを迎えたという通知であり、パケットが期限切れになった場所をユーザーに伝えて、トラブルシューティングに役立ちます。

パケットの生存時間がどのようにTracerouteを機能させたか

このICMPタイムアウトメッセージは、Tracerouteを機能させるための鍵です。まず、TracerouteはTTLが1に設定されたパケットを送信します。これは、PCから出て、最初のサーバーに到着し、TTLから1を減算し、TTLが0であることに気づき、期限切れになることを意味します。

その時点でパケットを処理しているサーバーは、ICMPタイムアウトメッセージをPCに送信し、その場所を通知します。次に、PCはサーバーの場所をターゲットに向けた最初のステップとしてログに記録します。

その後、パケットが宛先に到着するまで、TTLが2、3などに設定されたパケットを送信します。各パケットは通路の次のステップで期限切れになり、その過程の各サーバーは期限切れのパケットを報告し、PCにパケットの移動先に関する必要な情報を提供します。

Tracerouteは何に使用されますか?

基本的には、Tracerouteを使用すると、パケットがネットワークをどのように移動するかを確認できます。すべてが正しく流れていることを再確認するために二重チェックを行っているネットワークエンジニアであろうと、Googleにアクセスするときにパケットがどのように移動するかを知りたいだけの場合でも、Tracerouteが最適な方法です。

ただし、システム内のエラーを見つけるのにも役立ちます。Tracerouteが応答のないサーバーに接続しようとすると、送信したパケットがしばらく応答をトリガーしていないことに気付きます。十分な時間が経過すると、Tracerouteは「要求がタイムアウトしました」と宣言します。これは、応答が割り当てられた時間内に届かなかったことを意味します。

もちろん、タイムアウトした要求が常にサーバーがダウンしていることを意味するわけではありません。サーバーがTracerouteリクエストを好まず、リクエストが受信されるとブロックすることがあります。ただし、チェーン上のサーバーがTracerouteをブロックするべきではないと確信している場合は、接続しようとしたときに応答しないウェブサイトまたはサーバーを診断するのに適した方法です。

TracerouteとPingの違いは何ですか?

技術に精通した読者は、Tracerouteが別の便利なネットワーキングツールであるPingと非常によく似ていることに気付くでしょう。ただし、2つの機能は少し重複していますが、人々はそれらを異なる理由で使用しています。

上で説明したように、TracerouteはパケットがPCから送信された後、どこに向かうかを確認するのに役立ちます。一方、PingはPCが特定のサーバーに到達できるかどうか、および到達にかかる時間を示します。 そのため、ネットワークチェーンのすべての部分を確認したい場合は、Tracerouteを使用します。一方、サーバーが応答しているかどうかを確認したいだけの場合は、Pingを実行できます。もちろん、Tracerouteでも実行できますが、目的のサーバーに到達するまでしばらく待ってから、探している答えを得る必要があります。

Tracerouteを実行する方法

前述のように、すべての主要なオペレーティングシステムはTracerouteを実行できます。コマンドターミナルを開いてTracerouteコマンドを入力するだけです。 macOSの場合は、ターミナルを開いて「traceroute」と入力し、宛先のURLまたはIPアドレスを入力するだけです。Linuxでも同じですが、実行する前にTracerouteをインストールする必要がある場合があります。 Windowsオペレーティングシステムでは、機能が「tracert」と呼ばれることを除いて、同じように機能します。Windowsでワイヤレスネットワークを管理するためのコマンドに関するガイドでtracertとその他のコマンドについて説明しているので、使用できるツールについて知りたい場合は、ぜひ読んでください。

Tracerouteでパケットを追跡する

パケットがPCから送信された後の移動先を確認したい場合は、Tracerouteが最適な方法です。ネットワークの問題を診断したい場合でも、パケットがどこに向かうのかを知りたい場合でも、簡単に設定してデータの移動を確認できます。