BEARBEITEN Die erste Version der Anweisungen, die ich gepostet habe, verursachte Konflikte mit dem Nameserver und dem Gateway, die VMware auf vmnet8 installiert hat. Diese Version behebt das Problem.
Softwareversionen:
- MAC OS X-Version 10.6.3
- VMware Fusion-Version 3.1.0 (261058)
- Ubuntu 10.04 LTS
Was ich getan habe:
-
Legen Sie während der Erstellung der VM das Netzwerk auf NAT fest.
-
Auf Linux-Gast: Führen Sie ifconfig aus, um die Hardwareadresse
HWaddr
zu erhalten , Broadcast-AdresseBcast
, IPv4-Internetadresseinet addr
, und maskieren SieMask
verwendet wird.UbuntuGuest$ifconfig eth0 Link encap:Ethernet HWaddr 00:0c:29:53:bf:e5 inet addr:192.168.213.129 Bcast:192.168.213.255 Mask:255.255.255.0 <snip>
-
Auf Linux-Gast: Suchen Sie die Nameserver-Informationen
UbuntuGuest$cat /etc/resolv.conf nameserver 192.168.213.2 domain localdomain search localdomain
-
Auf Linux-Gast: Suchen Sie die Gateway-Adresse:(Aufgeführt in der Gateway-Spalte der Zeile mit 0.0.0.0 als Ziel.)
UbuntuGuest$route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.213.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.213.2 0.0.0.0 UG 100 0 0 eth0
-
Auf OS X-Host: Bearbeiten Sie
dhcpd.conf
Datei fürvmnet8
(Der virtuelle NAT-Switch), um dem Linux-Gast eine statische IP-Adresse zuzuweisen. (Verwenden Sie den Editor Ihrer Wahl in der vierten Zeile)OSXHost$cd /Library/Application\ Support/VMware\ Fusion/vmnet8/ OSXHost$sudo chmod u+w dhcpd.conf OSXHost$sudo cp dhcpd.conf dhcpd.conf.bak.20100619 OSXHost$sudo emacs dhcpd.conf
-
Auf OS X-Host: Die Datei sieht zu Beginn etwa so aus:
# Configuration file for ISC 2.0 vmnet-dhcpd operating on vmnet8. # # This file was automatically generated by the VMware configuration program. # See Instructions below if you want to modify it. # # We set domain-name-servers to make some DHCP clients happy # (dhclient as configured in SuSE, TurboLinux, etc.). # We also supply a domain name to make pump (Red Hat 6.x) happy. # ###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" ##### # Modification Instructions: This section of the configuration file contains # information generated by the configuration program. Do not modify this # section. # You are free to modify everything else. Also, this section must start # on a new line # This file will get backed up with a different name in the same directory # if this section is edited and you try to configure DHCP again. # Written at: 12/26/2009 10:35:10 allow unknown-clients; default-lease-time 1800; # default is 30 minutes max-lease-time 7200; # default is 2 hours subnet 192.168.213.0 netmask 255.255.255.0 { range 192.168.213.128 192.168.213.254; option broadcast-address 192.168.213.255; option domain-name-servers 192.168.213.2; option domain-name localdomain; default-lease-time 1800; # default is 30 minutes max-lease-time 7200; # default is 2 hours option routers 192.168.213.2; } host vmnet8 { hardware ethernet 00:50:56:C0:00:08; fixed-address 192.168.213.1; option domain-name-servers 0.0.0.0; option domain-name ""; option routers 0.0.0.0; } ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
Zu beachten:
-
Die
subnet
Abschnitt sollte mit den auf dem Linux-Gast erfassten IP-Informationen übereinstimmen. Dieinet addr
innerhalb vonrange
liegen ,netmask
entsprichtMask
,option broadcast-address
entsprichtBcast
,option domain-name-servers
undoption domain-name
stimmt mit den mitcat /etc/resolv.conf
gesammelten Informationen überein undoption routers
entsprichtGateway
aus demroute -n
Befehl. -
Wir möchten eine statische IP-Adresse zuweisen, damit wir der
hosts
des OS X-Hosts einen Eintrag hinzufügen können Datei. Die Adresse muss innerhalb dessubnet
liegen definiert. Adressen, die nicht zugewiesen werden können, sind diejenigen innerhalb vonrange
im Subnet-Abschnitt die Broadcast-Adresse, derfixed-address
fürhost vmnet8
, der DNS-Server und das Gateway. Und ich denke, die Adresse gleich Subnetz ist nicht erlaubt. In diesem Beispiel ist das Subnetz192.168.213.0
Die verfügbaren Adressaten sind also ab192.168.213.1 to 192.168.213.255
weniger192.168.213.128 to 192.168.213.245
(Bereich) weniger192.168.213.255
(Sendung) weniger192.168.213.1
(host vmnet8) weniger192.168.213.2
(Gateway und DNS-Server). Das Netz ist die Adresse192.168.213.3 to 192.168.213.127
sind verfügbar.
-
AUF OS X-Host: Erstellen Sie einen neuen
host
Eintrag unter dem ABSCHNITT NICHT ÄNDERN . Dieser Eintrag weist dem Linux-Gast eine statische IP zu.hardware ethernet
muss mitHWaddr
übereinstimmen abifconfig
auf dem Linux-Gast. Wählen Sie eine verfügbare statische Adresse fürfixed-address
.option broadcast-address
,option domain-name-servers
,option domain-name
undoption routers
müssen mit den insubnet
angegebenen Optionen übereinstimmen Abschnitt vondhcpd.conf
. (Die wir bereits mit Informationen abgeglichen haben, die auf dem Linux-Gast gesammelt wurden.) In diesem Beispiel lautet der Host-Eintrag:####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" ####### host serpents-hold { hardware ethernet 00:0c:29:53:bf:e5; fixed-address 192.168.213.3; option broadcast-address 192.168.213.255; option domain-name-servers 192.168.213.2; option domain-name localdomain; option routers 192.168.213.2; }
-
Auf OS X-Host Speichern Sie
dhcpd.conf
und schließen Sie Ihren Editor. -
Auf OS X Host und allen Gästen: Fahren Sie alle VMs und VMware herunter.
-
Auf OS X-Host: Starten Sie die VMware-Dienste neu:
OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ OSXHost$sudo ./boot.sh --restart
-
Auf OS X-Host: Schauen Sie in
Activity Monitor
nach und stellen Sie sicher, dass zwei Prozesse jeweils mit dem Namenvmnet-dhcpd
Rennen. (Einer ist fürvmnet8
, das NAT-Netzwerk, das andere ist für das Host-Only-Netzwerk.) Wenn Sie beide nicht sehen, liegt wahrscheinlich ein Problem mitvmnet8/dhcpd.conf
vor Datei auf dem OS X Host. Beheben Sie das und wiederholen Sie den Neustart der VMware-Dienste. -
Auf OS X-Host: Starten Sie VMware und die Linux-Gast-VM.
-
Auf Linux-Gast Überprüfen Sie auf der Gast-VM, ob die Einstellungen wie erwartet sind:
UbuntuGuest$ifconfig eth0 Link encap:Ethernet HWaddr 00:0c:29:53:bf:e5 inet addr:192.168.213.3 Bcast:192.168.213.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe53:bfe5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:103 errors:0 dropped:0 overruns:0 frame:0 TX packets:71 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:10961 (10.9 KB) TX bytes:9637 (9.6 KB) lo <snip> UbuntuGuest$cat /etc/resolv.conf nameserver 192.168.213.2 domain localdomain search localdomain UbuntuGuest$route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.213.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.213.2 0.0.0.0 UG 100 0 0 eth0 UbuntuGuest$
-
Auf Linux-Gast: Überprüfen Sie, ob die Außenwelt erreichbar ist:
UbuntuGuest$ping google.com PING google.com (72.14.213.104) 56(84) bytes of data. 64 bytes from pv-in-f104.1e100.net (72.14.213.104): icmp_seq=1 ttl=128 time=47.6 ms 64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=2 ttl=128 time=48.7 ms 64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=3 ttl=128 time=48.2 ms ^C --- google.com ping statistics --- 4 packets transmitted, 3 received, 25% packet loss, time 3093ms rtt min/avg/max/mdev = 47.687/48.223/48.714/0.491 ms UbuntuGuest$
-
Auf OS X-Host: Fügen Sie dem
hosts
eine Zuordnung für den Hostnamen hinzu Datei:OSXHost$cd /etc OSXHost$sudo emacs hosts
Fügen Sie am Ende der Hosts-Datei eine Zeile mit dem Hostnamen des Linux-Gasts und der oben zugewiesenen IP-Adresse hinzu.
192.168.213.2 serpents-hold
-
Auf OS X-Host: Datei speichern und emacs beenden.
-
Auf OS X-Host: Testen Sie, ob der Linux-Gast über den Hostnamen erreichbar ist:
OSXHost$ping serpents-hold PING serpents-hold (192.168.213.3): 56 data bytes 64 bytes from 192.168.213.3: icmp_seq=0 ttl=64 time=0.169 ms 64 bytes from 192.168.213.3: icmp_seq=1 ttl=64 time=0.244 ms ^C --- serpents-hold ping statistics --- 2 packets transmitted, 2 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.169/0.207/0.244/0.037 ms OSXHost$
Die einstufige Antwort auf die ursprüngliche Frage besteht darin, diesen Befehl auszuführen:
$ sudo apt-get install libnss-mdns
Die Installation dieses Pakets sollte die Funktion sofort aktivieren. Sie können dann unter your-vm-hostname.local
auf Ihre VM zugreifen . Dies funktioniert nur innerhalb des lokalen Netzwerks der VM, was davon abhängt, wie Sie es in Ihrer Virtualisierungssoftware konfiguriert haben.
Diese Funktion wird von Apple Bonjour und von allen anderen Zeroconf genannt. Es ist in OS X und iOS integriert. Der einfachste Weg, es unter Windows zu bekommen, ist die Installation von iTunes für Windows.
Sie könnten Zeroconf mit Avahi konfigurieren, was es dem Client ermöglichen sollte, sich in einem Netzwerk ohne DNS-Registrierung zu identifizieren.