web-dev-qa-db-ja.com

レイヤー7ロードバランサーの構成でクライアント構成の変更が不要なのはなぜですか?

たとえば、haproxy(レイヤー7)の負荷分散の場合、VIP(つまり、クラスターIP)の背後にある「実サーバー」または「バックエンド」を構成するだけで済みます。例えば:

listen smtp 192.168.3.10:25
        mode tcp
        balance roundrobin
        server smtp1 192.168.3.1:25 check
        server smtp1 192.168.3.2:25 check

ただし、lvs(レイヤー4)では、次のいずれかを行う必要があります。

  1. 「NATルーティング」を実装するルーターとしてlvsマシンを設定します
  2. lvsマシンとバックエンドには、バックエンドでいくつかのARPmodを使用して構成されたVIP

レイヤー7の負荷分散は、より複雑な構成なしでこれをどのように実行しますか?私はここで基本的な何かを誤解したり見落としたりしていますか?

2

LVSを使用すると、ネットワークトラフィックは基本的にクライアントからバックエンドサーバーに直接送信されます。ここに3番目のホスト(半透過的)を含めることは、通常のネットワーク構成ではありません。そのため、実装がかなり困難です。

Haproxyを使用すると、ネットワークトラフィックはクライアントからhaproxyに移動し、次にhaproxyからサーバーに移動します。サーバーに関する限り、haproxyは単なる別のクライアントです。これは通常のネットワーク設定であるため、設定するネットワーク層の複雑さはありません(ただし、X-Forwarded-Forヘッダーなどのレイヤー7の複雑さはあります)。また、haproxyマシンがSPOFであり、Webサイトへの総トラフィックを処理できる必要があることも意味します。

7
devicenull