Come configurare NAT e solo host in rete con indirizzo IP statico in VirtualBox

18

Sto provando a impostare una serie di guest in VirtualBox, in modo tale che ognuno di essi possa accedere a Internet e sia visibile l'uno con l'altro e con l'host. Voglio anche che gli ospiti abbiano indirizzi IP statici.

Ecco la procedura che ho seguito finora:

  1. Disattiva la funzionalità Server DHCP della rete Solo host da utilizzare in questa configurazione
  2. Cambia l'indirizzo IP assegnato all'host a 192.168.56.254
  3. Crea una macchina ospite con 2 schede di interfaccia di rete (NIC)
  4. Configura la prima NIC per utilizzare NAT
  5. Configura la seconda NIC per l'utilizzo della rete solo hot
  6. Installa il sistema operativo (Ubuntu Server 13.10) su ciascuno di essi
  7. Aggiorna il sistema operativo
  8. Configura il networking come segue modificando / 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. Salva il file
  2. Reboot

Quando il guest si riavvia, la rete solo host funziona correttamente. Le coppie di macchine host / guest e guest / guest possono eseguire il ping tra loro, tuttavia Internet non funziona come apt-get fallisce.

Se poi emetto un comando service networking restart , il networking inizia a funzionare come dovrebbe.

Che cosa sto sbagliando?

Ho provato a cambiare l'ordine in cui le NIC appaiono nel file /etc/network/interfaces . Ho anche scambiato la rete NAT / solo host tra le 2 schede NIC. Niente ha funzionato.

L'host è Windows 8.1 e l'ospite è Ubuntu Server 13.10. Ho provato lo stesso su Mac OS X con risultati simili.

Apprezzerei molto qualsiasi aiuto in questo.

Aggiornamento:

Ho incluso l'output dai seguenti comandi sotto, per aiutare nella diagnostica:

  • 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

Aggiornamento 2:

Dopo aver eseguito sudo service networking restart , l'output da route -n diventa:

$ 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

Quindi, come posso garantire questa configurazione all'avvio?

    
posta Umar Farooq Khawaja 11.04.2014 - 00:11

2 risposte

14

Sarebbe più semplice risolvere il tuo problema se hai pubblicato i risultati che ottieni durante il ping di un indirizzo esterno (come i server DNS di Google che stai utilizzando), le impostazioni di rete attuali e la tua tabella di routing.

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

Senza saperne di più questo è un po 'buio, ma suppongo che a) non si ottenga un indirizzo DHCP su eth0, o b) le impostazioni del gateway per eth1 stiano giocando con il percorso predefinito DHCP assegnato.

Se non si ottiene un indirizzo DHCP per eth0, è probabilmente una configurazione errata in VirtualBox (come ottenere gli adattatori all'indietro).

In entrambi i casi, non è necessario un gateway o le impostazioni DNS assegnate specificamente per eth1 poiché saranno assegnate da DHCP su eth0, quindi rimuoverei le linee gateway, dns-search e dns-nameserver dalla configurazione. Le tue macchine virtuali saranno ancora in grado di comunicare senza l'impostazione di un gateway se si trovano sulla stessa rete e VirtualBox è impostato correttamente.

Modifica: per assicurarti di non avere un gateway su eth1 dopo il riavvio, rimuovi le righe dal tuo blocco eth1 in modo che assomigli a questo:

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0

Quando hai finito, non avrai linee gateway nel file delle interfacce.

    
risposta data jkt123 11.04.2014 - 01:59
3

Mi è venuta questa soluzione, che è la stessa risposta di @ jkt123 e la domanda di @ Umar, ma più breve. Apprezzerei il feedback su di esso!

In virtualbox, attiva sia le reti NAT che quelle host . (BTW: Funziona sul mio host Win7.Non so come farlo in host Linux).

Sull'host - trova l'interfaccia IP "solo host"

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

Nel guest, modifica / etc / network / interfacce . Il trucco era invertire l'ordine eth1 (solo host) viene PRIMA eth0 (internet / dhcp). Non so perché.

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.

riavvio.

    
risposta data Berry Tsakala 20.11.2015 - 09:51

Leggi altre domande sui tag