
そうですね...私は、ネットワーク、負荷分散、トンネリング、VPN 接続に関してはプロではありませんが、この理論的な概念を実現するためにいくつかのことを試してみましたが、当然ながら成功しませんでした。
私が実現しようとしていること: パブリック VPN を作成し (インターネットからの外部接続に開放)、クライアントをロード バランサ サーバーに接続して、同じネットワーク内になくインターネット経由でのみアクセス可能なバックエンド サーバーへの最小接続に基づいてトラフィックを転送し (残念ながらこれを変更する方法はありません)、クライアントに直接応答 (DSR) させて、帯域幅がロード バランサではなく主にバックエンド ノードで発生するようにし、ロード バランサにボトルネックが発生しないようにします。
そこで私のアイデアは、次のとおりです。ホスティング会社がプライベート ネットワークを提供していないため、負荷分散のために複数のサーバーをリモートで接続する必要があります。そのため、テスト目的で以下を作成しました。
- 内部VPNサーバーとしても機能するロードバランサーサーバーは、サーバーをプライベートに接続して同じサブネットに配置するために必要だと考えました。
- 最初の外部 VPN サーバー ノードは、ロード バランサー サーバーの「背後」にあります。つまり、ロード バランサーに接続し、トラフィックを「最小接続」を使用してノードの 1 つに転送し、その後、すべての帯域幅がロード バランサーで再び発生しないように、ノードをクライアントに直接接続します (Direct Server Return)。
- 仮想 IP (10.8.0.250)
VPN を正常に作成し、ノードを接続すると、次の IP が得られます。
10.8.0.1 (Load Balancer and internal VPN Server)
10.8.0.10 (First external VPN Server node)
ロード バランサーで IP 転送を有効にし、次の DNAT エントリを作成しました。
sudo iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1194 -j DNAT --to-destination 10.8.0.250
そして次の IPVS エントリ:
ipvsadm -A -u 10.8.0.250:1194 -s wlc
ipvsadm -a -u 10.8.0.250:1194 -r 10.8.0.10:1194 -g -w 1
また、外部 VPN サーバー ノードのループバック インターフェイスに仮想 IP を追加して、仮想 IP に着信するトラフィックを受け入れるようにしました。
基本的に私がやったことはそれですが、うまくいきません。
ここでの質問は、これがうまくいく可能性はあるのでしょうか、それとも私がやっている方法では不可能なことを試みているだけなのでしょうか。もしそうなら、サーバーはインターネット経由でのみ接続され、同じプライベート ネットワーク上でそれらをグループ化する方法がないことを考えると、これを行う最善の方法は何でしょうか。
ヒントがあればよろしくお願いします!