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 masqueMasken 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.conffichier 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
subnetLa section doit correspondre aux informations IP recueillies sur l'invité Linux. Leinet addrsera dansrange,netmaskcorrespondra àMask,option broadcast-addresscorrespondra àBcast,option domain-name-serversetoption domain-namecorrespondra aux informations recueillies aveccat /etc/resolv.confetoption routerscorrespondra àGatewayduroute -ncommande. -
Nous voulons attribuer une adresse IP statique, afin de pouvoir ajouter une entrée au
hostsde l'hôte OS X. dossier. L'adresse doit être comprise entre lessubnetdéfini. Les adresses qui ne peuvent pas être attribuées sont celles comprises dansrangedans la section sous-réseau, l'adresse de diffusion, lefixed-addresspourhost 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.0Donc les destinataires disponibles sont de192.168.213.1 to 192.168.213.255moins192.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.127sont disponibles.
-
SUR l'hôte OS X : Créer un nouveau
hostentrée sous la NE PAS MODIFIER LA SECTION . Cette entrée attribuera une adresse IP statique à l'invité Linux.hardware ethernetdoit correspondre àHWaddrdeifconfigsur l'invité Linux. Choisissez une adresse statique disponible pourfixed-address.option broadcast-address,option domain-name-servers,option domain-nameetoption routersdoivent correspondre aux options données dans lesubnetsection 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.confet 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 Monitoret assurez-vous que deux processus nommés chacunvmnet-dhcpdsont 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.conffichier 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
hostsfichier :OSXHost$cd /etc OSXHost$sudo emacs hostsAjoutez 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.