Como fazer com que uma instância do OpenStack encaminhe a rota para outra máquina Linux que não seja uma instância do OpenStack, mas esteja na mesma 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.
Quero que PC_B chegue 10.26.14.16/25
via PC_A.
Nota: PC_B é uma instância OpenStack. Seu IP privado é 192.168.118.10/27 e o IP público é 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 tem 10.26.14.16/25
rota. PC_B não tem 10.26.14.16/25
rota. Quero que PC_B chegue 10.26.14.16/25
via PC_A.
Responder1
Se PC_B não tiver acesso direto à rede 192.168.1.*, a rota ausente precisará ser adicionada às configurações de rede OpenStack, e não ao PC_B como tal.
Responder2
Parece fácil, mas não é. Acredite em mim!
Configuração do lado do 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
Configuração do lado do cliente [PC_B]
PC_B é uma instância do Openstack. Seu IP privado é 192.168.118.10/27
e o IP público é 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 que SIOCADDRT: Network is unreachable
? Como já mencionei, o ip público do PC_B é 192.168.1.140/27
[OpenStack Instance] e seu ip privado é 192.168.118.10/27
.