
Escenario deseado: una pequeña subred de máquinas Linux, todas accesibles a través de otra máquina Linux (que actúa como un enrutador IP). Estas máquinas estarían preconfiguradas con direcciones en una red privada (192.168.xx o 10.xxx). Sin embargo, se podría acceder a cada uno a través de la máquina de enrutamiento con direcciones IP públicas, una para cada uno, configuradas en la máquina de enrutamiento.
Esto sería similar a NAT o enmascaramiento de IP, pero con direcciones IP públicas separadas. (Es aceptable suponer que la red pública tendrá una dirección de puerta de enlace: enrutador externo).
Parece que esto debería ser posible con la traducción de direcciones, pero no sé cómo configurarlo. No puedo encontrar nada buscando.
¿Se puede configurar esto y, de ser así, cómo?
Respuesta1
Suponiendo que IP_EXT1
y IP_EXT2
son las direcciones IP externas para las máquinas #1 y #2, respectivamente, y IP_INT1
sus IP_INT2
respectivas direcciones IP internas.
IP_EXT1
y IP_EXT2
de hecho son direcciones de la máquina de enrutamiento, ya sean alias para la misma interfaz de red o dos interfaces distintas.
Entonces, la configuración de iptables en la máquina de enrutamiento debería ser tan simple como (no probada):
iptables -t nat -A POSTROUTING --destination $IP_EXT1 -j DNAT --to-destination $IP_INT1
iptables -t nat -A POSTROUTING --source $IP_INT1 -j SNAT --to-source $IP_EXT1
iptables -t nat -A POSTROUTING --destination $IP_EXT2 -j DNAT --to-destination $IP_INT2
iptables -t nat -A POSTROUTING --source $IP_INT2 -j SNAT --to-source $IP_EXT2