Wie kann man eine OpenStack-Instanz dazu bringen, die Route an eine andere Linux-Maschine weiterzuleiten, die keine OpenStack-Instanz ist, sich aber im selben LAN befindet?
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.
Ich möchte, dass PC_B über PC_A erreicht wird 10.26.14.16/25
.
Hinweis: PC_B ist eine OpenStack-Instanz. Die private IP ist 192.168.118.10/27 und die öffentliche IP ist 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 hat 10.26.14.16/25
eine Route. PC_B hat keine 10.26.14.16/25
Route. Ich möchte, dass PC_B über PC_A ankommt 10.26.14.16/25
.
Antwort1
Wenn PC_B keinen direkten Zugriff auf das Netzwerk 192.168.1.* hat, muss die fehlende Route den OpenStack-Netzwerkeinstellungen hinzugefügt werden, nicht in PC_B als solches.
Antwort2
Sieht einfach aus, ist es aber nicht. Glauben Sie mir!
Serverseitige Konfiguration [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
Clientseitige Konfiguration [PC_B]
PC_B ist eine Instanz von OpenStack. Seine private IP ist 192.168.118.10/27
und seine öffentliche IP ist 192.168.1.140/27
.
Problem:
[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
Warum SIOCADDRT: Network is unreachable
? Wie ich bereits erwähnt habe, ist die öffentliche IP von PC_B 192.168.1.140/27
[OpenStack-Instanz] und seine private IP ist 192.168.118.10/27
.