私はこの分野の初心者で、他の同様の質問をたくさん見てみましたが、答えを見つけることができませんでした。
SoYouStart には 2 台のサーバーがあり、1 台のサーバーには HAProxy VM があります。両方のサーバーは Strongswan VPN トンネルで接続されています。また、HAProxy のポート 80、443、およびその他のポートをリッスンするフェイルオーバー IP もあります。
HAProxy VM1 ネットワーク構成:
iface eth0 inet static
address 192.168.100.2
netmask 255.255.255.224
network 192.168.100.0
broadcast 192.168.100.31
gateway 192.168.100.30
post-up ip addr add FAILOVER_IP dev $IFACE
pre-down ip addr del FAILOVER_IP dev $IFACE
ホスト サーバーでは、このルートを使用して、HAProxy VM でフェールオーバー IP を使用できるようにします。
ip route add FAILOVER_IP/32 via 192.168.100.2 dev vmbr1
すべては機能していますが、今度はサーバー 2 上のすべての VM のトラフィックを VPN トンネル経由でこのフェールオーバー IP にリダイレクトしたいと思います。
これらのルールを試しましたが、機能しません。
サーバー2:
iptables -t nat -A PREROUTING -i eth0 -d FAILOVER_IP -m connmark
--mark 0xE010E798 -j DNAT --to-destination 192.168.100.2
サーバー1:
iptables -t nat -A POSTROUTING -i eth0 -d 192.168.100.2/32
--match connmark --mark 0xE010E798 -j SNAT --to-source FAILOVER_IP
何が間違っているのか、誰か教えていただけませんか? 私の目標は、サーバー 2 に 2 番目の HAProxy インスタンスを作成し、内部トラフィックをアクティブな HAProxy インスタンスにリダイレクトすることです。
ありがとう。
答え1
答えが見つかりました。まず、マークがローカルマシンにのみ適用されることを知りませんでした。2番目の間違いは、送信元アドレスを変更するサーバー1でSNATを使用したことですが、宛先アドレスを再度変更する必要があり、インターフェイスを変更する必要がありました。私の作業ルールは次のとおりです。
サーバー2
iptables -t nat -A PREROUTING -i vmbr1 -p tcp -d FAILOVER_IP
-j DNAT --to-destination 192.168.100.2
サーバー 1
iptables -t nat -A PREROUTING -p tcp -d 192.168.100.2
-j DNAT --to-destination FAILOVER_IP