Creazione di Host Interface per VirtualBox

Se si vuole installare un web server o programmi che possono essere fruibili dall’host non si può far uso della NAT, ma bisogna scegliere una host interface.
Per fare in modo che la macchina virtuale possa essere vista dall’host è necessario scegliere l’host interface network come modalità di connessione di rete. La NAT, predefinita, non permette di collegarsi dall’host alle porte del sistema operativo virtualizzato.
Per ogni virtual machine è necessario creare un’host interface, quindi se ci sono più server eseguiti contemporaneamente su più macchine virtuali sul sistema operativo dell’host devono essere presenti più reti.
Attenzione perché questa modalità può esporre la virtual machine a problemi di sicurezza e inoltre devono essere modificate le impostazioni di rete della sistema ospitante.

Con VirtualBox il sistema migliore è creare un bridge ethernet, praticamente creare una scheda di rete software che ne gestisce molte. Questo fa si che per fare questa cosa ci sono molti modi che dipendono dal sistema operativo dell’host.

Nel caso di sistemi operativi con kernel Linux si può adoperare un interfaccia TAP.
Accertarsi di poter accedere al device /dev/net/tun, ovvero di avere i permessi per l’utente che usa VirtualBox e quella periferica.
Si può scegliere se utilizzare il device in modo permanente (permanent) oppure dinamico (dynamic). Nel primo caso l’interfaccia rimarrà attiva sempre, mentre nel secondo verrà avviata e disattivata durante il periodo di esecuzione della virtual machine.

Tipo permanente
Per ogni tipo di distribuzione sul sistema operativo ospitante le istruzioni, purtroppo, cambiano.

Debian e Ubuntu
La prima cosa da fare è installare il pacchetto “User Mode Linux utilities” chiamato “uml-utilities” insieme a le “bridge-utilities” (bridge-utils).
Dopo l’installazione con apt-get, bisogna aggiungere l’utente che adopera la virtual machine al gruppo “uml-net” (dove nomeutente è il nome dell’utente).
# gpasswd -a nomeutente uml-net
Aprire il file /etc/network/interfaces e aggiungere alla fine del file queste cinque righe:

auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user nomeutente

La parola nomeutente va cambiata con il nome dell’utente che usa l’interfaccia e il nome tap0 può essere cambiato con un altro, se già utilizzato. Per informazioni aggiuntive si può consultare i file /usr/share/doc/uml-utilities/README.Debian e /usr/share/doc/ifupdown/examples/network-interfaces.gz
Ora bisogna attivare la scheda, con privilegi root:

sudo /sbin/ifup tap0
sudo /sbin/ifup br0

L’interfaccia sarà disponibile al prossimo riavvio del sistema operativo. C’è ancora un passaggio da fare, inserire delle informazioni su br0 (il bridge). Aprire il file /etc/network/interfaces e digitare le tre righe:

auto br0
iface br0 inet dhcp
bridge_ports all tap0

Con queste istruzioni al bridge viene assegnato un IP usando il DHCP. Nei file elencati prima: README.Debian.gz e network-interfaces.gz ci sono le procedure per assegnare un indirizzo statico al bridge e alcune informazioni.

Avviare VirtualBox e nelle proprietà della macchina virtuale nel menù network scegliere Host Interface Network e indicare in “Attached to” l’interfaccia “tap0”.

OpenSuse Fedora e altre
Non utilizzare la scheda di rete eth0 mentre si esegue questa procedura.

Installare i “bridge-utils” per la propria distribuzione. Da root eseguire il comando:
# brctl addbr br0
Impostare l’interfaccia hardware di rete già esistente eth0 in modalità promiscua.
# ifconfig eth0 0.0.0.0 promisc
Accoppiare la scheda di rete al brigde:
# brctl addif br0 eth0
Se si usa DHCP:
# dhclient br0
Se non si DHCP, lanciare scegliere un IP e la sua netmask:
# ifconfig br0 x.x.x.x netmask x.x.x.x
Dove in x.x.x.x e in netmask x.x.x.x vanno inseriti l’indirizzo ip della scheda di rete eth1 e la sua netmask ottenibili usando il comando “ifconfig eth1”.
Per creare la nuova interfaccia vbox0 digitare:
#VBoxAddIF vbox0 nomeutente br0
Dove nomeutente è l’utente che userà la machcine virtuale.
Per rimuovere l’interfaccia usare “VBoxDeleteIF vbox0”.

Avviare VirtualBox e nelle proprietà della macchina virtuale nel menù network scegliere Host Interface Network e indicare in “Attached to” l’interfaccia “vbox0”.

Per Windows basta digitare a riga di comando (START>ESEGUI e digitare cmd):
VBoxManage createhostif “VM1ext”
Nelle proprietà della macchina virtuale indicare in host interface la scheda virtuale “VM1ext”.
La procedura in Windows è semplice perchè durante l’installazione di VirtualBox viene installato un driver per la scheda.

39 pensieri riguardo “Creazione di Host Interface per VirtualBox

  1. Francesco ha detto:

    Sai anche come associare diverse VirtualBox a diverse interfacce di rete (eth0, eth1, eth2)? Grazie per l’ottimo post!

  2. admin ha detto:

    Penso ci siano due possibilità o crei tanti bridge quante le interfacce e le colleghi ognuna alla virtual machine oppure colleghi tutte le interfacce a un solo bridge.
    Sinceramente non ho mai provato.

  3. Lucky90 ha detto:

    Ciao io ho questo problema: Host XpPro con 2 schede di rete (rete interna e rete esterna) e tutte le macchine virtuali (XpPro, 2KServ…ecc) devono avere la medesima configurazione ossia 2 schede di rete (sempre rete interna ed esterna).

    Quindi dovrei creare 2 Bridge per associare tutte le virtuali “interne” con la fisica “interna” e tutte le virtuali “esterne” con la fisica “esterna”……

    la “interna” e “l’esterna” non devono vedersi…..per intenderci una lavora su 192.168.x.x e l’altra su 10.x.x.x e non devono essere “nattate”

    Ma con XpPro è possibile creare un solo Bridge!!!
    Come posso risolvere??? Grazie 1000 in anticipo

  4. Andrea ha detto:

    Fantastico. Con questa guida ho risolto i miei problemi. Ma non sono riuscito a trovare come si possa attivare dinamicamente l’interfaccia quando si lancia virtual box.
    Grazie di tutto

  5. admin ha detto:

    Sistema operativo?

  6. Andrea ha detto:

    Ubuntu 7.10 con virtual box 1.5 ose.
    Diciamo poi che si è aggiunto uno strano problema. Quando il pc parte tira su l’interfaccia br0 e non la eth0 o meglio sembra (e parlo per ignoranza) che la tiri su come ipv6 e non 4 come mi servirebbe. Se poi faccio ifdown e ifup dell’eth0 la vede bene. Quindi in realtà mi interfaccio con il “mondo” (rete aziendale) con la BR0.
    Sai niente a riguardo????

  7. Andrea ha detto:

    Praticamente ho notato che tirando su la BR0 smonta la Eth0.

  8. admin ha detto:

    Ok, faccio alcune prove e poi ti riferisco, abbi un attimo di pazienza. 🙂

  9. admin ha detto:

    con l’interfaccia host il guest e l’host sono collegati in una rete per loro.
    L’interfacce dinamiche richiedono l’accesso root per essere creare e rimosse.
    Hai usato lo script contenuto nel manuale (pagina 71) o nella documentazione?

  10. Andrea ha detto:

    Ho seguito passo passo la tua procedura mettendo però a Br0 l’ip statico. Non so se debbo legare ance l’eth0 al bridge come la tap0.

  11. Davide ha detto:

    ho seguito la tui guda e funziona solo che, non riesco più a navigare facendo ilo ping veo il router ma non naviga più come è possibile ecco la mia config:

    auto lo
    iface lo inet loopback

    iface eth0 inet static
    address 192.168.1.210
    netmask 255.255.255.0
    gateway 192.168.1.1

    #auto tap0
    #iface tap0 inet manual
    #address 192.168.1.211
    #netmask 255.255.255.0
    #tunctl_user davide

    #auto br0
    #iface br0 inet dhcp
    #bridge_ports all tap0

    auto eth0

    ovviamente i commenti li ho ahhinti io per navigare……..

  12. Viggio ha detto:

    Ciao, ho seguito la tua guida e tutto funziona correttamente (Ubuntu).
    Purtroppo però il boot rallenta parecchio e diventa “infinito” se avvio il computer scollegato dalla rete.
    C’è un modo di velocizzare il tutto? Posso sostituire la parte aggiunta nel file “/etc/network/interfaces” con uno script che avvio manualmente all’occorrenza (es. prima di laciare virtual box)?
    Grazie.

  13. admin ha detto:

    Questa illustrata infatti è la modalità permanente. Se leggi nel manuale di VirtualBox puoi trovare la soluzione dinamica.

  14. Shella ha detto:

    Ciao, complimenti per l’howto. Fantastico.
    Prima di accingermi a provarlo però mi chiedevo se come sistema ospitante intendi il sistema sul quale è installatolo stesso Virtualbox… insomma quello reale e non quello emulato giusto? Mi sento sciocco a fare questa domanda, sarà l’ora tarda ma prima di fare qualsiasi cosa voglio essere sicuro al 100% di aver capito bene! Grazie e complimenti ancora!
    Shella.

  15. admin ha detto:

    Per ospitante intendo che ospita, quindi il sistema operativo sul quale viene fatto girare il software e la macchina virtuale. Per ospite intendo il sistema operativo caricato sulla VM.

  16. marco ha detto:

    c’è un errore:

    eht1 e la sua netmask ottenibili usando il comando “ifconfig eth0?.

  17. valent ha detto:

    Grazie per la segnalazione. Corretto l’errore.

  18. angelo ha detto:

    ciao a tutti,
    ehm … io ho windows vista e ho virtual box installato e ci ho installato lo stesso windows vista l’x86 (per provarlo un pò) … mmm sul windows vista che ho sul computer vado su START -> ESEGUI -> e scrivo CMD … poi scrivo VBoxManage createhostif “VM1ext” però mi dice questo : “VBoxManage” non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch … che devo fare ?
    in caso mi potete spiegare passo passo ? grazie mille 😉

  19. valent ha detto:

    Devi modificare le variabili d’ambiente e inserire il percorso del file VBoxManage.

    http://www.vistaheads.com/forums/microsoft-public-windows-vista/151306-variabili-dambiente.html

  20. Lorenzo ha detto:

    Ciao, io uso una Ubuntu 8.04, ho quindi seguito la prima parte del consiglio e per la prima VM avviata ha funzionato; e’ entrata in rete prendendosi un IP dal DHCP , naviga ed e’ visibile e raggiungibile in ssh all’host ubuntu.
    Adesso pero’ se cerco di avviare una seconda VM in contemporanea con la prima, appena metto il valore di tap0 ed avvio l’immagine mi da il seguente errore :

    Failed to initialize Host Interface Networking.
    VBox status code: -3100 (VERR_HOSTIF_INIT_FAILED).

    Codice&nbspd’uscita:
    NS_ERROR_FAILURE (0x80004005)
    Componente:
    Console
    Interfaccia:
    IConsole {e3c6d4a1-a935-47ca-b16d-f9e9c496e53e}

    dovrei aggiungere altri device tipo “tap1” “tap2” ecc….?

    Grazie

  21. rednet ha detto:

    Ciao ragazzi io dovrei collegare la rete della macchina virtuale ( eth0 ) nella stessa rete dove ho windows con su virtualbox, ho creato una VM1ext ma che indirizzi ip devo dargli sia alla VM1ext che all’eth0 ? ho un dhcp ma nessuna delle due lo prende …
    Many Thank

  22. valent ha detto:

    La cosa migliore è ovviamente il NAT. L’host interface non permette ad una macchina virtuale di collegarsi ad un altra. Devi scegliere la tipologia NAT per entrambe le VM e naturalmente sulle macchine virtuali devi lasciare aperte le porte (potrebbe esserci un firewall).

  23. alessandro gangemi ha detto:

    Ciao io ho un problemone : monto sul mio pc due schede di rete , ora vorrei con virtual box 2.1.4 installare un firewall ma quando vado a fare la configurazione con vbox su interfacci host , seleziono la scheda di rete di windows ma windows mi dice ke rivela un conflitto di ip ma come è possibile ?

  24. valent ha detto:

    Indica quali indirizzi IP hanno le macchine virtuali e il sistema operativo ospitante. Con Windows puoi usare il comando ipconfig mentre con Linux ifconfig.

  25. alessandro gangemi ha detto:

    Inanzitutto grazie per la risposta
    Allora il sistema che voglio installare è endian firewall e in pratica il mio pc ha due schede di rete con ip 192.168.1.7 e 192.168.1.8 ora io tramite la modalità host dovrei assegnare queste 2 schede fisiche a 2 schede virtuali ma quando vado a selezionare con virtual box 2.1.4 ( ricordo ke nn necessità + di bridge come in precedenza ) mi dice che win sulla macchina reale ha trovato un conflitto di ip

  26. vittorio ha detto:

    Ciao , io non riesto ad eseguire il comando VBoxManage createhostif “VMlext”, il prompt non mi riconosce createhostif.

    Syntax error : Invalid command ‘createhostif’

    Uso windows vista e virtualbox 2.1.4

    Grazie in anticipo a chi di buona volontà mi possa dare qualke utile suggerimento

  27. valent ha detto:

    Il problema è che Windows non riconosce l’eseguibile di VirtualBox. Devi usare il prompt dei comandi, entrare nella cartella di VirtualBox dove c’è l’eseguibile che vuoi usare e digitare nel prompt:
    > VBoxManage.exe createhostif “VMlext”

  28. vittorio ha detto:

    Grazie Valent sei stato velocissimo, stavo per scrivere che avevo risolto in altro modo, però proverò anke la tua soluzione. Praticamente ho aggiunto l’interfaccia direttamente dall’interfaccia grafica di VBox, semplicemente dalle impostazioni della macchina virtuale.

  29. Fabio ha detto:

    Il problema è che Windows non riconosce l’eseguibile di VirtualBox. Devi usare il prompt dei comandi, entrare nella cartella di VirtualBox dove c’è l’eseguibile che vuoi usare e digitare nel prompt:
    > VBoxManage.exe createhostif “VMlext”

    Nemmeno cosi a me funziona, dà lo stesso errore, potresti gentilmente dirmi dettegliatamente un altro metodo o il metodo che ha usato vittorio tramite l’interfaccia?

    Uso XP e VirtualBox 2.2

    Ti ringrazio anticipatamente

  30. valent ha detto:

    In VirtualBox, vai nelle impostazioni della macchina virtuale.
    Nella sezione rete, c’è la possibilità di aggiungere una nuova interfaccia e attribuirle una tipologia di rete (attach to), scegli interfaccia host.

  31. Fabio ha detto:

    Nelle impostazioni della macchina virtuale, nella sazione rete ho 4 linguette con 4 schede, di cui una abilitata e le altre 3 no, ma sarebbe possibile abilitarle, in ogni scheda c’è la possibilità di scegliere un tipo di scheda tra cui pc-net fast II, pc-net fast III ecc, subito sotto c’è connesso a: e posso scegliere tra non connesso, nat, rete con bridge, rete interna e rete solo-host, non so cosa sbaglio..

    ti ringrazio per la pazienza.

  32. valent ha detto:

    Che versione usi?
    Comunque se guardi l’immagine, puoi scegliere l’interfaccia host: http://img151.imageshack.us/img151/5544/immagine1h.png

  33. Fabio ha detto:

    Utilizzo la 2.2, ma al posto di interfaccia host ho non connesso, nat, rete con bridge, rete interna e rete solo-host, avranno cambiato con la nuova versione. Cmq se dovessi mettere solo-host poi oltre ok cosa dovrei fare, modificare qualche valore o altro? Ti ringrazio

  34. valent ha detto:

    Solo host, probabilmente le hanno cambiato nome. La 2.1.4 possiede la voce interfaccia host, che forse non è molto chiara ai non addetti ai lavori.

  35. Fabio ha detto:

    si ma solo mettendo solo-host, non funziona, devo modificare qualche altra cosa? Buona giornata

  36. paolo de vincenzi ha detto:

    Salve ho un problema simile,io ho virtualbox2.2,su host xp e ho virtualizzato un altro xp, funziona e ho anche la cartella condivisa l’unica cosa è che l’xp virtualizzato non riesce a navigare ne con firefox ne con altro, la connessione c’è (ho scaricato i guest addition,ma la virtualboxhost only network alla voce Stato mi dice “connettività assente o limitata.Questo nell’icona della tray sia dell’host che del guest .Ho un modem usb.Grazie per l’eventuale aiuto
    ps
    Ho letto che nella precedente versione di virtualbox non si avevano queste difficoltà di connessione vi risulta?

  37. valent ha detto:

    Semplice, con la tipologia di rete che hai scelto non puoi collegarti ad Internet. In pratica crei una rete esclusivamente tra macchina virtuale e host.
    Se vuoi collegarti ad Intenet, seleziona NAT come tipologia.

  38. paolo ha detto:

    in NET era predefinito dall’installazione ma non sono riuscito a navigare lo stesso dall’xp virtualizzato, poi le ho provate quasi tutte,ho quella dannata icona con triangolino giallo sia sull’host che sul guest che mi dice connettivita assente o limitata, facendo clic destro sull’icona,poi -status-poi -supporto-,mi dice “il problema si è verificato perche la rete non ha assegnato un indirizzo di rete al computer”,non è che me ne intendo tantissimo e non so che fare.stavo pensando di disinstallare e reinstallare Vbox e magari provare la versione precednte

I commenti sono chiusi.

virtual machine

Articolo precedente

VirtualBox 1.5.2
parallels

Articolo successivo

VPS: Regole d’oro prima dell’acquisto