Sem acesso à Internet em VMs na rede NAT no VirtualBox

12

Eu criei uma rede NAT no VirtulBox 5 no Ubuntu 14.04 LTS com as seguintes configurações

Nome Natework: NatNetwrok1
CIDR de rede: 10.0.2.0/24
Suporte DHCP: ativado
Suporte IPv6: desativado
sem nenhum encaminhamento de porta

Além disso, tenho duas VMs (ambos os clones do Xubuntu), defini as configurações de rede para habilitar duas NICs em cada VM, com as seguintes configurações nos quatro adaptadores:

Anexado a: "Rede NAT"
Nome: "NatNetwrok1"

Quando executo as duas VMs, posso ver as seguintes configurações ao executar o comando ifconfig

O ifconfig resulta no 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)

O ifconfig resulta no 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)

O ping entre esses 4 IPs funciona bem,
mas não consigo acessar a Internet em nenhuma dessas VMs.
Se mudar de “Rede NAT” para “NAT”, posso acessar a rede, mas parece que ele se tornou parte de uma rede virtual diferente e não consigo executar ping. eles um do outro
Alguém pode me ajudar a identificar e corrigir problemas

Alguém também pode explicar qual é a diferença entre NAT e NAT Network

ehsan
fonte
Mesmo problema ... Alguém poderia ajudar?
precisa
Recentemente, eu tive esse problema usando a caixa virtual 5.0.40 do repositório padrão do ubuntu. Para contornar isso, configurei cada VM com duas interfaces. Um com um NatNetwork interno e o outro usando o modo bridge. No SO convidado (ubuntu 16.04), você precisará ajustar o / etc / network / interfaces para que a segunda interface apareça no convidado. Isso possibilitou que cada VM estivesse no NAT interno e tivesse acesso à Internet ao mesmo tempo.
JulioHM

Respostas:

7

Por que não está trabalhando?

No 16.04 (e provavelmente no 14.04), o recurso Rede NAT da versão principal do VirtualBox (5.0.36) vem com um bug .

Confira!

Você pode verificar você mesmo: se o ls /usr/lib/virtualbox/VBoxNetNATexecutável estiver presente, você poderá ter algum outro tipo de problema.

Consertá-lo!

Este bug foi corrigido nas versões mais recentes. Então você deve instalar uma nova versão:

Remover versão antiga

Por exemplo, se você instalou usando, aptvocê pode executar:

sudo apt remove virtualbox --auto-remove

Instale nova versão

A correção está disponível para versões mais recentes (Ubuntu yakkety +). Para versões mais antigas:

  • Visite o virtualbox.org e faça o download da versão mais recente manualmente
  • OU
  • Use o seguinte 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
fonte
1
Se você possui uma versão anterior do virtualbox instalada, desinstale também virtualbox-dkmspara que essa correção funcione. Caso contrário, você ainda pode ser preso sem internet
Barak Itkin
7

Eu me deparei com isso usando o VirtualBox 5.0.40 do repositório apt padrão. Para contornar isso, configurei cada VM para usar duas interfaces de rede.

  • Adaptador 1: Bridge Addapter (para o seu nic real)
  • Adaptador 2: Rede NAT (de sua escolha)

No sistema operacional guets (Ubuntu 16.04), você precisará ajustar /etc/network/interfacespara que a segunda interface apareça. No meu caso, eu precisava de VMs para usar IPs estáticos dentro da rede NAT, então é isso que eu tenho.

## 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

Obviamente, isso pressupõe que minha rede NAT use a sub-rede 10.10.11.0/24. Adapte os números ao seu cenário ou deixe-o no dhcp, como desejar.

NOTA: Uma coisa importante a ser observada na configuração estática é que, nesse cenário específico, você NÃO PODE atribuir a ele um gateway padrão. Fornecer enp0s8um padrão (como 10.10.11.1) fará com que o sistema operacional crie uma rota para esse gateway e essa rota também pode danificar seu acesso à Internet. Você só precisa fazer isso quando essa interface específica precisar de rotas para outras redes, além daquela configurada para ela.

Para descobrir os nomes de interface atribuídos pelo Ubuntu ao seu ambiente, você pode dmesg | grep eth.

insira a descrição da imagem aqui

JulioHM
fonte
O meu funcionou melhor quando usei 'dhcp' para eth0 e eth1. Ele apenas atribuiu 10.0.2.15 automaticamente ao NAT e minha internet pública eth1 não tem um IP, mas posso efetuar ping na Internet a partir da VM!
Milean
6

De acordo com o manual do VirtualBox, estas são as possibilidades de rede para suas VMs:

  • NAT: rede interna entre a VM e o host. Além disso, você pode acessar a Internet. Duas ou mais VMs no modo NAT não têm conectividade entre elas, apenas com o host e a Internet.

  • Interno: todas as VMs com esta configuração terão conectividade entre elas, mas não com o host nem a Internet.

  • Somente host: uma rede virtual será criada entre o host e todas as VMs com essa configuração, mas você não terá acesso à Internet.

  • Rede NAT: você pode acessar todas as VMs na mesma rede NAT predefinida e no host, mas não poderá se conectar à Internet.

  • Ponte: sua VM estará na mesma rede que seu host, como se fosse outro computador / servidor nessa rede e, portanto, terá acesso à Internet se o seu host tiver.

  • Genérico: configuração avançada e mais específica raramente usada.

Portanto, se você deseja criar uma rede interna com conectividade ao host, escolha Rede NAT, mas observe que você não terá acesso à Internet. O NAT é definido apenas quando você deseja apenas acesso à Internet a partir da sua VM e nada mais.

No entanto, nenhuma dessas configurações está bem para você se você deseja ter conectividade entre as VMs e a Internet. Até onde eu sei, sua única opção é configurar as duas VMs no modo de ponte, para que sejam computadores 'diferentes' na sua rede host e você poderá executar ping em todas elas e na Internet de qualquer uma delas.

Por outro lado, parece que você clonou uma VM da outra porque ambas as máquinas têm o mesmo endereço MAC ( HWaddr nas informações do comando ifconfig). Lembre-se de marcar a caixa de seleção " Reinicializar o endereço MAC de todas as placas de rede" "ao clonar. Dois dispositivos com o mesmo endereço MAC sempre criam problemas.

Como não sou especialista em VirtualBox, talvez outros usuários possam lhe dizer outras configurações possíveis para obter o que deseja. Espero que você ache esta informação útil.

Para mais informações, você pode ler isso .

Pablo288
fonte
3
Não é verdade que a rede NAT impedirá que seus convidados se conectem à Internet. Eu posso me conectar à Internet a partir de convidados da VM em uma rede NAT. De acordo com o último comentário em forums.virtualbox.org/viewtopic.php?f=3&t=69504 , "O modo NAT significa que cada VM é isolada atrás de seu próprio roteador ... A rede NAT é igual à NAT, exceto que você pode ter várias VMs. conectado ao mesmo roteador interno ".
eebbesen
2

Isso pode ser um erro no VirtualBox. Eu experimentei o mesmo (Ubuntu 16.04.2 LTS, VirtualBox 5.0.32_Ubuntu r112930): Configure uma rede NAT, configurada para duas VMs do Ubuntu. Cada VM poderia executar ping / SSH na outra e, por meio do encaminhamento de porta, eu poderia SSH do host em cada VM. Mas não há acesso à Internet de dentro das VMs. Um colega tentou o mesmo com um host do Windows, o VirtualBox (versão desconhecida) e as mesmas VMs, e funcionou.

Como solução alternativa, configurei uma segunda placa de rede para cada VM: a primeira usando o NAT para acessar a Internet, a segunda usando a "rede NAT" para acessar os outros convidados. Eu tive que configurar o encaminhamento de porta SSH na primeira placa (NAT) e configurar uma porta SSH diferente em uma VM (ou seja, 2222 -> 22 na VM1, 2223 -> 23 na VM2).

Com base na documentação , o NAT e a rede NAT devem poder acessar a Internet. A diferença é que o primeiro possui conexões segregadas de host e convidado, para que os hóspedes não possam acessar um ao outro, apenas o host. O último agrupa todos os convidados em uma única rede (e fornece serviços como DHCP), para que eles possam acessar um ao outro.

Ingo Karkat
fonte