トレースルートの概要
Linux のtraceroute コマンドは、宛先に到達するために必要なパスを移動するホップ数とパケット数を判断するのに役立つネットワーク トラブルシューティング ユーティリティです。データがローカル マシンからリモート マシンにどのように送信されたかを表示するために使用されます。 Web ページの読み込みは、traceroute の一般的な例の 1 つです。 Web ページを読み込むと、ネットワークとルーターを通じてデータが転送されます。 traceroute は、ネットワーク上のルーターのルート、IP アドレス、およびホスト名を表示できます。これは、ネットワークの問題を診断するのに役立ちます。
コンピューティングにおいて、tracert およびtraceroute は、考えられるルートを表示し、IP ネットワーク全体でのパケット転送遅延を測定するコンピュータ ネットワーク診断用のコマンドです。ルート履歴は、ルート内の連続するすべてのホストからのパケットの往復時間として記録されます。各ホップの平均時間合計は、接続の作成に費やされた合計時間の測定値です。
送信されたすべてのパッケージが 2 回以上失われない限り、traceroute コマンドは続行されます。接続が失われ、パスを評価できなくなります。一方、ping コマンドは、宛先ポイントを通過する最後の往復時間のみを測定します。このツールには、IPv6 の場合、tracert6 およびtraceroute6 という似た名前が付いていることがあります。
構文:
traceroute [OPTION...] HOST
オプション:
次のコマンドライン オプションが、traceroute コマンドでサポートされています。
-f、--first-hop=NUM: 初期ホップ距離を設定するために使用されます。
-g、--gateways=ゲート: これは、ルーズ ソース ルーティングのゲートウェイのリストを表示するために使用されます。
-I、--icmp: ICMP ECHOをプローブとして使用するように指定されています。
-m、--max-hop=NUM: 最大ホップ数を設定するために使用され、デフォルトは 64 です。
-M、--type=メソッド: これは、traceroute 操作の METHOD (icmp または udp) を指定します。デフォルトのメソッドは udp です。
-p、--ポート=ポート: 宛先 PORT ポートを使用するように定義されており、デフォルトの PORT は 33434 です。
-q、--tries=NUM: これは、ホップごとに NUM 個のプローブ パケットを転送するために使用されます。デフォルトは 3 です。
--resolve-ホスト名: ホスト名を解決するために使用されます。
-t、--tos=NUM: これは、サービスの種類 (TOS) を NUM に設定するために使用されます。
-w、--wait=NUM: 応答を秒単位で待機するために使用されます。デフォルトは 3 です。
-?、 - ヘルプ: サポートされているコマンドライン オプションと使用方法の簡単な説明を含むヘルプ マニュアルを表示するために使用されます。
- 使用法: 短い使用法メッセージが表示されます。
-V、--バージョン: トレースルートのバージョン情報を表示するために使用されます。
PythonはJSONをファイルに書き込みます
このトピックの簡単なインデックスを見てみましょう。
- トレースルートコマンドをインストールする
- どのように機能するのでしょうか?
- Ipv6を使用してルートを追跡する
- Ipv4を使用してルートを追跡する
- IP アドレスとホスト名のマッピングを無効にする
- ホップあたりのクエリ数を設定する
- 応答待ち時間を設定する
- 使用するインターフェースを指定する
- 初期TTL値を設定する
- 最大ホップ数を設定する
- 助けを求める
トレースルートの実装
traceroute コマンドは、いくつかの最新の OS で使用できます。 Linux、macOS、FreeBSD などの Unix 系システムでは、コマンド ラインのツールとして利用できます。また、traceroute には、macOS のネットワーク ユーティリティ スイート内でグラフィカルにアクセスできます。これらのユーティリティは、macOS Big Sur の公開以来非推奨になりました。
ReactOS と Microsoft Windows では、同様のルート トレース機能を実装する、tracert と呼ばれるプログラムが提供されています。また、Windows NT ベースの OS は、ping コマンドの機能とtracert を組み合わせることができる PathPing を提供します。 ReactOS エディションは Get Murphy によって統合されており、GPL に基づいてライセンスされています。
デフォルトでは、traceroute は Unix 系 OS 上で、ポート宛先番号が 33434 ~ 33534 の範囲の UDP (User Datagram Protocol) パケットを送信します。macOS、DragonFly BSD、OpenBSD、NetBSD、FreeBSD、および Linux に同梱されているtraceroute 実装には、 ICMP または TCP SYN パケットを使用して、TCP や UDP などの ICMP エコー要求パケットを利用するオプション。デフォルトでは、tracert は Windows 上で、UDP パケットのtraceroute 転送ではなく、ICMP Echo Request パケットを転送します。
トレースルートの使用法
ほとんどの実装には、ホップごとに転送するクエリの数、応答の待ち時間、ホップ制限、および使用されるポートを定義するための少なくともいくつかのオプションがあります。指定したオプションを指定してtracerouteを呼び出さない場合、利用可能なオプションのリストが表示されますが、mantracerouteコマンドはエラーフラグなどの詳細を表示します。
トレースルートの起源
トレースルートのマニュアル ページには、実際のトレースルート プログラムは、Steve Deering の推奨に基づいて 1987 年に Van Jacobson によって仕様化され、特に説得力のある修正と C. Philip Wood、Ken Adelman、Tim Seaver の推奨が加えられたと記載されています。 ping プログラムの作成者である Mike Muuss 氏は、最初に ping プログラムを指定したときに、生の ICMP ソケットをアクティブにするために以前にコーディングしたカーネル ICMP のサポートを使用して、traceroute が指定されたと述べています。
トレースルートの制限事項
トレースルートの制限は悪名高いので、ツールを使用する際には考慮する必要があります。たとえば、traceroute はインターフェイス レベルでパスを認識しますが、ルート レベルでは認識しません。その他の制限は、ルーターが検査に応答しない場合、またはルーターに ICMP 応答の制限が含まれている場合に発生します。
Traceroute は、トラフィック負荷分散の存在下では存在しないパスを表す可能性があります。この問題を最小限に抑えるために、Paris-traceroute として知られる、traceroute の変更が利用可能です。これは、負荷分散を無視するように検査フロー ID を管理します。
トレースルートコマンドをインストールする
トレースルートは、デフォルトのユーティリティではありません。 Linux システム。トレースルートを使用するには、手動でインストールする必要があります。インストールするには、次のコマンドのいずれかを実行します。
sudo apt install inetutils-traceroute sudo apt install traceroute
上記のコマンドは、システムにtracerouteユーティリティをインストールします。インストールが成功すると、出力は次のようになります。
どのように機能するのでしょうか?
接続されたネットワーク ホストのルートをトレースするには、接続するサーバーの名前または IP アドレスを渡します。たとえば、サーバー「javatpoint.com」のルートをトレースするには、次のコマンドを実行します。
traceroute javatpoint.com
上記のコマンドは、指定されたルート上のホップ、パケット、その他多くの情報を表示します。以下の出力を考えてみましょう。
上記の出力から、いくつかのことがわかります。出力の各部分を理解してみましょう。
- 最初の行には、到達するホスト名と IP アドレス、traceroute コマンドによって試行されるホップ、および送信されるパケットのサイズが表示されます。
- 2 行目以降、各行には宛先までのホップが表示されます。ホスト名の後にホストの IP アドレス、ラウンドトリップ時間が続きます。ラウンドトリップ時間は、信号の送信にかかる時間とホストへの応答にかかる時間の合計です。
- デフォルトでは、ホストごとに 3 つのパケットが送信されるため、3 つの応答時間がリストされます。
- 「*」記号はパケット損失を表します。パケット損失は、ネットワークの停止、大量のトラフィックによるネットワークの輻輳、あるいはファイアウォールによるトラフィックのドロップなどが原因で発生します。大量のパケット損失が発生すると、traceroute は「宛先に到達できません」というエラーを表示します。
IPv6 を使用してルートを追跡する
「6」オプションは、IPv6 プロトコルを使用してホスト ネットワークへのルートを追跡するために使用されます。以下のコマンドを考えてみましょう。
traceroute6 google.com
上記のコマンドは、IPv6 プロトコルを使用して「google.com」へのルートを追跡します。以下の出力を考えてみましょう。
Ipv4 を使用してルートを追跡する
「4」オプションは、IPv6 プロトコルを使用してホスト ネットワークへのルートを追跡するために使用されます。以下のコマンドを考えてみましょう。
traceroute 4 google.com
上記のコマンドは、IPv6 プロトコルを使用して「google.com」へのルートを追跡します。以下の出力を考えてみましょう。
IP アドレスとホスト名のマッピングを無効にする
「n」オプションは、IP アドレスとホスト名のマッピングを無効にするために使用されます。以下のコマンドを考えてみましょう。
traceroute n google.com
上記のコマンドにより、次のような出力が生成されます。
ホップあたりのクエリ数を設定する
「-q」オプションは、ホップごとのクエリ数を設定するために使用されます。以下のコマンドを考えてみましょう。
traceroute -q 2 google.com
上記のコマンドにより、次のような出力が生成されます。
ジャワの睡眠
応答待ち時間を設定する
「-w」オプションは、traceroute の応答待ち時間を設定するために使用されます。プローブに応答するまでの待機時間を秒単位で指定します。以下のコマンドを考えてみましょう。
traceroute -w 1 google.com
上記コマンドより、応答待ち時間は1秒となります。次のような出力が生成されます。
使用するインターフェースを指定する
「i」オプションは、traceroute が使用するネットワーク インターフェイスを設定するために使用されます。設定されていない場合は、ルーティング テーブルに従ってインターフェイスが設定されます。以下のコマンドを考えてみましょう。
traceroute i wlp3s0b1 google.com
上記のコマンドにより、次のような出力が生成されます。
初期TTL値を設定する
デフォルト値以外の初期 TTL (生存時間) 値を設定できます。いくつかのホップがスキップされます。通常、それぞれのテスト セットに対して 1、2、3 などに設定されます。したがって、これを 7 に設定すると、最初のテストでは 7 ホップが試行され、1 から 6 までのホップがスキップされます。以下のコマンドを考えてみましょう。
traceroute -f 7 google.com
上記のコマンドはホップ 7 に直接進みます。以下の出力を考えてみましょう。
最大ホップ数を設定する
「-m」オプションは、パケットが宛先に到達するまでの最大ホップ数を設定するために使用されます。最大ホップ数のデフォルト値は 30 です。次のコマンドを考えてみましょう。
traceroute -m 7 google.com
上記のコマンドは、パケットが宛先に到達するまでの最大ホップを 7 に設定します。以下の出力を考えてみましょう。
助けを求める
使用方法とサポートされているオプションの概要を含むヘルプ マニュアルを表示するには、次のコマンドを実行します。
traceroute --help
上記のコマンドを実行するとヘルプが表示されます。次のような出力が生成されます。
次のように man コマンドを実行してマニュアル ページにアクセスすることもできます。
man traceroute
上記のコマンドは、traceroute コマンドのマニュアル ページを表示します。次のようになります。
ページをスクロールして詳細を読み、「q」キーを押してマニュアル ページを終了します。