
トレースルートは、アプリケーションサーバーとデータベースの間にあるロードバランサーを検出できますか? アプリケーションサーバーからデータベースへのトレースルートを実行した後、ホップは1つしか受信しませんでした。ホップは宛先データベースでした。
答え1
まず、些細なケースから始めましょう。トレースルートした IP は実際にはロード バランサーに属していないと想定します。これが最も一般的なケースです。
これを省略すると、ルーティング (転送) パス上にあるロード バランサを検出しようとすることになります。これらはネットワーク ロード バランサ (NLB) と呼ばれます。traceroute は、パケット内の TTL フィールドを減少させる特定の種類のデバイスのみを認識します。一般的なルーターはこれを行いますが、NLB は多くの場合これを行いません。
その結果、traceroute だけを見ても、途中に NLB があったかどうかを確実に判断することはできません。
答え2
短い答え: いいえ。
長い答え:
traceroute
は検出することを目的としていますrouter
。これらは、ある IP サブネット (IP + MASK はサブネットを指定します) から別の IP サブネットにトラフィックを転送するために使用されます。
ロードバランサーは、クライアントに対して透過的であることを目的としています。つまり、トラフィックを取得して、それをいずれかの宛先に転送します。そのため、クライアントにとっては、毎回同じサーバーに到達しているように見えますが、バックグラウンドでは、いくつかの理由 (負荷分散、高可用性など) により、要求が 2 つ以上のサーバーに分散されます。
特定のコンステレーションでは、次のようになります。
user-client <-> application server <-> database
ユーザー クライアントはアプリケーション サーバーからリソースを要求しますが、アプリケーション サーバーはデータベースのクライアントであり、ユーザー クライアントそのものではありません。したがって、基本的に、ユーザー クライアントの観点からは、アプリケーション サーバーの背後にあるデータベースを見ることはできません。
このコンステレーションを自分で構築していない場合は、確信が持てません。Wireshark
/tcpdump を使用して MAC アドレスを分析し、トラフィックの送信元を確認することができます。
答え3
ロード バランサはデータベース接続用ですか? ロード バランサの IP に ping を実行し、データベースにも直接 ping を実行できますか? 複数の DB がありますか?
また、LAN 接続について話しているのでしょうか、それともアプリケーション サーバーと DB は少なくとも同じサブネット (パブリックまたはプライベート) 上にあるのでしょうか。DB またはロード バランサー以外のホップを想定していないことを確認してください。
詳細情報がなければ具体的に回答するのは難しいですが、ロード バランサー IP への traceroute を実行している場合は、そこで終了する必要があります。データベース IP に直接 traceroute を実行している場合は、そこが traceroute の宛先になります。
ほとんどのデータベース ロード バランサーは実際にはプロキシであると考えられるため、入力した IP がロード バランサーである場合、「データベースへの」 traceroute はロード バランサーにヒットする可能性があります。