Я новичок в этом, и я просмотрел много других подобных вопросов, но не смог найти ответа.
У меня есть два сервера в SoYouStart и на одном сервере виртуальная машина HAProxy. Оба сервера подключены к VPN-туннелю Strongswan. У меня также есть резервный IP-адрес, который прослушивает HAProxy на портах 80, 443 и некоторых других.
Конфигурация сети 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.
ip route add FAILOVER_IP/32 via 192.168.100.2 dev vmbr1
Все работает, но теперь я хотел бы перенаправить трафик на этот IP-адрес аварийного переключения через мой VPN-туннель для всех виртуальных машин на сервере 2.
Я пробовал эти правила, но они не работают.
Сервер 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
Пожалуйста, может кто-нибудь помочь мне понять, что я делаю не так? Моя цель - иметь второй экземпляр HAProxy на сервере 2 и перенаправлять внутренний трафик на активный экземпляр HAProxy.
Спасибо.
Нашел ответ. Прежде всего, я не знал, что этот знак применяется только к локальной машине. Вторая ошибка заключалась в том, что я использовал SNAT на сервере 1, который меняет адрес отправителя, но мне нужно было снова изменить адрес назначения, и мне пришлось изменить интерфейс. Мои правила работы
Сервер 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