Linux como roteador para encaminhar

Linux como roteador para encaminhar

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/25via 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/25rota. PC_B não tem 10.26.14.16/25rota. Quero que PC_B chegue 10.26.14.16/25via 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/27e 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.

informação relacionada