¿Cómo hacer que una instancia de OpenStack reenvíe la ruta a otra máquina Linux que no sea una instancia de OpenStack pero esté en la misma LAN?
PC_A has 192.168.1.133/27.
PC_B has 192.168.1.140/27.
PC_A has 10.26.14.16/25 route.
PC_B has no 10.26.14.16/25 route.
Quiero que PC_B llegue 10.26.14.16/25
a través de PC_A.
Nota: PC_B es una instancia de OpenStack. Su IP privada es 192.168.118.10/27 y la IP pública es 192.168.1.140/27.
FW----------PC_A--------------PC_B
[192.168.1.133/27] [192.168.1.140/27] Public IP of B
[192.168.118.10/27] Private IP of B
PC_A tiene 10.26.14.16/25
ruta. PC_B no tiene 10.26.14.16/25
ruta. Quiero que PC_B llegue 10.26.14.16/25
a través de PC_A.
Respuesta1
Si PC_B no tiene acceso directo a la red 192.168.1.*, entonces la ruta que falta debe agregarse a la configuración de red de OpenStack, no a PC_B como tal.
Respuesta2
Parece fácil pero no lo es. ¡Créeme!
Configuración del lado del servidor [PC_A]
[PC_A ~]# nano /etc/sysctl.conf
net.ipv4.ip_forward = 1
[PC_A ~]# iptables -t nat -A POSTROUTING ! -d 192.168.1.127/27 -o ens160 -j MASQUERADE
Configuración del lado del cliente [PC_B]
PC_B es una instancia de Openstack. Su IP privada es 192.168.118.10/27
y la IP pública es 192.168.1.140/27
.
Problema:
[PC_B ~]$ sudo route add default gw 192.168.1.133 eth0
SIOCADDRT: Network is unreachable
[PC_B ~]$ route
default host-192-168-10 0.0.0.0 UG 0 0 0 eth0
192.168.118.0 0.0.0.0 255.255.255.240 U 0 0 0 eth0
Por qué SIOCADDRT: Network is unreachable
? Como ya mencioné, la IP pública de PC_B es 192.168.1.140/27
[Instancia OpenStack] y su IP privada es 192.168.118.10/27
.