EDITAR La primera versión de las instrucciones que publiqué provocó conflictos con el servidor de nombres y la puerta de enlace que VMware puso en vmnet8. Esta versión corrige el problema.
Versiones de software:
- MAC OS X versión 10.6.3
- VMware Fusion versión 3.1.0 (261058)
- Ubuntu 10.04 LTS
Lo que he hecho:
-
Durante la creación de la máquina virtual, establezca redes en NAT.
-
En invitado de Linux: Ejecute ifconfig para obtener la dirección de hardware
HWaddr
, dirección de difusiónBcast
, dirección de Internet IPv4inet addr
y máscaraMask
siendo utilizado.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>
-
En invitado de Linux: Busque la información del servidor de nombres
UbuntuGuest$cat /etc/resolv.conf nameserver 192.168.213.2 domain localdomain search localdomain
-
En invitado de Linux: Busque la dirección de la puerta de enlace:(Aparece en la columna Puerta de enlace de la línea con 0.0.0.0 como Destino).
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
-
En host OS X: Edite el
dhcpd.conf
archivo paravmnet8
(el conmutador virtual NAT) para asignar una dirección IP estática al invitado de Linux. (Use el editor de su elección en la cuarta línea)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
-
En host OS X: El archivo comenzará con un aspecto similar 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" #######
Cosas a tener en cuenta:
-
El
subnet
La sección debe coincidir con la información de IP recopilada en el invitado de Linux. Elinet addr
estará dentro derange
,netmask
coincidirá conMask
,option broadcast-address
coincidirá conBcast
,option domain-name-servers
yoption domain-name
coincidirá con la información recopilada concat /etc/resolv.conf
yoption routers
coincidirá conGateway
delroute -n
comando. -
Queremos asignar una dirección IP estática, de modo que podamos agregar una entrada al
hosts
del Host OS X expediente. La dirección debe estar dentro delsubnet
definido. Las direcciones que no están disponibles para asignar son las que están dentro derange
en la sección de subred, la dirección de transmisión, elfixed-address
parahost vmnet8
, el servidor DNS y la puerta de enlace. Y creo que la dirección igual a la subred no está permitida. En este ejemplo, la subred es192.168.213.0
Entonces, los destinatarios disponibles son de192.168.213.1 to 192.168.213.255
menos192.168.213.128 to 192.168.213.245
(rango) menos192.168.213.255
(transmitir) menos192.168.213.1
(host vmnet8) menos192.168.213.2
(puerta de enlace y servidor DNS). La red es que se dirige a192.168.213.3 to 192.168.213.127
están disponibles.
-
EN el host OS X: Crear un nuevo
host
entrada debajo de la NO MODIFICAR SECCIÓN . Esta entrada asignará una IP estática al invitado de Linux.hardware ethernet
debe coincidir conHWaddr
deifconfig
en el invitado de Linux. Elija una dirección estática disponible parafixed-address
.option broadcast-address
,option domain-name-servers
,option domain-name
yoption routers
debe coincidir con las opciones dadas en elsubnet
sección dedhcpd.conf
. (Que ya hemos comparado con la información recopilada en el invitado de Linux). En este ejemplo, la entrada del host es:####### 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; }
-
En host OS X Guardar
dhcpd.conf
y cierra tu editor. -
En OS X Host y todos los invitados: Apague todas las máquinas virtuales y VMware.
-
En host OS X: Reinicie los servicios de VMware:
OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ OSXHost$sudo ./boot.sh --restart
-
En host OS X: Mira en
Activity Monitor
y asegúrese de que dos procesos se llamenvmnet-dhcpd
estan corriendo. (Uno es para elvmnet8
, la red NAT, la otra es solo para la red host). Si no ve ambas, probablemente haya un problema con elvmnet8/dhcpd.conf
archivo en OS X Host. Solucione eso y repita el reinicio de los servicios de VMware. -
En host OS X: Inicie VMware y la VM invitada de Linux.
-
En invitado de Linux En la máquina virtual invitada, verifique que la configuración sea la esperada:
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$
-
En invitado de Linux: Comprueba que el mundo exterior sea accesible:
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$
-
En host OS X: Agregue una asignación para el nombre de host al
hosts
archivo:OSXHost$cd /etc OSXHost$sudo emacs hosts
Agregue una línea al final del archivo de hosts utilizando el nombre de host del invitado de Linux y la dirección IP asignada anteriormente.
192.168.213.2 serpents-hold
-
En host OS X: Guarde el archivo y salga de emacs.
-
En host OS X: Pruebe que el invitado de Linux es accesible por nombre de host:
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 respuesta de un paso a la pregunta original es ejecutar este comando:
$ sudo apt-get install libnss-mdns
La instalación de este paquete debería habilitar la función al instante. Luego podrá acceder a su VM en your-vm-hostname.local
. Esto solo funcionará dentro de la red local de la VM, que depende de cómo lo haya configurado en su software de virtualización.
Esta característica se llama Bonjour por Apple y Zeroconf por todos los demás. Está integrado en OS X e iOS. La forma más fácil de obtenerlo en Windows es instalar iTunes para Windows.
Puede configurar zeroconf usando Avahi, lo que debería permitir que el cliente se identifique en una red sin registro de DNS.