Linux как маршрутизатор для пересылки

Linux как маршрутизатор для пересылки

Как заставить экземпляр OpenStack перенаправлять маршрут на другую машину Linux, которая не является экземпляром OpenStack, но находится в той же локальной сети?

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.

Я хочу, чтобы ПК_Б соединялся 10.26.14.16/25через ПК_А.

Примечание: PC_B — это экземпляр OpenStack. Его частный IP-адрес — 192.168.118.10/27, а публичный IP-адрес — 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 есть 10.26.14.16/25маршрут. У PC_B нет 10.26.14.16/25маршрута. Я хочу, чтобы PC_B достигал 10.26.14.16/25через PC_A.

решение1

Если у PC_B нет прямого доступа к сети 192.168.1.*, то отсутствующий маршрут необходимо добавить в сетевые настройки OpenStack, а не в PC_B как таковой.

решение2

Кажется, что это легко, но это не так. Поверьте мне!

Конфигурация на стороне сервера [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

Конфигурация на стороне клиента [PC_B]

PC_B — это экземпляр Openstack. Его частный IP — 192.168.118.10/27, а публичный IP — 192.168.1.140/27.

Проблема:

[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

Почему SIOCADDRT: Network is unreachable? Как я уже упоминал, публичный IP-адрес PC_B — 192.168.1.140/27[OpenStack Instance], а его частный IP-адрес — 192.168.118.10/27.

Связанный контент