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”
I commenti sono chiusi.
Sai anche come associare diverse VirtualBox a diverse interfacce di rete (eth0, eth1, eth2)? Grazie per l’ottimo post!
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.
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
http://it.wikipedia.org/wiki/Bridge_%28informatica%29
http://it.wikipedia.org/wiki/Router
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
Sistema operativo?
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????
Praticamente ho notato che tirando su la BR0 smonta la Eth0.
Ok, faccio alcune prove e poi ti riferisco, abbi un attimo di pazienza. 🙂
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?
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.
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……..
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.
Questa illustrata infatti è la modalità permanente. Se leggi nel manuale di VirtualBox puoi trovare la soluzione dinamica.
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.
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.
c’è un errore:
”
eht1 e la sua netmask ottenibili usando il comando “ifconfig eth0?.
“
Grazie per la segnalazione. Corretto l’errore.
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 😉
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
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 d’uscita:
NS_ERROR_FAILURE (0x80004005)
Componente:
Console
Interfaccia:
IConsole {e3c6d4a1-a935-47ca-b16d-f9e9c496e53e}
dovrei aggiungere altri device tipo “tap1” “tap2” ecc….?
Grazie
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
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).
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 ?
Indica quali indirizzi IP hanno le macchine virtuali e il sistema operativo ospitante. Con Windows puoi usare il comando ipconfig mentre con Linux ifconfig.
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
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
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”
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.
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
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.
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.
Che versione usi?
Comunque se guardi l’immagine, puoi scegliere l’interfaccia host: http://img151.imageshack.us/img151/5544/immagine1h.png
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
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.
si ma solo mettendo solo-host, non funziona, devo modificare qualche altra cosa? Buona giornata
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?
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.
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