はじめに
この実験では、Linuxの「tracepath」コマンドを使って、ローカルホストからリモートホストまでのパケットの経路を追跡し、途中で発生するネットワークの問題を特定する方法を学びます。この実験では、「tracepath」コマンドの目的、リモートホストまでの経路を追跡する方法、およびコマンドを使ったネットワークのトラブルシューティング方法について説明します。「tracepath」コマンドの出力を解釈し、高いレイテンシー、パケットロス、またはMTUの問題などの潜在的なネットワークの問題を特定する方法を学びます。
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」メッセージに遭遇しました。
この問題をトラブルシューティングするには、次のことを試してみることができます。
ファイアウォールのルールを確認して、接続が予想通りにブロックされていることを確認します。
$ sudo iptables -L Chain OUTPUT (policy ACCEPT) target prot opt source destination DROP all -- anywhere 8.8.8.8リモートホストに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%のパケットロスによって接続がブロックされていることを示しています。
ファイアウォールのルールを削除して接続を復元します。
$ sudo iptables -D OUTPUT -d 8.8.8.8 -j DROP
接続がブロックされているポイントを特定するために「tracepath」コマンドを使うことで、迅速にネットワークの問題をトラブルシューティングし、根本原因を特定することができます。
まとめ
この実験では、Linuxにおける「tracepath」コマンドの目的と使い方について学びます。これは、ローカルホストからリモートホストまでのパケットの経路を追跡し、途中の中間ホップやネットワークの問題を特定するためのネットワーク診断ツールです。また、「tracepath」コマンドを使ってリモートホストまでの経路を追跡し、コマンドの出力を使ってネットワークの問題をトラブルシューティングする方法についても学びます。
「tracepath」コマンドは「traceroute」コマンドに似ていますが、パスMTU探索(PMTUD)メカニズムを使って経路上の最大送信単位(MTU)を決定します。これにより、パケットの断片化に関連するネットワークの問題を特定するのに役立ちます。「tracepath」コマンドを実行することで、経路上の高いレイテンシー、パケットロス、またはMTUの問題など、ネットワークの問題やボトルネックを特定することができます。



