Google Cloud Networkロードバランサーはパススルーロードバランサーであり、プロキシロードバランサーではありません。 ( https://cloud.google.com/compute/docs/load-balancing/network/ )。
LBのパスで一般的にリソースを見つけることができません。 HAProxyとNginxはどちらもプロキシLBのようです。パススルーLBは、クライアントをサーバーに直接リダイレクトすることになると思います。どのようなシナリオでそれは有益でしょうか?
パススルーとプロキシ以外のタイプのロードバランサーはありますか?
パススルーロードバランシングのリソースを見つけるのは困難です。パススルー、ダイレクトサーバーリターン(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 を参照してください
他のロードバランサータイプに関しては、明確なリストはありません。いくつかの例を次に示します。
NAT。 iptablesの例はここにあります https://tipstricks.itmatrix.eu/use-iptables-to-load-balance-web-trafic/ 。
TCPプロキシ。 Google Cloud Platformでは、TCPプロキシ負荷分散 https://cloud.google.com/compute/docs/load-balancing/tcp-ssl/tcp-proxy
HTTPプロキシ。 Google Cloud Platformでは、HTTP(s)Load Balancing https://cloud.google.com/compute/docs/load-balancing/http/ を使用できます。
「DNSフォワーダー」と呼ばれるDNS。例:dnsmasq http://www.thekelleys.org.uk/dnsmasq/doc.html 、または「転送」モードでバインド https: //www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-caching-or-forwarding-dns-server-on-ubuntu-14-04
データベース通信プロトコル。たとえば、 https://github.com/mysql/mysql-proxy を使用したMySQLプロトコル
SIPプロトコル。ここに実装の大きなリスト https://www.voip-info.org/wiki/view/Open+Source+VOIP+Software#SIPProxies
他の方法に対するパススルーの利点について:
SIPプロトコルなど、IPパケットのアドレスが変更されている場合、一部のアプリケーションは機能しないか、適応させる必要があります。 NAT https://en.wikipedia.org/wiki/Network_address_translation#NAT_and_TCP/UDP とうまく連携しないアプリケーションの詳細については、ウィキペディアを参照してください。 )。
ここでの利点のパススルーは、送信元IPと宛先IPを変更しないことです。
ロードバランサーが上位層で動作してIPを維持するためのトリックがあることに注意してください。ロードバランサーは、バックエンドに接続するときにクライアントのIPをスプーフィングします。この記事の執筆時点では、ComputeEngineでこの方法を使用する負荷分散製品はありません。
たとえば、TCPパラメータを調整するために、クライアントからのTCP接続をさらに制御する必要がある場合。これは、パススルーまたはNATがTCP(または上位層)プロキシよりも優れている点です。