Traceroute を使用して Linux 上のネットワークの問題を診断する方法
Traceroute は、インターネット パケットが送信元から宛先ホストまでたどるルートを追跡できるシンプルなネットワーク ユーティリティです。この記事では、Traceroute を使用して Linux のネットワークの状態をチェックし、新たな問題を診断する方法を説明します。
トレースルートはどのように機能しますか?
Traceroute は、リモート ホストへのパスに沿ったすべてのインターネット ゲートウェイに短い TTL 長の UDP パケットを送信することで機能します。これらの短い TTL 長により、これらのゲートウェイはインターフェイスの IP アドレスとともに ICMP「TIME_EXCEEDED」応答を報告するように強制されます。
これら 2 つの要素を組み合わせることで、traceroute はパケットが外部サーバーに接続する際に通過するマシンの詳細なリストを作成できるようになります。たとえば、ネットワーク内で「google.com」へのtracerouteを実行すると、Googleのサーバーに到達する前に9~10個のゲートウェイがリストされます。
Traceroute で解決できるネットワークの問題は何ですか?
Traceroute は単なるネットワーク調査ツールであり、ネットワーク内の未解決の問題を最適化したり修正したりするものではありません。 Traceroute は、ネットワークとその上を移動するパケットがどのように動作するかを記述することしかできません。
それにもかかわらず、潜在的なネットワーク問題を診断するための重要なツールであることに変わりはありません。良い例の 1 つは、ローカル ゲートウェイが次のホップへのパケットの転送に失敗した場合です。 Traceroute は、「TIME_EXCEEDED」応答を送信しないコア ネットワーク内のルーターを強調表示することで、この問題に対処できます。
それとは別に、traceroute を使用してホスト間の遅延の問題をチェックすることもできます。これは、リモート マシンに接続するときに一貫した低遅延を確保するためにローカル ネットワークに VPN が必要かどうかを確認する場合に役立ちます。
Linux での Traceroute の使用
新しいターミナルを開き、「traceroute
」と入力し、その後にマシンを接続するマシン アドレスを入力します。これはドメイン名または IP アドレスのいずれかです。例:
Enter を押して、リモート ホストへのパスのマッピングを開始します。
Traceroute でカスタム TTL を使用してパケットを送信する
基本的な使用には、traceroute を単独で使用するだけで十分ですが、フラグを使用してプログラムの動作を調整することもできます。これは、ネットワークの優先順位付けを行う場合に特に役立ちます。
traceroute の最も一般的な調整の 1 つは、ゲートウェイに送信するパケットの量を変更することです。これを行うには、-q
フラグの後に、リクエストごとに送信するパケットの量を指定します。
-N
フラグの後に「1」を指定して、同時パケット要求を明示的に無効にすることもできます。これは、短い TTL で UDP パケットをレート制限するゲートウェイがある場合に役立ちます。
最後に、traceroute のデフォルトの TTL 値を変更することもできます。これを行うには、-f
フラグの後に、最初のプローブ パケットに必要な TTL を追加します。
Linux での Traceroute プロトコルの変更
デフォルトでは、Linux のtraceroute はネットワーク ゲートウェイにプローブ パケットを送信するために UDP を使用します。これは、traceroute パケットをアクティブにブロックするゲートウェイを調査している場合に問題になる可能性があります。
これを修正するには、-T
フラグを使用して、単純な TCP SYN パケットを使用してtraceroute を実行します。
一方、宛先ゲートウェイが UDP のみを制限している場合は、traceroute に ICMP ECHO パケットの使用を強制することもできます。
Traceroute はカスタム ネットワーク インターフェイスもサポートしています。ここで、traceroute はマシン内の別のネットワーク カードを使用してパケットのパスを調査します。
これを行うには、-i
フラグの後にインターフェースのデバイス名を指定してプログラムを実行します。
それとは別に、-p
フラグを使用して、traceroute が UDP プローブに使用する開始ポート番号を指定できます。
最後に、-p
フラグも、使用しているプロトコルに応じて動作を変更します。 -I
と組み合わせると、-p
値が宛先ポートではなく初期 ICMP シーケンス番号として設定されます。
traceroute の使用方法を学ぶことは、ネットワーク上でコンピュータがどのように通信するかを理解するための最初のステップにすぎません。コンピュータ ネットワークについて詳しくは、tcpdump を使用して TCP パケットの内容を分析するをご覧ください。
一方、Linux の dig ツールを使用することで、DNS などの上位 OSI レイヤについてさらに詳しく学ぶこともできます。あ>
すべての変更とスクリーンショットは Ramces Red によるものです。
コメントを残す