VPNトンネルを介してパブリックIPをリダイレクトする方法

VPNトンネルを介してパブリックIPをリダイレクトする方法

私はこの分野の初心者で、他の同様の質問をたくさん見てみましたが、答えを見つけることができませんでした。

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

関連情報