Linuxをルーターとして利用する

Linuxをルーターとして利用する

OpenStack インスタンスが、OpenStack インスタンスではないが同じ LAN 内にある別の Linux マシンにルートを転送するようにするにはどうすればよいですか?

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.

PC_B が PC_A 経由でアクセスできるようにしたいです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 が PC_A 経由でアクセスできるようにします10.26.14.16/25

答え1

PC_B が 192.168.1.* ネットワークに直接アクセスできない場合は、不足しているルートを PC_B 自体ではなく、OpenStack ネットワーク設定に追加する必要があります。

答え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? すでに述べたように、PC_B のパブリック IP は192.168.1.140/27[OpenStack インスタンス] であり、プライベート IP は です192.168.118.10/27

関連情報