Konfigurieren von Ubuntu vmware guest NAT

9

Ich habe einen Windows-Host, auf dem die Ubuntu-Gast-VM über vmplayer ausgeführt wird. Diese virtuelle Maschine wird geklont, auf mehrere Personen verteilt (unter Windows-Hosts) und für die Durchführung eines Programmierworkshops verwendet. Ich versuche - und scheitere bisher -, ein Netzwerk einzurichten, um die folgenden Anforderungen zu erfüllen:

  1. Der Gast muss Zugang zum Internet haben
  2. Alle Klone sollten den gleichen Hostnamen haben (sagen wir, Workshop soll konkret sein)
  3. Das Host-System muss über diesen Namen auf seinen jeweiligen Gast zugreifen können (z. B. würde ping Workshop den Gast anpingen, der auf diesem Host ausgeführt wird, und keinen anderen Klon).

Was ich bisher versucht habe:

  • Einen NAT-Netzwerkadapter für den Gast "installiert"
  • Es wurde versucht, den Gast über DHCP in / etc / network / interfaces zu verbinden :

    auto eth0
    iface eth0 inet dhcp
       hostname Workshop
    

Das funktioniert, wenn es um die Verbindung zum Internet geht. Ich kann jedoch vom Host aus überhaupt keine Verbindung zum Gast herstellen. (ZB funktioniert Ping Workshop nicht; wenn ich die von ifconfig zurückgegebene Adresse verwende , funktioniert es auch nicht vom Host).

  • Ich habe dann versucht, dem Gast eine statische Adresse zuzuweisen:

    auto eth0
    iface eth0 inet static
         address 172.241.0.101
         netmask 255.255.0.0
         gateway 172.241.0.100
    

(172.241.0.100 ist die Adresse, die dem Host vom VMWare Network VMNet8-Adapter statisch zugewiesen wurde - das ist der oben genannte NAT-Adapter). Jetzt kann ich 172.241.0.101 anpingen und vom Host aus telneten . Ich kann auch vom Gast aus Ping und Telnet an 172.241.0.100 (den Host) senden, aber das war es auch schon - es besteht keine Verbindung zum weiteren Netzwerk. (Ich kann auch nicht über seinen Hostnamen auf den Gast zugreifen, aber das ist hier nicht entscheidend, da ich bei Push die Adresse direkt verwenden kann - solange sie für alle gleich ist - und nicht den Namen).

Jetzt denke ich, dass ich die Option für eine überbrückte Netzwerkverbindung mit DHCP verwenden kann, und das gibt mir das, was ich für eine VM benötige (ich habe es in diesem Fall nicht ausprobiert, aber ich erinnere mich, dass ich es zuvor getan habe). Wenn jedoch mehrere VMs mit demselben Hostnamen und ihren Hosts mit demselben Netzwerk verbunden sind, ist dies problematisch, nicht wahr?

Ihre Lösungen und andere Ratschläge werden sehr geschätzt.

malenkiy_scot
quelle

Antworten:

8

Zunächst einmal können Sie keine überbrückte Netzwerkverbindung verwenden, da alle Gäste denselben Hostnamen haben. Sie müssen sich also für NAT entscheiden.

Sie haben einen Teil der Konfiguration richtig ausgeführt. Ihr Problem sollte sich jedoch in dem Standard-Gateway befinden, das Sie dem Gast zugewiesen haben. Das Standard-Gateway bei Verwendung von NAT ist nicht die IP des Hosts, sondern die IP eines "virtuellen Switches", der mit dem NAT-Netzwerk verbunden ist. (Der Host-VMnet8-Adapter ist lediglich ein anderes Gerät, das mit dem Netzwerk verbunden ist, damit der Host mit der VM kommunizieren kann.) Dieser virtuelle Switch, über den wir sprechen, erhält die .2IP im Subnetz. In Ihrem Fall /etc/network/interfacessollten Sie also lesen:

auto eth0
iface eth0 inet static
     address 172.241.0.101
     netmask 255.255.0.0
     gateway 172.241.0.2

Dies sollte Ihrer Gast-VM (über 172.241.0.2) Zugriff auf das Internet gewähren und auch mit Ihrem Host ( 172.241.0.100) kommunizieren . Probieren Sie es aus und lassen Sie mich wissen, ob es funktioniert.

Wenn es nicht funktioniert (höchst unwahrscheinlich), müssen Sie herausfinden, wie die IP des virtuellen Switches lautet. Was Sie tun können, ist, die VM eine IP über DHCP erhalten zu lassen (dh sie so zu ändern, iface eth0 inet dhcpwie Sie sie zuvor hatten), und dann zu tun route -n. Dies sollte Ihnen das Standard-Gateway anzeigen, das es verwendet. Verwenden Sie diese IP in Ihrer statischen Konfiguration.


Um die Gast-VM mit ihrem Hostnamen Workshop pingen zu können , können Sie Folgendes tun. Sie müssen einen Eintrag in die hostsDatei in Windows einfügen, die sich in befindet C:\Windows\System32\drivers\etc\hosts. Bearbeiten Sie diese Datei so, dass am Ende die folgende Zeile eingefügt wird:

Um diese Datei jedoch unter Windows zu bearbeiten, müssen Sie sie als Administrator in Notepad oder Wordpad öffnen. Manchmal können Sie sie nicht einmal speichern. Sie müssen also irgendwo eine Kopie der Datei erstellen und bearbeiten Entfernen Sie die .txt-Erweiterung, falls vorhanden, und ersetzen Sie die ursprüngliche. "Bestätigen" Sie sie ... oh, wie sehr ich Linux liebe. Aber wie auch immer, hier ist die Zeile, die Sie hinzufügen müssen:

172.241.0.101    Workshop

Sobald dies erledigt ist, sollten Sie in der Lage sein, ping Workshoperfolgreich von Ihrem Windows-Host aus.

Um dies in Ihrem Workshop bereitstellen zu können, müssen Sie natürlich die Hosts-Datei auf jedem einzelnen Windows-Host bearbeiten, es sei denn, Sie klonen auch die Windows-Computer.

Tipp : Da Sie Ihrem Gast eine statische IP-Adresse zuweisen möchten, stellen Sie sicher, dass das "NAT-Netzwerk" in VMplayer auf allen Windows-Hosts das Subnetz verwendet 172.241.0.0/16, da VMware seinen virtuellen Netzwerken meines Erachtens zufällig ein Subnetz zuweist ( VMnet1, 2 usw.), sodass VMnet8 möglicherweise nicht dasselbe Subnetz auf einem anderen Windows-Host verwendet. Wenn dies nicht der Fall ist, müssen Sie VMnet8 mithilfe des Virtual Network Editor in VMware manuell ein Subnetz zuweisen.


BEARBEITEN

In Ordnung. Nach den Kommentaren müssen Sie Folgendes tun:

  1. Konfigurieren Sie Ihren (Windows-) Hostcomputer so, dass er die IP-Adresse automatisch auf dem VMnet8-Adapter abruft. Es sollte die IP bekommen 192.168.186.1.
  2. Konfigurieren Sie Ihren (Ubuntu) Gastcomputer auf eine statische IP im Bereich 192.168.186.3 - 192.168.186.127. Lassen Sie uns verwenden 192.168.186.3. Konfigurieren Sie außerdem das Standard-Gateway und den DNS-Server so, dass 192.168.186.2Sie /etc/network/interfacesFolgendes haben:

    auto eth0
    iface eth0 inet static
         address 192.168.186.3
         netmask 255.255.255.0
         gateway 192.168.186.2
         dns-nameservers 192.168.186.2
    
  3. Testen Sie die lokale Konnektivität durch Ping 192.168.186.1und 192.168.186.2vom Gastcomputer aus. Sie sollten auch in der Lage sein, vom Gastgeber zum Gast zu pingen.

  4. Testen Sie die Internetverbindung auf dem Gastcomputer google.com, indem Sie einen Ping-Befehl senden oder im Internet surfen.
  5. Fügen Sie die Zeile 192.168.186.3 Workshopzu Ihrer hostsDatei auf dem Windows-Hostcomputer hinzu.
  6. Test ping Workshopvom Windows-Hostcomputer.

Wenn Sie IPs aus einem anderen Netzwerk / Pool als verwenden möchten 192.168.186.0/24, müssen Sie Edit > Virtual Network Editorin VMware nach VMnet8 suchen, die DHCP-Einstellungen ganz unten in das gewünschte Netzwerk ändern und die statischen IPs entsprechend ändern (Das Standard-Gateway ist immer die zweite verwendbare IP. x.x.x.2)

Geben Sie hier die Bildbeschreibung ein

Alaa Ali
quelle
172.241.0.2 funktioniert nicht. Es wird auch nicht auf einen Ping geantwortet (tatsächlich gibt das Ausführen von nmap -sP 172.241.0.0/24 nur zwei Live-Hosts zurück - .100 und .101). Bei der Konfiguration mit dhcp wird eine völlig andere Adresse von route -n zurückgegeben: 192.168.186.2
malenkiy_scot
Oh, ich nahm an, dass Sie das Netzwerk 172.241.0.0/16 verwenden, weil es das war, das der DHCP verwendete. Kommen Sie und denken Sie darüber nach, das ist eigentlich eine öffentliche IP [Oo]. Gibt es einen Grund, warum Sie die Host- und Gast-IPs im 172.241.0.0-Netzwerk zugewiesen haben? Wie auch immer, schau dir meine bearbeitete Antwort an.
Alaa Ali
Nein, es ist nicht das, was DHCP verwendet, aber so wird VMNet8 adater konfiguriert. Die DHCP-Adresse wird über einen VMWare-DHCP-Dienst abgerufen. Ich habe keine Ahnung, woher es seinen Adresspool bezieht. Ich glaube jedoch nicht, dass die Adresse 172.241 öffentlich ist. Wenn ich eine Verbindung zwischen dem Host und dem Gast herstelle und CPORTS ausführe, wird angezeigt, dass 10.63.41.41 (das ist die Adresse des Hosts im LAN) an verschiedenen Ports mit sich selbst verbunden ist - was sinnvoll ist, da dies NAT (oder wahrscheinlich tatsächlich PAT) ist. . Ich dachte tatsächlich in der gleichen Richtung wie Sie in Bezug auf das Gateway - dass es eine andere Adresse hat.
malenkiy_scot
Wie in meiner Antwort erwähnt, können der DHCP-Dienst und sein Pool über den Editor für virtuelle Netzwerke konfiguriert werden (ich habe meiner Antwort einen Screenshot hinzugefügt). Das Gateway, der DHCP- und der DNS-Server sind alle dasselbe virtuelle Gerät x.x.x.2. Und ja, wie Sie sagten, wird natürlich Überladung (PAT) über die IP Ihres Hosts verwendet. Sie sollten die IP des Gastes nicht im weiteren Netzwerk sehen. Auch 172.241.0.0/16 ist ein öffentlicher IP-Bereich =). 172.16.0.0 - 172.31.255.255ist der private Bereich in Adressen der Klasse B. Aber es ist nicht wirklich wichtig, es sollte nichts beeinflussen.
Alaa Ali
Sie können diese Seite auch besuchen, wenn Sie mehr über NAT in VMware erfahren möchten. Es ist eine gute Lektüre.
Alaa Ali
3

Ich hatte ein ähnliches Problem mit VMWare Player unter Windows 7 mit Ubuntu-Gästen. Ich konnte jedoch eine Verbindung von Host zu Gast und von Gast zu Host herstellen. Das Problem war jedoch, dass ich vom Gast aus keine Verbindung zum Internet herstellen konnte. Nachdem ich die Antwort von @Alaa gelesen hatte, musste ich nur noch eine Änderung vornehmen, um den DNS-Servernamen zur Schnittstellendatei hinzuzufügen (DNS-Nameserver 192.168.150.2), und dann stimmte alles überein.

Hier ist meine Konfiguration, die funktioniert hat.

Konfiguration der VMWare-Schnittstelle auf dem Host:

Ethernet-Adapter VMware-Netzwerkadapter VMnet8: (Client)

Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
Physical Address. . . . . . . . . : 00-50-56-C0-00-08
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::9c13:cbf2:1dc:259f%42(Preferred) 

IPv4 Address. . . . . . . . . . . : 192.168.150.1(Preferred) 
Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 
DHCPv6 IAID . . . . . . . . . . . : 704663638
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-19-06-50-32-88-53-2E-7A-D3-8E
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                    fec0:0:0:ffff::2%1
                                    fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled 

Änderungen an der Benutzeroberfläche von Gast-Ubuntu:

auto eth0
iface eth0 inet static
address 192.168.150.10
netmask 255.255.255.0
gateway 192.168.150.2
dns-nameservers 192.168.150.2

192.168.150.2 ist der VMWare-Proxy, der den Datenverkehr der Gäste an den Host weiterleitet.

Kingsly
quelle
Hallo, ich habe das gleiche Problem wie du. Möchten Sie mehr darüber erklären, wie Sie das Problem lösen? Als erstes erhalten Sie die Informationen zu "Ethernet-Adapter VMware Network Adapter VMnet8: (Client)". Meinen Sie damit, dass Sie Ihre Änderungen in / etc / network / interfaces aktualisieren müssen? Außerdem variieren die Änderungen für die Adresse wie "Netzmaske", "Gateway" je nach Computer? Oder ich kann das gleiche verwenden, wie Sie gepostet haben.
Benutzer288609