Como configurar o NAT e a rede somente para host com endereço IP estático no VirtualBox

17

Estou tentando configurar um conjunto de convidados no VirtualBox, para que cada um deles possa acessar a Internet e ficar visível um para o outro e para o host. Eu também quero que os convidados tenham endereços IP estáticos.

Aqui está o procedimento que eu tenho seguido até agora:

  1. Desativar o recurso do servidor DHCP da rede somente host a ser usada nessa configuração
  2. Altere o endereço IP atribuído ao host para 192.168.56.254
  3. Crie uma máquina convidada com duas placas de interface de rede (NIC)
  4. Configure o primeiro NIC para usar o NAT
  5. Configure a segunda NIC para usar rede somente quente
  6. Instale o SO (Ubuntu Server 13.10) em cada um deles
  7. Atualize o sistema operacional
  8. Configure a rede da seguinte maneira editando / etc / network / interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.254
dns-search cloudspace.local
dns-nameservers 8.8.8.8 8.8.4.4
  1. Salve o arquivo
  2. Reinicializar

Quando o convidado inicializa novamente, a rede Host-Only está funcionando bem. Os pares de máquinas host / guest e guest / guest podem fazer ping uns aos outros, no entanto, a Internet não está funcionando, pois apt-get falha.

Se eu emitir um comando service networking restart , a rede começará a funcionar como deveria.

O que estou fazendo de errado?

Eu tentei mudar a ordem em que as NICs aparecem no arquivo /etc/network/interfaces . Eu também troquei a Rede NAT / Host-Only entre as 2 NICs. Nada funcionou.

O host é o Windows 8.1 e o convidado é o Ubuntu Server 13.10. Eu tentei o mesmo no Mac OS X com resultados semelhantes.

Eu apreciaria muito qualquer ajuda nesse sentido.

Atualização:

Incluí a saída dos seguintes comandos abaixo para ajudar no diagnóstico:

  • cat / etc / network / interfaces
  • ifconfig -a
  • route -n
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.254

$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 08:00:27:75:47:64
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe75:4764/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1180 (1.1 KB)  TX bytes:1332 (1.3 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:93:98:d8
          inet addr:192.168.56.1  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe93:98d8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:140 errors:0 dropped:0 overruns:0 frame:0
          TX packets:225 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14418 (14.4 KB)  TX bytes:27378 (27.3 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1184 (1.1 KB)  TX bytes:1184 (1.1 KB)

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.56.254  0.0.0.0         UG    0      0        0 eth1
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

Atualização 2:

Depois de executar sudo service networking restart , a saída de route -n se torna:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

Então, como posso garantir essa configuração na inicialização?

    
por Umar Farooq Khawaja 11.04.2014 / 00:11

2 respostas

12

Seria mais fácil solucionar seu problema se você postar os resultados obtidos ao tentar fazer ping em um endereço externo (como os servidores DNS do Google que você está usando), as configurações de rede atuais e sua tabela de roteamento.

/sbin/ifconfig -a
/sbin/route -n

Sem saber mais, isso é meio que um tiro no escuro, mas meus palpites são: a) você não está obtendo um endereço DHCP em eth0, ou b) suas configurações de gateway para eth1 estão mexendo com a rota padrão DHCP atribuído.

Se você não está obtendo um endereço DHCP para eth0, é provavelmente uma configuração incorreta no VirtualBox (como recuperar seus adaptadores).

De qualquer maneira, você não precisa de um gateway ou configurações de DNS designadas especificamente para eth1, já que isso será atribuído pelo DHCP em eth0, então eu removerei as linhas gateway, dns-search e dns-nameservers da sua configuração. Suas máquinas virtuais ainda poderão se comunicar sem uma configuração de gateway se estiverem na mesma rede e o VirtualBox estiver configurado corretamente.

Editar: Para garantir que você não tenha um gateway na eth1 após a reinicialização, remova as linhas do seu bloco eth1 para que fique assim:

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0

Quando estiver pronto, você não terá nenhuma linha de gateway no arquivo de interfaces.

    
por jkt123 11.04.2014 / 01:59
3

Eu inventei essa solução, que é a mesma que a resposta do @jkt123, e a pergunta do @Umar, mas mais curta. Eu apreciaria o feedback sobre isso!

No VirtualBox, ative as redes NAT e somente host . (BTW: Funciona no meu host win7. Eu não sei como fazer isso no host linux).

No host - localize o ip da interface "somente host"

ipconfig /all     # for windows host
ifconfig -a       # for linux host

No convidado, edite / etc / network / interfaces . O truque foi reverter a ordem eth1 (somente host) vem BEFORE eth0 (internet / dhcp). Eu não sei porque.

auto lo                        # keep the original loopback settings
iface lo ...                   # yeah, i don't remember, just keep it.

# ----> Ok, this is my addition <-----
auto eth1                      
allow-hotplug eth1             # i think hotplug it helps. not sure.
iface eth1 inet static
address 192.168.56.100         # arbitrary IP address between 2 and 254

auto eth0                      # This is the original content
iface eth0 inet dhcp           #  of this file, now at the end.

reinicie.

    
por Berry Tsakala 20.11.2015 / 09:51