実用例を伴う Linux の tracepath コマンド

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linuxの「tracepath」コマンドを使って、ローカルホストからリモートホストまでのパケットの経路を追跡し、途中で発生するネットワークの問題を特定する方法を学びます。この実験では、「tracepath」コマンドの目的、リモートホストまでの経路を追跡する方法、およびコマンドを使ったネットワークのトラブルシューティング方法について説明します。「tracepath」コマンドの出力を解釈し、高いレイテンシー、パケットロス、またはMTUの問題などの潜在的なネットワークの問題を特定する方法を学びます。

Linux Commands Cheat Sheet


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ping("Network Testing") subgraph Lab Skills linux/netstat -.-> lab-422964{{"実用例を伴う Linux の tracepath コマンド"}} linux/ping -.-> lab-422964{{"実用例を伴う Linux の tracepath コマンド"}} end

tracepathコマンドの目的を理解する

このステップでは、Linuxにおける「tracepath」コマンドの目的と使い方について学びます。「tracepath」コマンドは、ネットワーク診断ツールであり、ローカルホストからリモートホストまでのパケットの経路を追跡し、途中の中間ホップやネットワークの問題を特定するために使用されます。

「tracepath」コマンドは「traceroute」コマンドに似ていますが、パスMTU探索(PMTUD)メカニズムを使って経路上の最大送信単位(MTU)を決定します。これにより、パケットの断片化に関連するネットワークの問題を特定するのに役立ちます。

では、まずリモートホストに対して「tracepath」コマンドを実行してみましょう。

$ sudo tracepath google.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  203.0.113.1                                           9.717ms
 4:  142.250.209.174                                      10.843ms
 5:  142.250.209.174                                      10.518ms
     Resume: pmtu 1500 hops 5 back 5

出力例:

出力は、ローカルホストからリモートホスト「google.com」までのパケットの経路を示しています。各行は経路上の1つのホップを表し、出力には以下の情報が含まれています。

  • ホップ番号
  • 中間ルータまたはネットワークデバイスのIPアドレス
  • そのホップに到達してローカルホストに戻るまでの往復時間(RTT)

「tracepath」コマンドはまた、この場合1500バイトである経路上の最大送信単位(MTU)も報告します。

「tracepath」コマンドを実行することで、経路上の高いレイテンシー、パケットロス、またはMTUの問題など、ネットワークの問題やボトルネックを特定することができます。

tracepathを使ってリモートホストまでの経路を追跡する

このステップでは、「tracepath」コマンドを使ってリモートホストまでの経路を追跡し、途中で発生するネットワークの問題を特定する方法を学びます。

まず、「google.com」のようなリモートホストまでの経路を追跡してみましょう。

$ sudo tracepath google.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  203.0.113.1                                           9.717ms
 4:  142.250.209.174                                      10.843ms
 5:  142.250.209.174                                      10.518ms
     Resume: pmtu 1500 hops 5 back 5

出力例:

出力は、ローカルホストからリモートホスト「google.com」までのパケットの経路を示しています。各行は経路上の1つのホップを表し、出力には以下の情報が含まれています。

  • ホップ番号
  • 中間ルータまたはネットワークデバイスのIPアドレス
  • そのホップに到達してローカルホストに戻るまでの往復時間(RTT)

「tracepath」コマンドはまた、この場合1500バイトである経路上の最大送信単位(MTU)も報告します。

また、「example.com」のような別のリモートホストまでの経路を追跡するためにも「tracepath」コマンドを使うことができます。

$ sudo tracepath example.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  203.0.113.1                                           9.717ms
 4:  93.184.216.34                                        10.843ms
 5:  93.184.216.34                                        10.518ms
     Resume: pmtu 1500 hops 5 back 5

さまざまなリモートホストに対して「tracepath」コマンドを実行することで、経路上の高いレイテンシー、パケットロス、またはMTUの問題など、ネットワークの問題やボトルネックを特定することができます。

tracepathを使ったネットワークのトラブルシューティング

このステップでは、「tracepath」コマンドを使ってネットワークの問題をトラブルシューティングする方法を学びます。

まず、iptablesファイアウォールを使ってリモートホストへの接続をブロックすることで、ネットワークの問題をシミュレートしましょう。

$ sudo iptables -A OUTPUT -d 8.8.8.8 -j DROP

このコマンドは、Googleの公開DNSサーバーの1つであるIPアドレス8.8.8.8へのすべての出力トラフィックをブロックします。

次に、「tracepath」コマンドを使って8.8.8.8までの経路を追跡してみましょう。

$ sudo tracepath 8.8.8.8
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  no reply
 4:  no reply
 5:  no reply
     Resume: pmtu 1500 hops 5 back 2

出力例:

出力は、「tracepath」コマンドが3つ目のホップまで経路を追跡できたことを示していますが、その後、接続がブロックされているか、またはリモートホストが応答していないことを示す「no reply」メッセージに遭遇しました。

この問題をトラブルシューティングするには、次のことを試してみることができます。

  1. ファイアウォールのルールを確認して、接続が予想通りにブロックされていることを確認します。

    $ sudo iptables -L
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    DROP       all  --  anywhere             8.8.8.8
  2. リモートホストにpingを送信して、接続が実際にブロックされているかどうかを確認します。

    $ ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    ^C
    --- 8.8.8.8 ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 2023ms

    出力は、100%のパケットロスによって接続がブロックされていることを示しています。

  3. ファイアウォールのルールを削除して接続を復元します。

    $ sudo iptables -D OUTPUT -d 8.8.8.8 -j DROP

接続がブロックされているポイントを特定するために「tracepath」コマンドを使うことで、迅速にネットワークの問題をトラブルシューティングし、根本原因を特定することができます。

まとめ

この実験では、Linuxにおける「tracepath」コマンドの目的と使い方について学びます。これは、ローカルホストからリモートホストまでのパケットの経路を追跡し、途中の中間ホップやネットワークの問題を特定するためのネットワーク診断ツールです。また、「tracepath」コマンドを使ってリモートホストまでの経路を追跡し、コマンドの出力を使ってネットワークの問題をトラブルシューティングする方法についても学びます。

「tracepath」コマンドは「traceroute」コマンドに似ていますが、パスMTU探索(PMTUD)メカニズムを使って経路上の最大送信単位(MTU)を決定します。これにより、パケットの断片化に関連するネットワークの問題を特定するのに役立ちます。「tracepath」コマンドを実行することで、経路上の高いレイテンシー、パケットロス、またはMTUの問題など、ネットワークの問題やボトルネックを特定することができます。

Linux Commands Cheat Sheet