Ich kann von einem Computer in einem anderen Subnetz nicht auf eine Webanwendung zugreifen, die auf einer von KVM gehosteten virtuellen Maschine ausgeführt wird.
Ich möchte also von der Maschine 192.168.1.2 (oben rechts im grünen Kreis) auf eine Webanwendung zugreifen, die auf der virtuellen Maschine 192.168.10.1 (unten in der Mitte im roten Kreis) läuft.
Ich habe eine statische Route auf dem Netgear-Router hinzugefügt, damit alle Anfragen an 192.168.10.0/24 an die Hostmaschine 192.168.1.1 weitergeleitet werden.
Der Hostcomputer selbst verfügt über eine statische Route, um Anfragen über die vmbr1-Bridge-Schnittstelle an 192.168.10.0/24 weiterzuleiten.
- Ein Telnet auf Port 80 schlug von 192.168.1.2 aus fehl, war jedoch vom Hostcomputer 192.168.1.1 aus erfolgreich.
- Ein Ping-Anruf an die virtuelle Maschine funktioniert von 192.168.1.2 Maschine zu VM
- Ein Traceroute schlägt fehl, aber wenn ich die Option -I hinzufüge, funktioniert Traceroute auch.
Vielen Dank im Voraus für Ihre Hilfe oder Hinweise.
PS: Ich möchte klarstellen, dass es auch bei deaktivierter Firewall nicht funktioniert.
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Traceroute von der physischen Maschine 192.168.1.2 zur VM-Maschine 192.168.10.1 => KO
traceroute to 192.168.10.1 (192.168.10.1), 30 hops max, 60 byte packets
1 192.168.1.254 (192.168.1.254) 2.390 ms 3.004 ms 3.436 ms
2 * * *
3 * * *
...
30 * * *
Traceroute von VM-Maschine 192.168.1.2 zur physischen Maschine 192.168.10.1 => OK
traceroute to 192.168.1.2 (192.168.1.2), 30 hops max, 60 byte packets
1 192.168.10.254 (192.168.10.254) 0.846 ms 0.648 ms 0.519 ms
2 192.168.1.2 (192.168.1.2) 5.447 ms 5.277 ms 4.977 ms
Ein Ping von der Maschine 192.168.1.2 zur VM-Maschine 192.168.10.1:
ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
From 192.168.1.254: icmp_seq=1 Redirect Host(New nexthop: 192.168.1.1)
From 192.168.1.254 icmp_seq=1 Redirect Host64 bytes from 192.168.10.1: icmp_seq=1 ttl=63 time=2.77 ms
From 192.168.1.254: icmp_seq=2 Redirect Host(New nexthop: 192.168.1.1)
From 192.168.1.254 icmp_seq=2 Redirect Host64 bytes from 192.168.10.1: icmp_seq=2 ttl=63 time=2.56 ms
Auf dem Hostcomputer sind die Routen gut definiert und von diesem Hostcomputer aus kann ich problemlos auf die Webanwendungen von VMs zugreifen.
IP-Route anzeigen
default via 192.168.1.254 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1
192.168.10.0/24 dev vmbr10 proto kernel scope link src 192.168.10.254
192.168.20.0/24 dev vmbr20 proto kernel scope link src 192.168.20.254
BEARBEITEN
Wenn ich die 192.168.1.2-Maschine (Quellmaschine) direkt mit einem RJ45-Kabel an den Router anschließe, funktioniert es. Vorher war 192.168.1.2 über WLAN mit dem Router verbunden. Ich denke also, dass es ein Problem mit diesem Router ist, der die statische Route nicht richtig auf über WLAN verbundene Maschinen anwendet. Ich weiß nicht, warum, aber das ist komisch :S
Antwort1
Ihr Problem liegt daran, dass Sie einen Router mit zwei Schnittstellen im selben Subnetz 192.168.1.0/24 verwenden.
Die Maschine 192.168.1.2 sendet Pakete an ihr Standard-Gateway. Ich gehe davon aus, dass es 192.162.1.254 ist, also der Router.
Da der Router jedoch feststellt, dass der nächste Hop für das Paket eine andere IP im selben Subnetz ist, generiert er die Umleitung, die Sie in der Ping-Ausgabe sehen.
Sie müssen den Router als Bridge oder Switch ausführen, d. h. es werden keine Routen benötigt, da sich KVM 192.168.1.1 und Client 192.168.1.2 beide im selben Subnetz befinden und für die Kommunikation kein Routing-Protokoll benötigen.
Dies bedeutet auch, dass das richtige Standard-Gateway für den Client 192.168.1.2 KVM 192.168.1.1 sein sollte.
Außerdem müssen Sie bestätigen, dass Sie das richtige Standard-Gateway für den KVM verwenden. Ist es wirklich der Router? Bietet der Router dem KVM oder Client Zugriff auf andere Subnetze als die hier angegebenen?