我是新手,我已经查看了许多其他类似的问题,但我找不到答案。
我在 SoYouStart 有两台服务器,在一台服务器上我有一个 HAProxy 虚拟机。两台服务器都通过 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
一切正常,但现在我想通过我的 VPN 隧道为服务器 2 上的所有 VM 将流量重定向到此故障转移 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 上使用了 SNAT,它更改了发件人地址,但我需要再次更改目标地址,我不得不更改接口。我的工作规则是
服务器 2
服务器 1