如何透過VPN隧道重新導向公共IP

如何透過VPN隧道重新導向公共IP

我對此很陌生,我瀏覽了許多其他類似的問題,但找不到答案。

我在 SoYouStart 有兩台伺服器,在一台伺服器上有一個 HAProxy VM。兩台伺服器均透過 Strongswan VPN 隧道連線。我還有一個故障轉移 IP,它在連接埠 80、443 和其他幾個連接埠上偵聽 HAProxy。

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

在主機伺服器上,我使用此路由使故障轉移 IP 在我的 HAProxy VM 上可用。

ip route add FAILOVER_IP/32 via 192.168.100.2 dev vmbr1

一切正常,但現在我想透過伺服器 2 上所有虛擬機器的 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 上擁有第二個 HAProxy 實例,並將內部流量重定向到活動 HAProxy 實例。

謝謝。

答案1

找到了答案。首先我不知道mark只適用於本機。第二個錯誤是我在伺服器 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

相關內容