Soy nuevo en esto y revisé muchas otras preguntas similares pero no pude encontrar una respuesta.
Tengo dos servidores en SoYouStart y en un servidor tengo una máquina virtual HAProxy. Ambos servidores están conectados con un túnel VPN de Strongswan. También tengo una IP de conmutación por error que escucha en HAProxy en los puertos 80, 443 y algunos otros.
Configuración de red 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
En el servidor host, uso esta ruta para que la IP de conmutación por error esté disponible en mi máquina virtual HAProxy.
ip route add FAILOVER_IP/32 via 192.168.100.2 dev vmbr1
Todo funciona, pero ahora me gustaría redirigir el tráfico a esta IP de conmutación por error a través de mi túnel VPN para todas las máquinas virtuales del servidor 2.
He probado estas reglas pero no funciona.
Servidor 2:
iptables -t nat -A PREROUTING -i eth0 -d FAILOVER_IP -m connmark
--mark 0xE010E798 -j DNAT --to-destination 192.168.100.2
Servidor 1:
iptables -t nat -A POSTROUTING -i eth0 -d 192.168.100.2/32
--match connmark --mark 0xE010E798 -j SNAT --to-source FAILOVER_IP
¿Alguien podría ayudarme a descubrir qué estoy haciendo mal? Mi objetivo es tener una segunda instancia de HAProxy en el servidor 2 y redirigir el tráfico interno a la instancia de HAProxy activa.
Gracias.
Respuesta1
Encontré la respuesta. En primer lugar, no sabía que esa marca sólo se aplica a la máquina local. El segundo error fue que usé SNAT en el Servidor 1, que cambia la dirección del remitente, pero necesitaba cambiar la dirección de destino nuevamente y tuve que cambiar la interfaz. Mis reglas de trabajo son
Servidor 2
iptables -t nat -A PREROUTING -i vmbr1 -p tcp -d FAILOVER_IP
-j DNAT --to-destination 192.168.100.2
Servidor 1
iptables -t nat -A PREROUTING -p tcp -d 192.168.100.2
-j DNAT --to-destination FAILOVER_IP