MODIFICA La prima versione delle istruzioni che ho pubblicato ha causato conflitti con il server dei nomi e il gateway che VMware ha inserito su vmnet8. Questa versione corregge il problema.
Versioni software:
- MAC OS X versione 10.6.3
- VMware Fusion versione 3.1.0 (261058)
- Ubuntu 10.04 LTS
Cosa ho fatto:
-
Durante la creazione della VM, impostanetworking su NAT.
-
Su ospite Linux: Eseguire ifconfig per ottenere l'indirizzo hardware
HWaddr
, indirizzo di trasmissioneBcast
, indirizzo Internet IPv4inet addr
e mascheraMask
in uso.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>
-
Su ospite Linux: Cerca le informazioni sul server dei nomi
UbuntuGuest$cat /etc/resolv.conf nameserver 192.168.213.2 domain localdomain search localdomain
-
Su ospite Linux: Cerca l'indirizzo del gateway:(Elencato nella colonna Gateway della riga con 0.0.0.0 come destinazione.)
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
-
Su host OS X: Modifica il
dhcpd.conf
file pervmnet8
(Lo switch virtuale NAT) per assegnare un indirizzo IP statico al guest Linux. (Usa il tuo editor preferito sulla quarta riga)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
-
Su host OS X: Il file inizierà con un aspetto simile a:
# 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" #######
Cose da notare:
-
Il
subnet
dovrebbe corrispondere alle informazioni IP raccolte nel guest Linux. Ilinet addr
sarà compreso trarange
,netmask
corrisponderà aMask
,option broadcast-address
corrisponderà aBcast
,option domain-name-servers
eoption domain-name
corrisponderà alle informazioni raccolte concat /etc/resolv.conf
eoption routers
corrisponderà aGateway
dalroute -n
comando. -
Vogliamo assegnare un indirizzo IP statico, in modo da poter aggiungere una voce al
hosts
dell'host OS X file. L'indirizzo deve essere compreso trasubnet
definito. Gli indirizzi che non possono essere assegnati sono quelli all'interno dirange
nella sezione subnet, l'indirizzo di broadcast, ilfixed-address
perhost vmnet8
, il server DNS e il gateway. E penso che l'indirizzo uguale alla sottorete non sia consentito. In questo esempio, la sottorete è192.168.213.0
Quindi i destinatari disponibili sono da192.168.213.1 to 192.168.213.255
meno192.168.213.128 to 192.168.213.245
(intervallo) meno192.168.213.255
(trasmissione) meno192.168.213.1
(host vmnet8) meno192.168.213.2
(gateway e server DNS). La rete è quella degli indirizzi192.168.213.3 to 192.168.213.127
sono disponibili.
-
SULL'host OS X: Crea un nuovo
host
sotto la SEZIONE DA NON MODIFICARE . Questa voce assegnerà un IP statico al guest Linux.hardware ethernet
deve corrispondere aHWaddr
daifconfig
sul guest Linux. Scegli un indirizzo statico disponibile perfixed-address
.option broadcast-address
,option domain-name-servers
,option domain-name
eoption routers
devono corrispondere alle opzioni fornite nelsubnet
sezione didhcpd.conf
. (Che abbiamo già confrontato con le informazioni raccolte sul Linux Guest.) In questo esempio la voce dell'host è:####### 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; }
-
Su OS X Host Salva
dhcpd.conf
e chiudi il tuo editor. -
Su host OS X e tutti gli ospiti: Arresta tutte le VM e VMware.
-
Su host OS X: Riavvia i servizi VMware:
OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ OSXHost$sudo ./boot.sh --restart
-
Su host OS X: Cerca in
Activity Monitor
e assicurati che due processi ciascuno si chiamivmnet-dhcpd
stanno correndo. (Uno è per ilvmnet8
, la rete NAT, l'altra è per la rete solo host.) Se non vedi entrambi, probabilmente c'è un problema con ilvmnet8/dhcpd.conf
file sull'host OS X. Risolvilo e ripeti il riavvio dei servizi VMware. -
Su host OS X: Avvia VMware e la VM guest Linux.
-
Su ospite Linux Sulla VM guest controlla che le impostazioni siano quelle previste:
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$
-
Su ospite Linux: Verifica che il mondo esterno sia raggiungibile:
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$
-
Su host OS X: Aggiungi una mappatura per il nome host al
hosts
file:OSXHost$cd /etc OSXHost$sudo emacs hosts
Aggiungi una riga alla fine del file hosts utilizzando il nome host del guest Linux e l'indirizzo IP assegnato sopra.
192.168.213.2 serpents-hold
-
Su host OS X: Salva il file ed esci da emacs.
-
Su host OS X: Verifica che il guest Linux sia raggiungibile tramite hostname:
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$
L'unica risposta alla domanda originale è eseguire questo comando:
$ sudo apt-get install libnss-mdns
L'installazione di questo pacchetto dovrebbe abilitare immediatamente la funzione. Sarai quindi in grado di accedere alla tua VM al your-vm-hostname.local
. Funzionerà solo all'interno della rete locale della VM, che dipende da come l'hai configurata nel tuo software di virtualizzazione.
Questa funzione è chiamata Bonjour da Apple e Zeroconf da tutti gli altri. È integrato in OS X e iOS. Il modo più semplice per scaricarlo su Windows è installare iTunes per Windows.
Puoi configurare zeroconf utilizzando Avahi, che dovrebbe consentire al client di identificarsi su una rete senza registrazione DNS.