web-dev-qa-db-ja.com

パススルーロードバランサーとは何ですか?プロキシロードバランサーとどう違うのですか?

Google Cloud Networkロードバランサーはパススルーロードバランサーであり、プロキシロードバランサーではありません。 ( https://cloud.google.com/compute/docs/load-balancing/network/ )。

LBのパスで一般的にリソースを見つけることができません。 HAProxyとNginxはどちらもプロキシLBのようです。パススルーLBは、クライアントをサーバーに直接リダイレクトすることになると思います。どのようなシナリオでそれは有益でしょうか?

パススルーとプロキシ以外のタイプのロードバランサーはありますか?

16
Mohit Gupta

パススルーロードバランシングのリソースを見つけるのは困難です。パススルー、ダイレクトサーバーリターン(DSR)、ダイレクトルーティングなど、誰もが異なる呼び出し方法を考え出したからです。

ここではパススルーと呼びます。

私はそのことを説明しようとしましょう:

  • IPパケットは変更されずにVMに転送され、アドレスやポートの変換は行われません。

  • VMは、ロードバランサーIPが独自のIPの1つであると見なします。

    Compute Engineネットワーク負荷分散の特定のケース https://cloud.google.com/compute/docs/load-balancing/ :Linuxの場合、これはルートを追加することによって行われます。ネットワークインターフェイスにセカンダリIPを追加することにより、Windowsの「ローカル」ルーティングテーブルのこのIPに。

  • ルーティングロジックは、TCP接続またはUDP「接続」のパケットが常に同じVMに送信されるようにする必要があります。

    GCEネットワークLBについては、こちら https://cloud.google.com/compute/docs/load-balancing/network/target-pools#sessionaffinity を参照してください

他のロードバランサータイプに関しては、明確なリストはありません。いくつかの例を次に示します。

他の方法に対するパススルーの利点について:

  • SIPプロトコルなど、IPパケットのアドレスが変更されている場合、一部のアプリケーションは機能しないか、適応させる必要があります。 NAT https://en.wikipedia.org/wiki/Network_address_translation#NAT_and_TCP/UDP とうまく連携しないアプリケーションの詳細については、ウィキペディアを参照してください。 )。

    ここでの利点のパススルーは、送信元IPと宛先IPを変更しないことです。

    ロードバランサーが上位層で動作してIPを維持するためのトリックがあることに注意してください。ロードバランサーは、バックエンドに接続するときにクライアントのIPをスプーフィングします。この記事の執筆時点では、ComputeEngineでこの方法を使用する負荷分散製品はありません。

  • たとえば、TCPパラメータを調整するために、クライアントからのTCP接続をさらに制御する必要がある場合。これは、パススルーまたはNATがTCP(または上位層)プロキシよりも優れている点です。

13
Matt-y-er