Configuración de Ubuntu vmware guest NAT

9

Tengo un host de Windows que ejecuta Ubuntu VM invitado a través de vmplayer. Esa máquina virtual será clonada, distribuida entre varias personas (ejecutando hosts de Windows) y utilizada para realizar un taller de programación. Estoy intentando, y hasta ahora no puedo, configurar la red para satisfacer los siguientes requisitos:

  1. El huésped debe tener acceso a internet.
  2. Todos los clones deben tener el mismo nombre de host (digamos que Workshop sea ​​concreto)
  3. El sistema host debe poder acceder a su invitado respectivo a través de ese nombre (por ejemplo, ping Workshop haría ping al invitado que se ejecuta en ese host y no a ningún otro clon)

Lo que he probado hasta ahora:

  • "Instaló" un adaptador de red NAT para el invitado
  • Intenté conectar al invitado a través de DHCP, en / etc / network / interfaces :

    auto eth0
    iface eth0 inet dhcp
       hostname Workshop
    

Eso funciona en lo que respecta a conectarse a Internet. Sin embargo, no puedo conectarme con el invitado desde el host. (Por ejemplo, ping Workshop no funciona; si uso la dirección devuelta por ifconfig , tampoco funciona desde el host).

  • Luego intenté asignar una dirección estática al invitado:

    auto eth0
    iface eth0 inet static
         address 172.241.0.101
         netmask 255.255.0.0
         gateway 172.241.0.100
    

(172.241.0.100 es la dirección asignada estáticamente al host por VMWare Network VMNet8 Adapter, ese es el adaptador NAT anterior). Ahora, puedo hacer ping 172.241.0.101 y telnet desde el host. También puedo hacer ping y telnet desde el invitado a 172.241.0.100 (el host), pero eso es todo: no hay conexión a la red más amplia. (Tampoco puedo acceder al invitado a través de su nombre de host, pero eso no es crucial aquí, ya que si se trata de empujar, puedo usar su dirección directamente, siempre que sea la misma para todos, y no el nombre).

Ahora, creo que puedo usar la opción de conexión de red en puente con DHCP y eso me dará lo que necesito en el caso de una VM (no lo intenté en este caso, pero recuerdo haberlo hecho anteriormente). Sin embargo, en el caso de varias máquinas virtuales con el mismo nombre de host y sus hosts conectados a la misma red, esto será problemático, ¿no?

Sus soluciones y otros consejos serán muy apreciados.

malenkiy_scot
fuente

Respuestas:

8

En primer lugar, sí, no podrá utilizar una conexión de red en puente porque todos los invitados tendrán el mismo nombre de host, por lo que deberá utilizar NAT.

Tienes parte de la configuración correcta, sin embargo, tu problema debería estar en la puerta de enlace predeterminada que asignaste al invitado. La puerta de enlace predeterminada, cuando se utiliza NAT, no es la IP del host, es la IP de un "conmutador virtual" que está conectado a la red NAT. (El adaptador host VMnet8 es simplemente otro dispositivo conectado a la red, para permitir que el host se comunique con la VM). Este conmutador virtual del que estamos hablando obtiene la .2IP en la subred. Entonces, en su caso, /etc/network/interfacesdebería leer:

auto eth0
iface eth0 inet static
     address 172.241.0.101
     netmask 255.255.0.0
     gateway 172.241.0.2

Esto debería otorgar a su máquina virtual invitada acceso a Internet (a través de 172.241.0.2) y también comunicarse con su host ( 172.241.0.100). Así que pruébalo y avísame si funciona.

Si no funciona (muy poco probable), debe averiguar cuál es la IP del conmutador virtual. Lo que puede hacer es dejar que la VM obtenga una IP a través de DHCP (es decir, cámbiela a la iface eth0 inet dhcpque tenía antes), y luego haga route -n. Esto debería mostrarle la puerta de enlace predeterminada que está utilizando. Use esa IP en su configuración estática.


Para poder hacer ping a la máquina virtual invitada utilizando su nombre de host Taller , esto es lo que puede hacer. Debe agregar una entrada en el hostsarchivo en Windows, que se encuentra en C:\Windows\System32\drivers\etc\hosts. Edite ese archivo para incluir la siguiente línea al final:

Sin embargo, para editar ese archivo en Windows, debe abrirlo como administrador en el Bloc de notas o Wordpad ... y, a veces, ni siquiera le permite guardarlo, por lo que deberá llevar una copia del archivo en alguna parte, editar elimine la extensión .txt si tiene una, regrese y reemplace la original, y "confirme" ... oh, cómo amo Linux. Pero de todos modos, aquí está la línea que necesita agregar:

172.241.0.101    Workshop

Una vez hecho esto, deberías poder tener ping Workshopéxito desde tu host de Windows.

Aunque, por supuesto, para poder implementar esto en su taller, deberá editar el archivo de hosts en cada host de Windows, a menos que también esté clonando las máquinas de Windows.

Consejo : dado que va a asignar una IP estática a su invitado, asegúrese de que la "red NAT" en VMplayer en todos sus hosts de Windows esté utilizando la subred 172.241.0.0/16, porque creo que VMware asigna aleatoriamente una subred a sus redes virtuales ( VMnet1, 2, etc.), por lo que VMnet8 podría no estar utilizando la misma subred en otro host de Windows. Si no lo están, deberá asignar manualmente una subred a VMnet8 utilizando el Editor de red virtual en VMware.


EDITAR

Bueno. Después de los comentarios, esto es lo que debe hacer:

  1. Configure su máquina host (Windows) para "obtener la dirección IP automáticamente" en el adaptador VMnet8. Debería obtener la IP 192.168.186.1.
  2. Configure su máquina invitada (Ubuntu) a una IP estática en el rango 192.168.186.3 - 192.168.186.127. El uso de Let 192.168.186.3. Además, configurar el servidor de puerta de enlace predeterminada y DNS para estar 192.168.186.2Así que su /etc/network/interfacesdebe ser:

    auto eth0
    iface eth0 inet static
         address 192.168.186.3
         netmask 255.255.255.0
         gateway 192.168.186.2
         dns-nameservers 192.168.186.2
    
  3. Pruebe la conectividad local haciendo ping 192.168.186.1y 192.168.186.2desde la máquina invitada. También debe poder hacer ping desde el host al invitado.

  4. Pruebe la conectividad a Internet en la máquina invitada haciendo ping google.como navegando por Internet.
  5. Agregue la línea 192.168.186.3 Workshopa su hostsarchivo en la máquina host de Windows.
  6. Prueba ping Workshopdesde la máquina host de Windows.

Si desea usar IP de una red / grupo completamente diferente a otro 192.168.186.0/24, deberá ir a Edit > Virtual Network EditorVMware, encontrar VMnet8 y cambiar su configuración de DHCP en la parte inferior a la red que desee, y cambiar las IP estáticas en consecuencia (la puerta de enlace predeterminada siempre será la segunda IP utilizable x.x.x.2).

ingrese la descripción de la imagen aquí

Alaa Ali
fuente
172.241.0.2 no funciona. Tampoco responde a un ping (de hecho, ejecutar nmap -sP 172.241.0.0/24 solo devuelve dos hosts activos: .100 y .101). Cuando se configura con dhcp, la ruta devuelve una dirección completamente diferente -n: 192.168.186.2
malenkiy_scot
Oh, supuse que estaba usando la red 172.241.0.0/16 porque era la que estaba usando el DHCP. Ahora que lo pienso, eso es en realidad una IP pública [Oo]. ¿Hay alguna razón por la que estaba asignando las direcciones IP de host e invitado en la red 172.241.0.0? De todos modos, mira mi respuesta editada.
Alaa Ali
No, no es lo que utiliza DHCP, pero así es como se configura VMNet8 adater. La dirección DHCP se obtiene a través de un servicio VMWare DHCP. No tengo idea de dónde obtiene su grupo de direcciones. Sin embargo, no creo que la dirección 172.241 sea pública. Cuando establezco una conexión entre el host y el invitado y ejecuto CPORTS, muestra que 10.63.41.41 (esa es la dirección del host en la LAN) está conectado a sí mismo en diferentes puertos, lo que tiene sentido ya que esto es NAT (o probablemente en realidad PAT) . De hecho, pensé en la misma línea que usted con respecto a la puerta de enlace: que tiene una dirección diferente.
malenkiy_scot
Sí, como se menciona en mi respuesta, el servicio DHCP y su grupo son configurables desde el Editor de red virtual (he agregado una captura de pantalla a mi respuesta). La puerta de enlace, DHCP y servidor DNS son todos del mismo dispositivo virtual, x.x.x.2. Y sí, como dijiste, por supuesto usa sobrecarga (PAT) sobre la IP de tu host; no debería ver la IP del invitado en la red más amplia. Además, 172.241.0.0/16 es un rango de IP público =). 172.16.0.0 - 172.31.255.255es el rango privado en las direcciones de clase B. Pero en realidad no importa, no debería afectar nada.
Alaa Ali
Además, puede visitar esta página si desea leer más sobre NAT en VMware, es una buena lectura.
Alaa Ali
3

Estaba teniendo un problema similar, usando VMWare Player ejecutándose en Windows 7 con invitados de Ubuntu. Pero pude conectarme de host a invitado e invitado a host, sin embargo, el problema fue que no pude conectarme a Internet desde el invitado. Después de leer la respuesta de @Alaa, tuve que hacer un ajuste más para agregar el nombre del servidor DNS al archivo de interfaces (dns-nameservers 192.168.150.2) y luego todo encajó.

Aquí está mi configuración que funcionó.

Configuración de la interfaz VMWare en el host:

Adaptador Ethernet VMware Network Adapter VMnet8: (Cliente)

Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
Physical Address. . . . . . . . . : 00-50-56-C0-00-08
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::9c13:cbf2:1dc:259f%42(Preferred) 

IPv4 Address. . . . . . . . . . . : 192.168.150.1(Preferred) 
Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 
DHCPv6 IAID . . . . . . . . . . . : 704663638
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-19-06-50-32-88-53-2E-7A-D3-8E
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                    fec0:0:0:ffff::2%1
                                    fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled 

Cambios en la interfaz de Ubuntu invitado:

auto eth0
iface eth0 inet static
address 192.168.150.10
netmask 255.255.255.0
gateway 192.168.150.2
dns-nameservers 192.168.150.2

192.168.150.2 es el proxy de VMWare que reenviaría el tráfico de invitados al host.

Kingsly
fuente
Hola, me encuentro con el mismo problema que el tuyo. ¿Podría explicar más sobre cómo resuelve el problema? Lo primero es que dónde obtener la información del "Adaptador Ethernet VMware Network Adapter VMnet8: (Cliente)". ¿Quiere decir que necesita actualizar sus cambios en / etc / network / interfaces Además, para la dirección como "máscara de red", "puerta de enlace", ¿varían según la máquina? O puedo usar lo mismo que publicaste.
user288609