![如何透過VPN隧道重新導向公共IP](https://rvso.com/image/697028/%E5%A6%82%E4%BD%95%E9%80%8F%E9%81%8EVPN%E9%9A%A7%E9%81%93%E9%87%8D%E6%96%B0%E5%B0%8E%E5%90%91%E5%85%AC%E5%85%B1IP.png)
我對此很陌生,我瀏覽了許多其他類似的問題,但找不到答案。
我在 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