Herstellen einer Verbindung zum Host-Only-Netzwerk der virtuellen Maschine

508
Matt Hall

Ich habe ein Mac-Buch mit Mac OS High Sierra. Es ist Host für drei virtuelle Maschinen, auf denen Ubuntu 16.04 ausgeführt wird. Alle VMs verfügen über zwei aktivierte Adapter. NAT und Host-Only. Der Mac ist über einen Switch mit einem anderen Host verbunden. Die VMs koordinieren und stellen einen Dienst bereit, den ich dem Host am anderen Ende des an meinem Laptop angeschlossenen Switch zur Verfügung stellen möchte.

 en8  192.168.57.0 192.168.57.200 192.168.57.100 /---|VM1| 192.168.56.3 |------------| /--------------\ |--------------| / | Host1 |--| switch |--| Host2 |------|VM2| 192.168.56.4 |------------| \--------------/ |--------------| \ 192.168.56.1 \---|VM3| 192.168.56.5 vboxnet0 

Die Hosts befinden sich im Subnetz 192.168.57.0\24. Der Laptop ist über eine Schnittstelle en8mit der IP-Adresse von an den Switch angeschlossen 192.168.57.100. Der Laptop und der Switch können sich gegenseitig pingen.

Mac OS ist über eine Gateway- 192.168.56.1Schnittstelle mit den VMs verbunden vboxnet0. Die VMs können sich gegenseitig und ihren Host pingen. Der Host kann mit jeder VM kommunizieren.

Ich möchte, dass die VMs den Switch steuern können, und ich muss eine Routing-Regel einrichten, um den Verkehr vom Switch zu den VMs und zurück zu verbinden. Ich möchte meinen Mac als Router dafür verwenden.

Ich habe folgendes Beispiel von Jeff Warren ausprobiert: Virtualbox: Host-Only-Netzwerke auf separaten Hosts verbinden, aber es funktioniert in meinem Fall nicht.

Konkret habe ich versucht ...

sudo route -n add -net 192.168.56.0/24 192.168.57.100 

aber das hat nicht funktioniert. Ich habe eine Nachricht erhalten, dass Datei bereits vorhanden ist.

Alle Ideen, wie ich meinen Switch von den VMs aus konfigurieren kann, werden sehr geschätzt. Vielen Dank.

Ich habe andere Ansätze ausprobiert, beispielsweise die VMs in demselben logischen Subnetz wie die Switches zu platzieren. Als ich dies jedoch tat, verlor ich die Kommunikation zwischen den VMs und ihrem Host. Ich habe auch versucht, ein Bridged-Netzwerk anstelle eines Hosts zu verwenden, aber das hat auch nicht funktioniert.

0

1 Antwort auf die Frage

1
Carlos Mendioroz

Angenommen, die 192.168.56.0/24-Schnittstellen auf den VMs sind ausschließlich Hosts (dh nicht NAT).

Sie benötigen keine Routen auf Ihrem MAC (host2), da dies die einzige Route ist, die eine direkte Verbindung zu beiden / 24-Ports aufweist. Sie benötigen Ihre VMs, um den Switch zu erreichen, und den Switch, um auch zu den VMs zu gelangen.

Auf den VMs sollte "ip route add 192.168.57.0/24 über 192.168.56.1" den Trick erfüllen.

Auf dem Switch ... welche Syntax auch immer benötigt wird, um den host2 zum Standard-Gateway zu machen (@ 192.168.57.100)

Vielen Dank, ich habe die IP-Routenregel auf meiner VM hinzugefügt, aber ich bekomme ein Ziel, das nicht erreichbar ist, wenn ich 192.168.57.100 ping. Ich habe versucht, die Regel so zu ändern, dass sie von .57 über 192.168.56.1 an die Route weitergeleitet wird. Ich denke, meine VMs können den Host über diese Adresse erreichen, aber wenn ich dies tue, bekomme ich `RTNETLINK-Antworten: Netzwerk ist nicht erreichbar '. Ich habe allerdings das Gateway des Switches auf 192.168.57.100 geändert. Matt Hall vor 6 Jahren 0
Entschuldigung, ja, mein Tippfehler. Es hätte "via 192.168.56.1" sein sollen. Was zeigt eine "ip route ls" auf den VMs? Carlos Mendioroz vor 6 Jahren 0
Ihr MAC (host2) muss auch bereit sein, den Verkehr weiterzuleiten (dh die Route). Es kann gerade genug sein, um "1> / proc / sys / net / ipv4 / ip_forward" zu bestätigen, oder es müssen Firewallregeln gesucht werden, wenn Sie diese haben. Carlos Mendioroz vor 6 Jahren 0
Ich habe die schlechte Regel gelöscht, `ip route ls` ist jetzt ...` standardmäßig über 10.0.3.2 dev enp0s8 proto static metric 100 NEWLINE 10.0.3.0/24 dev enp0s8 proto kernel scope link src 10.0.3.15 metric 100 NEWLINE 169.254.0.0 / 16 dev enp0s8 scope link metric 1000 NEWLINE 192.168.57.0/24 dev enp0s3 proto kernel scope link src 192.168.57.3 metric 100` Ich habe versucht, die Formatierung ein wenig für die Kommentare zu säubern, aber ich bin mir nicht sicher, ob es so sehr geholfen hat Matt Hall vor 6 Jahren 0
Die Weiterleitung wurde auf dem Mac mit `sysctl -w net.inet.ip.forwarding = 1 'aktiviert Matt Hall vor 6 Jahren 0
Hmm, "192.168.57.0/24 dev enp0s3 proto kernel scope link src 192.168.57.3" klingt wie diese VM hat IP 192.168.57.3 und nicht 192.168.56.3? Carlos Mendioroz vor 6 Jahren 0
Du hast absolut recht. Ich hatte meine VMs im falschen Netzwerk. Ich habe sie alle wieder auf 192.168.56.0/24 umgestellt und jetzt hat alles funktioniert, was Sie gesagt haben! Vielen Dank. Matt Hall vor 6 Jahren 0