
Ich führe eine virtuelle Maschine auf einem Host aus, der fest mit meinem LAN verbunden ist. Der Host wird in meinem lokalen Netzwerk angezeigt (wie auch die anderen Hosts, die über WLAN verbunden sind), der VM-Gast jedoch nicht. Ursprünglich lag das daran, dass der VM-Gast per NAT vom Host verbunden war. Der VM-Gast konnte das Internet und andere Server in meinem LAN erreichen, andere Server konnten ihn jedoch nicht erreichen. Das macht Sinn. Ich möchte, dass die Gast-VM im Netzwerk angezeigt wird, als ob sie wie der Host direkt fest mit ihm verbunden wäre. Ich kann beim besten Willen nicht herausfinden, was ich übersehe.
Ich habe ein einfaches Heimnetzwerk eingerichtet. Es sieht wie im folgenden Bild aus:
- Netgear Nighthawk WLAN/Router
- Intel NUC-Host fest mit dem Router verdrahtet
- Ubuntu Server-Betriebssystem
- KVM/QEMU-Virtualisierung
Ich habe die VM zunächst mit der NAT-Konfiguration wie folgt eingerichtet (das Standardnetzwerk ist das überbrückte NAT-Netzwerk):
Das oben genannte hat prima funktioniert, aber ich konnte die VMs erneut nicht von anderen Geräten im LAN aus erreichen (weil die VMs per NAT verbunden waren).
Ich habe dann versucht, eine geroutete Konfiguration einzurichten, sodass jede VM ihre eigene IP erhält und Folgendes tun kann:
- das Internet erreichen
- von anderen Hosts im LAN erreichbar sein
Ich habe versucht, so etwas wie das hier zu tun:
Ich habe wie folgt ein neues virtuelles Netzwerk erstellt:
Mit dem obigen Setup kann die VM jedoch nicht auf das Internet zugreifen und ist von anderen Hosts im Netzwerk aus nicht erreichbar. Das ist fast so, als ob ich die Dinge irgendwie in einer DMZ hinter dem Host eingerichtet hätte.
Nach allem, was ich gelesen habe, sollte das Einrichten der Routed-Konfiguration (über virbr3 wie im obigen Bild) ein virtuelles Netzwerk vom Typ „Routed“ auf dem Host erstellen, das dazu führt, dass der Host einfach durchgelassen wird. Ich kann in der ARP-Tabelle des Hosts sehen, dass er über den VM-Gast Bescheid weiß:
Wenn ich mich bei meinem Netgear-Router anmelde, würde ich erwarten, dass der VM-Gast als kabelgebundene Verbindung aufgeführt wird, aber er wird nicht aufgeführt. Ich habe versucht, in den Router zu gehen und manuell eine reservierte IP-Adresse für die IP des VM-Gasts (und die MAC-Adresse des VM-Gasts) hinzuzufügen, da ich dachte, dass Netzwerkanforderungen für diese IP entsprechend weitergeleitet würden, aber das werden sie nicht. Es ist fast so, als ob der Host die VM kennt, aber die Routen nicht richtig ankündigt, und der Router die Gast-VM nicht kennt, sodass der Router nicht weiß, wohin er sie senden soll, wenn ich versuche, die IP des Gasts von einem anderen Host im LAN aus anzupingen? Irgendwelche Vorschläge, wie man das beheben kann?
BEARBEITEN
Mir ist aufgefallen, dass ein fehlender Schritt darin bestand, meinem NetGear-Router eine statische Route hinzuzufügen, damit er weiß, wohin Anfragen an die mit VMs verknüpften IP-Adressen weitergeleitet werden sollen (über das eth0-Gateway). Jetzt kann ich die VMs von anderen Hosts im Netzwerk aus anpingen, was ein großer Fortschritt ist. Das einzige verbleibende Problem ist, dass die VMs jetzt nicht mehr auf das Internet (z. B. google.com) zugreifen können.
BEARBEITEN 2
Die Ausgabe traceroute google.com
auf der Gast-VM lautet wie folgt:
192.168.100.1 ist das lokale Gateway.
192.168.1.1 ist, glaube ich, mein drahtloses Gateway. Ich rufe es auf, weil es auf dem Host und auf meinem Mac, der ebenfalls mit dem LAN verbunden ist, als Standard-Gateway angezeigt wird.