Sin acceso a Internet en máquinas virtuales en la red NAT en VirtualBox

12

He creado una red NAT en VirtulBox 5 en Ubuntu 14.04 LTS con las siguientes configuraciones

Nombre de Natework: NatNetwrok1
Network CIDR: 10.0.2.0/24
Soporte DHCP: habilitado
Soporte IPv6: deshabilitado
sin ningún reenvío de puertos

Además, tengo dos máquinas virtuales (ambos clones de Xubuntu), configuré la configuración de red para habilitar dos NIC en cada una de las máquinas virtuales con las siguientes configuraciones en los cuatro adaptadores:

Adjunto a: "Red NAT"
Nombre: "NatNetwrok1"

Cuando ejecuto ambas máquinas virtuales, puedo ver la siguiente configuración al ejecutar el comando ifconfig

Resultados de ifconfig en Xubuntu1

eth0      Link encap:Ethernet  HWaddr 08:00:27:00:8c:03  
          inet addr:10.0.2.9  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe00:8c03/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12133 (12.1 KB)  TX bytes:8517 (8.5 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:9e:20:e8  
          inet addr:10.0.2.8  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe9e:20e8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10294 (10.2 KB)  TX bytes:8798 (8.7 KB)

Resultados de ifconfig en Xubutracentu2

eth0      Link encap:Ethernet  HWaddr 08:00:27:00:8c:03  
          inet addr:10.0.2.9  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe00:8c03/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12133 (12.1 KB)  TX bytes:8517 (8.5 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:9e:20:e8  
          inet addr:10.0.2.8  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe9e:20e8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10294 (10.2 KB)  TX bytes:8798 (8.7 KB)

Hacer ping entre estas 4 IP funciona bien,
pero no puedo acceder a Internet en ninguna de estas máquinas virtuales.
Si cambio la "red NAT" a "NAT", puedo acceder a la red, pero parece que forma parte de una red virtual diferente y no puedo hacer ping. los unos de los otros
¿Alguien puede ayudarme a identificar y solucionar problemas

¿Alguien puede explicar cuál es la diferencia entre NAT y NAT Network?

ehsan
fuente
Mismo problema ... ¿Alguien podría ayudar?
monitor35
Recientemente me encontré con este problema usando la caja virtual 5.0.40 del repositorio predeterminado de ubuntu. Para evitarlo, configuré cada VM con dos interfaces. Uno con un NatNetwork interno y el otro con el modo puente. En el sistema operativo invitado (ubuntu 16.04), deberá ajustar / etc / network / interfaces para que la segunda interfaz aparezca en el invitado. Eso hizo posible que cada VM estuviera en el NAT interno y tuviera acceso a Internet al mismo tiempo.
JulioHM

Respuestas:

7

¿Por qué no funciona?

En 16.04 (y probablemente 14.04) la función de red NAT de la versión principal empaquetada de VirtualBox (5.0.36) tiene errores .

¡Revisalo!

Puede verificarlo usted mismo: si el ls /usr/lib/virtualbox/VBoxNetNATejecutable está presente, entonces puede tener algún otro tipo de problema.

¡Arreglalo!

Este error se corrige en las versiones más recientes. Entonces deberías instalar una nueva versión:

Eliminar la versión anterior

Por ejemplo, si instaló usando apt, podría ejecutar:

sudo apt remove virtualbox --auto-remove

Instalar nueva versión

La solución está disponible para versiones más nuevas (Ubuntu yakkety +). Para versiones anteriores:

  • Visite virtualbox.org y descargue la versión más nueva manualmente.
  • O
  • Use el siguiente script:

    # add the official repository
    wget -q -O - https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo apt-key add -
    echo deb http://download.virtualbox.org/virtualbox/debian `lsb_release -cs` non-free contrib | sudo tee /etc/apt/sources.list.d/virtualbox.org.list
    # install the newer version
    sudo apt install virtualbox-5.1
    
MrMeszaros
fuente
1
Si tiene instalada una versión anterior de virtualbox, asegúrese de desinstalar también virtualbox-dkmspara que esta solución funcione. De lo contrario, aún puede estar atrapado sin internet
Barak Itkin
7

Me encontré con esto usando VirtualBox 5.0.40 desde el repositorio apt predeterminado. Para evitarlo, configuré cada VM para usar dos interfaces de red.

  • Adaptador 1: Adaptador de puente (a su verdadero nic)
  • Adaptador 2: red NAT (de su elección)

En el sistema operativo guets (Ubuntu 16.04), deberá ajustar /etc/network/interfacespara que aparezca la segunda interfaz. En mi caso, necesitaba máquinas virtuales para usar IP estáticas dentro de la red NAT, así que esto es lo que obtuve.

## Bridge to Internet
auto enp0s3
iface enp0s3 inet dhcp

## NAT Network among VMs
## Static is optional
## DHCP if you don't need it
auto enp0s8
iface enp0s8 inet static
  address 10.10.11.100
  netmask 255.255.255.0

Esto, por supuesto, supone que mi red NAT usa la subred 10.10.11.0/24. Adapte los números a su escenario o simplemente déjelo a dhcp, como lo desee.

NOTA: Una cosa importante a tener en cuenta en la configuración estática es que, para este escenario particular, NO PUEDE asignarle una puerta de enlace predeterminada. Dar enp0s8un valor predeterminado (como 10.10.11.1) hará que el sistema operativo cree una ruta a esta puerta de enlace y esa ruta también puede arruinar su acceso a Internet. Solo debe hacer eso cuando esta interfaz en particular necesite rutas a otras redes, aparte de la configurada.

Para averiguar los nombres de interfaz asignados por Ubuntu para su entorno, puede hacerlo dmesg | grep eth.

ingrese la descripción de la imagen aquí

JulioHM
fuente
El mío funcionó mejor cuando usé 'dhcp' para eth0 y eth1. Simplemente asignó automáticamente 10.0.2.15 para NAT y mi internet público eth1 no tiene una IP, ¡pero puedo hacer ping a internet desde la VM!
Milean
6

Según el manual de VirtualBox, estas son las posibilidades de red para sus máquinas virtuales:

  • NAT: red interna entre VM y host. Además puedes acceder a Internet. Dos o más máquinas virtuales en modo NAT no tienen conectividad entre ellas, solo con el host e Internet.

  • Interno: todas las máquinas virtuales con esta configuración tendrán conectividad entre ellas, pero no con el host ni con Internet.

  • Solo host: se creará una red virtual entre el host y todas las máquinas virtuales con esta configuración, pero no tendrá acceso a Internet.

  • Red NAT: puede llegar a todas las máquinas virtuales en la misma red NAT predefinida y el host, pero no podrá conectarse a Internet.

  • En puente: su VM estará en la misma red que su host como si fuera otra computadora / servidor en esta red y, por lo tanto, tendrá acceso a Internet si su host lo tiene.

  • Genérico: configuración avanzada y más específica raramente utilizada.

Por lo tanto, si desea crear una red interna con conectividad al host, elija la red NAT, pero tenga en cuenta que no tendrá acceso a Internet. NAT se configura solo cuando solo desea acceso a Internet desde su VM y nada más.

Sin embargo, ninguna de estas configuraciones está bien si desea tener conectividad entre las máquinas virtuales e Internet. Hasta donde yo sé, su única opción es configurar ambas máquinas virtuales en modo puente, para que sean computadoras 'diferentes' en su red de host y podrá hacer ping a todas ellas y a Internet desde cualquiera de ellas.

Por otro lado, parece que clonó una máquina virtual de la otra porque ambas máquinas tienen la misma dirección MAC ( HWaddr en la información del comando ifconfig), tenga en cuenta que debe marcar la casilla de verificación que dice " Reinicializar la dirección MAC de todas las tarjetas de red "al clonar. Dos dispositivos con la misma dirección MAC siempre crean problemas.

No soy un experto en VirtualBox, por lo que quizás otros usuarios puedan decirle otras configuraciones posibles para obtener lo que desea. Espero que encuentre esta información útil.

Para más información puedes leer esto .

Pablo288
fuente
3
No es cierto que NAT Network evitará que sus invitados se conecten a Internet. Puedo conectarme a Internet desde invitados de VM en una red NAT. Según el último comentario en forum.virtualbox.org/viewtopic.php?f=3&t=69504 , "el modo NAT significa que cada VM está aislada detrás de su propio enrutador ... La red NAT es la misma que NAT, excepto que puede tener varias VM conectado al mismo enrutador interno ".
eebbesen
2

Esto podría ser un error en VirtualBox. He experimentado lo mismo (Ubuntu 16.04.2 LTS, VirtualBox 5.0.32_Ubuntu r112930): configurar una red NAT, configurada para dos máquinas virtuales de Ubuntu. Cada máquina virtual podría hacer ping / SSH en la otra, y a través de reenvíos de puertos pude SSH desde el host a cada máquina virtual. Pero no hay acceso a Internet desde el interior de las máquinas virtuales. Un colega intentó lo mismo con un host de Windows, VirtualBox (versión desconocida) y las mismas máquinas virtuales, y funcionó.

Como solución alternativa, configuré una segunda tarjeta de red para cada VM: la primera que usa NAT para acceder a Internet, la segunda que usa "Red NAT" para acceder a los otros invitados. Tuve que configurar el reenvío de puerto SSH en la primera tarjeta (NAT) y configurar un puerto SSH diferente en una VM (es decir, 2222 -> 22 en VM1, 2223 -> 23 en VM2).

Según la documentación , tanto NAT como NAT Network deberían poder acceder a Internet. La diferencia es que el primero tiene conexiones segmentadas de host ↔ invitado, por lo que los invitados no pueden acceder entre sí, solo al host. Este último agrupa a todos los invitados en una sola red (y proporciona servicios como DHCP), para que puedan acceder entre sí.

Ingo Karkat
fuente