ネットワーク

traceroute(tracert)コマンドの使い方解説【どのような経路で通信しているのか?】

こんにちは、フルスタックエンジニアのryuです。

今回の記事は、traceroute(tracert)コマンドの使い方を解説します。tracerouteコマンドとは、ネットワークの経路を調査するためのコマンドです。どのようなルーターを経由して通信をしているのかを調査することができます。ネットワークで障害があったときに便利です。

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

traceroute(tracert)コマンドの使い方解説

tracerouteコマンドの使い方が分からない・・・

今回の記事では、traceroute(tracert)コマンドの使い方を解説します。tracerouteコマンドの使い方は以下の通りです。

//windowsの場合
tracert -d [対象のIPアドレス]

//linux macの場合
traceroute [対象のIPアドレス]

どのようにコマンドを使うのか詳しく解説します!

Windowsでtracerouteコマンドを使用する

まずは、Windowsでtracerouteコマンドを使ってみましょう。Windowsの場合は”tracert”コマンドになるので注意しましょう。

コマンドの使い方は、以下の通りです。

//windowsの場合
tracert -d [対象のIPアドレス]
tracert -d 172.217.175.36

コマンドプロンプトを開いて、コマンドを入力してみましょう。

コマンドを入力すると、以下のようになります。ちなみに、IPアドレスはgoogleのものを使用しています。

tracertコマンドの使い方

このように、自分のPCからgoogleのサーバーまでの経路を表示してくれます。12個の経路を経由していることが分かります。

“-d”のオプションを付けることでコマンドの完了までの時間を短縮しています。オプションを付けないとIPアドレスからホスト名へ名前解決をするので、時間が掛かってしまいます。

Linux、Macでtracerouteコマンドを使用する

次にLinux、Macでtracerouteコマンドを使用する方法を解説します。コマンドの使い方は以下の通りです。

//linux macの場合
traceroute [対象のIPアドレス]

こちらもWindows同様宛先までの経路を表示してくれます。tracerouteコマンドが使用できない場合は、コマンドをインストールしましょう。インストールの方法も紹介します!

Linuxでtracerouteコマンドが使えない場合

Linuxでtracerouteコマンドが使えない場合は、コマンドをインストールしましょう。

apt-get update
apt-get install traceroute

tracerouteコマンドの仕組み

ここからは、tracerouteコマンドの仕組みについて解説します。今回説明するのは以下の2つについてです。

  • tracerouteコマンドのプロトコル
  • TTL値の増減

この2つについて理解すればtracerouteコマンドの仕組みが分かるようになります。では、詳しく解説します。

tracerouteコマンドのプロトコルはICMP

tracerouteコマンドのプロトコルはICMPもしくはUDPを使用しています。Windowsの場合はICMPを使用して、Linuxの場合はUDPを使用しています。

このプロトコルで通信のやり取りを行う際に、パケットのヘッダーのTTL値を変更することでどこの経路に通信しているのかが分かります。

では、どのような仕組みでtracerouteコマンドが実行されているのかを見ていきましょう。

プロトコルについては、こちらの記事で詳しく解説しております。

【ITパスポート講座⑥】プロトコルとは?初心者にも分かりやすく解説

TTL値の増減でどこの経路まで通信しているのかを判断する

先ほど紹介した、ICMPやUDPで通信を行う際、パケットのヘッダには、TTLという値が設定されます。TTLとはTime to Liveつまり「生存時間」のことです。パケットの有効期限のことです。

パケットがルータを 1つ通過するたびに TTL の値は 1 だけ引かれていき、TTL が 0 になったら、その時点でパケットを破棄し、生成元のホストに「こちらでパケットを破棄しました」という意味の ICMP TIME EXCEEDED というパケットを返します。

traceroute コマンドを実行すると、対象のホストに向けて ICMPパケットを送信します。。一番最初のパケットは、TTL に 1 をセットする。すると、隣接するルータから ICMP TIME EXCEEDED が届くことになります。

次に TTL を 2 にしてICMP パケットを送信し、その次のルータから ICMP TIME EXCEEDED を受け取ります。
ICMP TIME EXCEEDED には、どのルータでパケットが破棄されたかという IP アドレスが記録されているので、1つずつ TTL を増やしたパケットを送信すれば、結果としてパケットが通過した経路がわかります。

このようにして、tracerouteコマンドは通信した先のルーターのIPアドレスを記録できるようになります。

ネットワークをさらに勉強したい方にオススメ

ここまで、tracerouteコマンドの使い方について解説しました。Linuxやネットワークの知識をさらに詳しく知りたい方は、Udemyの講座をオススメします。

セール時には参考書よりも格安で購入することができるのでコスパ最高です。また、講座の試聴や返金保証もできるので安心して購入することができます。

興味のある方はぜひお試しください!

  • セールだと1500円前後!
  • 無料サンプル講義動画・無料講義動画あり!
  • 気に入らなければ30日間返金保証!

ネットワークの講座をみる

traceroute(tracert)コマンドの使い方まとめ

今回の記事では、tracerouteコマンドの使い方を解説しました。まとめると以下のようになります。

  • windowsの場合は”tracert -d [IPアドレス]”
  • Linuxの場合は”traceroute [IPアドレス]”
  • tracerouteはTTLの増減とICMP TIME EXCEEDEDで経路上のIPアドレスを取得している

traceroute(tracert)コマンドはネットワーク障害の時に役に立つコマンドなので覚えておきましょう!

当ブログでは、このようなネットワークやサーバーの知識を紹介しているので、興味のある方は是非ご覧ください。

さらにネットワークを勉強したい方は、こちらの参考書がオススメです。

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST