No he podido encontrar una solución hasta el momento. No tengo mucha experiencia en IPTables, por lo que agradeceré cualquier soporte que pueda brindarme.
Tengo un servidor con algunas máquinas virtuales allí. El nodo principal tiene una IP remota y una subred. Cada VM se crea utilizando la virtualización de Linux y una red enrutada, y se le asigna una IP local. Luego estoy usando tablas de IP para asignarles una IP remota reenviando todo el tráfico desde su IP remota dedicada a su IP local. Esto parece funcionar en su mayor parte, pero parece que cualquier tráfico que se envía desde cada VM proviene de la IP principal del nodo en lugar de la IP remota que he reenviado a la VM.
Aquí están mis reglas de IPTables:
iptables -t nat -A POSTROUTING -s 192.168.123.0/24 ! -d 192.168.123.0/24 -j MASQUERADE
iptables -A FORWARD -d 192.168.123.0/24 -o virbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 192.168.123.0/24 -i virbr1 -j ACCEPT iptables -A FORWARD -i virbr1 -o virbr1 -j ACCEPT
Y luego para cada VM:
iptables -t nat -A PREROUTING -d {Their-remote-IP} -j DNAT --to-destination 192.168.123.3
iptables -A FORWARD -p tcp -d 192.168.123.3 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m udp -p udp -d 192.168.123.3 -j ACCEPT
iptables -A FORWARD -m icmp -p icmp -d 192.168.123.3 -j ACCEPT
Configuración de ejemplo
Primary Node IP: X.X.X.172
Additional IP X.X.X.173 1 (NATed to VM 1) to local address 192.168.123.2
Additional IP X.X.X.174 1 (NATed to VM 2) to local address 192.168.123.3
Additional IP X.X.X.175 1 (NATed to VM 3) to local address 192.168.123.4
Sin embargo, todo el tráfico saliente de las máquinas virtuales sale a través de XXX172.
Cualquier sugerencia que pueda brindar será muy apreciada.
Respuesta1
Eso es exactamente lo que MASQUERADE
hace: anula la dirección de origen original con la dirección de la interfaz a través de la cual el paquete está a punto de salir. Si desea conservar la dirección original, no utilice enmascaramientos.