MODIFIER La première version des instructions que j'ai publiée a provoqué des conflits avec le serveur de noms et la passerelle que VMware a mis sur vmnet8. Cette version corrige le problème.
Versions logicielles :
- MAC OS X version 10.6.3
- VMware Fusion 3.1.0 (261058)
- Ubuntu 10.04 LTS
Ce que j'ai fait :
-
Lors de la création de la VM, définissez le réseau sur NAT.
-
Sur l'invité Linux : Exécutez ifconfig pour obtenir l'adresse matérielle
HWaddr
, adresse de diffusionBcast
, adresse Internet IPv4inet addr
, et masqueMask
en cours d'utilisation.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>
-
Sur l'invité Linux : Rechercher les informations du serveur de noms
UbuntuGuest$cat /etc/resolv.conf nameserver 192.168.213.2 domain localdomain search localdomain
-
Sur l'invité Linux : Recherchez l'adresse de la passerelle :(figurant dans la colonne Passerelle de la ligne avec 0.0.0.0 comme destination.)
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
-
Sur l'hôte OS X : Modifiez le
dhcpd.conf
fichier pourvmnet8
(Le commutateur virtuel NAT) pour attribuer une adresse IP statique à l'invité Linux. (Utilisez l'éditeur de votre choix sur la quatrième ligne)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
-
Sur l'hôte OS X : Le fichier commencera à ressembler à :
# 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" #######
À noter :
-
Le
subnet
La section doit correspondre aux informations IP recueillies sur l'invité Linux. Leinet addr
sera dansrange
,netmask
correspondra àMask
,option broadcast-address
correspondra àBcast
,option domain-name-servers
etoption domain-name
correspondra aux informations recueillies aveccat /etc/resolv.conf
etoption routers
correspondra àGateway
duroute -n
commande. -
Nous voulons attribuer une adresse IP statique, afin de pouvoir ajouter une entrée au
hosts
de l'hôte OS X. dossier. L'adresse doit être comprise entre lessubnet
défini. Les adresses qui ne peuvent pas être attribuées sont celles comprises dansrange
dans la section sous-réseau, l'adresse de diffusion, lefixed-address
pourhost vmnet8
, le serveur DNS et la passerelle. Et je pense que l'adresse égale au sous-réseau n'est pas autorisée. Dans cet exemple, le sous-réseau est192.168.213.0
Donc les destinataires disponibles sont de192.168.213.1 to 192.168.213.255
moins192.168.213.128 to 192.168.213.245
(plage) moins192.168.213.255
(diffusion) moins192.168.213.1
(hôte vmnet8) moins192.168.213.2
(passerelle et serveur DNS). Le net est celui des adresses192.168.213.3 to 192.168.213.127
sont disponibles.
-
SUR l'hôte OS X : Créer un nouveau
host
entrée sous la NE PAS MODIFIER LA SECTION . Cette entrée attribuera une adresse IP statique à l'invité Linux.hardware ethernet
doit correspondre àHWaddr
deifconfig
sur l'invité Linux. Choisissez une adresse statique disponible pourfixed-address
.option broadcast-address
,option domain-name-servers
,option domain-name
etoption routers
doivent correspondre aux options données dans lesubnet
section dedhcpd.conf
. (Que nous avons déjà comparé aux informations recueillies sur l'invité Linux.) Dans cet exemple, l'entrée d'hôte est :####### 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; }
-
Sur l'hôte OS X Enregistrer
dhcpd.conf
et fermez votre éditeur. -
Sur l'hôte OS X et tous les invités : Arrêtez toutes les machines virtuelles et VMware.
-
Sur l'hôte OS X : Redémarrez les services VMware :
OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ OSXHost$sudo ./boot.sh --restart
-
Sur l'hôte OS X : Regardez dans
Activity Monitor
et assurez-vous que deux processus nommés chacunvmnet-dhcpd
sont en train de courir. (L'un est pour levmnet8
, le réseau NAT, l'autre est pour le réseau hôte uniquement.) Si vous ne voyez pas les deux, il y a probablement un problème avec levmnet8/dhcpd.conf
fichier sur l'hôte OS X. Corrigez cela et répétez le redémarrage des services VMware. -
Sur l'hôte OS X : Démarrez VMware et la machine virtuelle invitée Linux.
-
Sur l'invité Linux Sur la VM invitée, vérifiez que les paramètres sont comme prévu :
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$
-
Sur l'invité Linux : Vérifiez que le monde extérieur est joignable :
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$
-
Sur l'hôte OS X : Ajouter un mappage pour le nom d'hôte au
hosts
fichier :OSXHost$cd /etc OSXHost$sudo emacs hosts
Ajoutez une ligne à la fin du fichier hosts en utilisant le nom d'hôte de l'invité Linux et l'adresse IP attribuée ci-dessus.
192.168.213.2 serpents-hold
-
Sur l'hôte OS X : Enregistrez le fichier et quittez emacs.
-
Sur l'hôte OS X : Testez que l'invité Linux est accessible par nom d'hôte :
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$
La réponse en une étape à la question d'origine consiste à exécuter cette commande :
$ sudo apt-get install libnss-mdns
L'installation de ce package devrait activer la fonctionnalité instantanément. Vous pourrez alors accéder à votre VM au your-vm-hostname.local
. Cela ne fonctionnera que dans le réseau local de la VM, qui dépend de la façon dont vous l'avez configuré dans votre logiciel de virtualisation.
Cette fonctionnalité est appelée Bonjour par Apple et Zeroconf par tous les autres. Il est intégré à OS X et iOS. Le moyen le plus simple de l'obtenir sous Windows consiste à installer iTunes pour Windows.
Vous pouvez configurer zeroconf en utilisant Avahi, ce qui devrait permettre au client de s'identifier sur un réseau sans enregistrement DNS.