Aproveitando o gancho do Hugo Dória com o Instalando o virtualbox no Arch Linux, vamos à parte chata boa.
Começando pela configuração de rede, que depende do que você deseja para sua guest machine. O vbox disponibiliza 3 tipos: Network Address Translation (NAT), Host Inferface (bridge) e Internal Networking (bridge seguro).
O modo NAT basicamente faz com que o o host (hospedeiro) atue como roteador para as guest’s (VM – máquinas virtuais), mapeando o tráfico entre a guest e o host (ou a rede externa) de forma transparente, utilizando um socket. Embora o tráfico passe transparente entre as partes, a guest não é visível ou alcançável atrás do NAT (a menos que se faça um port forwarding [redirecionamento de portas]), nem mesmo para o host.
A configuração da interface de rede é completamente diferente da do host. A guest irá assumir se conectar a uma rede 10.0.2.0 na primeira interface (seguindo para 10.0.3.0 e assim por diante nas demais). Para aplicações ou demais máquinas na mesma rede que o host, os acessos serão como provenientes do host.
Abaixo uma ilustração melhor:
Bem, para fazer o port forwarding basta adequar o exemplo abaixo para a porta que você deseja (aqui para acesso ssh):
VBoxManage setextradata “Linux Guest”
“VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol” TCP
VBoxManage setextradata “Linux Guest”
“VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort” 22
VBoxManage setextradata “Linux Guest”
“VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort” 2222
Isso também pode ser feito usando iptables, no entanto não cobrirei aqui.
Observações: O modo NAT nos dá 2 limitações importantes: encontrar compartilhamentos Windows navegando pela rede (pode ser feito se for acesso direto via nome da máquina ou IP), além de necessitar realizar port forwarding das portas TCP e UDP 135, 137 e 139, e não haverá resposta para ping ao host ou qualquer máquina fora da rede privada.
Usando o modo Host Interface, o vbox criará uma nova interface de rede no host (interface TAP – Virtual Ethernet Network, usado para tunelamento de ethernet), que irá coexistir com as interfaces existentes reais (como eth0). A guest irá utilizar a interface criada para realizar uma ponte (bridge) entre a interface real (eth0) e a virtual (tap0).
Este processo terá que ser feito manualmente, abaixo especificamente para o ArchLinux:
Instalando os pacotes:
# pacman -S bridge-utils
# pacman -S uml_utilities
Carregando o módulo:
# modprobe tun
*Você também pode adicionar o módulo tun na linha MODULES=(…) de seu rc.conf.
Verificando se o device foi criado com sucesso:
$ file /dev/net/tun
/dev/net/tun: character special (10/200)
Se a saída for:
/dev/net/tun: ERROR: cannot open `/dev/net/tun’ (No such file or directory)
Você deve corrigir isto com:
# mkdir -p /dev/net
# mknod /dev/net/tun c 10 200
Incluindo a seguinte linha no arquivo /etc/udev/rules.d/60-vboxdrv.rules:
KERNEL==”tun”, OWNER=”root”, GROUP=”vboxusers”, MODE=”0660″
Corrigindo permissão na interface:
# chown root:vboxusers /dev/net/tun
# chmod 0660 /dev/net/tun
Criando a interface tap0 (substitua username pelo seu usuário):
# tunctl -b -t tap0 -u username
Criando a bridge:
# brctl addbr br0
Alternando sua interface física para modo “promíscuo”, assim irá aceitar as configurações da bridge (substitua eth0 pela sua interface):
*lembre-se de guardar as configurações atuais, caso use ip fixo!!!
# ifconfig eth0 0.0.0.0 promisc
Adicionando sua interface real à bridge:
# brctl addif br0 eth0
Configure a sua rede na bridge:
Usando DHCP (substitua hostname pelo nome da sua máquina):
# dhcpcd -t 30 -h hostname br0 &
Ou usando ip fixo, com as mesmas configurações anteriores:
# ifconfig br0 x.x.x.x netmask x.x.x.x
Adicionando a interface virtual à bridge:
# brctl addif br0 tap0
Levantando a interface virtual:
# ifconfig tap0 up
Você também pode configurar a seção de rede do seu rc.conf de acordo com o exemplo abaixo, assim poderá levantar a interface usando o /etc/rc.d/network restart:
lo=”lo 127.0.0.1″
BRIDGE_INTERFACES=(br0)
bridge_br0=(eth0)
br0=”dhcp”
eth0=”eth0 0.0.0.0 promisc”
INTERFACES=(lo br0 eth0)
Internal Networking é similar ao Host Interface, onde a guest se comunica diretamente à rede. No entanto, a rede é limitada à outras VM’s conectadas à mesma rede interna. O tráfego entre as VM’s é totalmente invisível ao mundo externo, inclusive o próprio host. Os dados são transferidos diretamente através de operações de cópia direta de memória entre as VM’s no mesmo hospedeiro.
Este modo é interessante por dois motivos:
Segurança: Todo o tráfego transita através do módulo RO dentro do VirtualBox.
Velocidade: O tráfego é realizado dentro da memória, mas sem repassa-lo à outras camadas. Assim não é necessário entrar na pilha de tráfego de rede do sistema operacional.
Ao configurar a rede no modo Internal Networking pela interface gráfica do VirtualBox, você não pode modificar o nome da rede interna (o padrão é intnet). Para setar o modo Internal Network via linha de comando use:
# VBoxManage modifyvm [VM name] -nic[X] intnet
Opcionalmente você pode setar um nome para sua rede:
# VBoxManage modifyvm [VM name] intnet[X] [network name]
Você terá que configurar a interface da VM para utilizar endereço IP estático, pois este modo não suporta servidor DHCP). Estes IP’s deverão estar na mesma subnet, como: 192.168.2.1, 192.168.2.2, 192.168.2.3 etc.
Observações: O modo Internal Networking não há entrada ou saída de tráfego externo, apenas VM’s conectadas umas às outras numa mesma rede interna. Para ter acesso à internet, é necessário utilizar uma segunda interface utilizando NAT na guest.
Isso é tudo pessoal!
fevereiro 26th, 2008 at 8:46 am
O post ficou ótimo, Kessia! Já recomendei no meu. Assim que chegar em casa vou dar uma testada em todos os modos também.
Abraços.
fevereiro 26th, 2008 at 10:02 am
Legal Késsia, quando eu instalar o Virtual Box, já sei onde buscar as informações para colocar meus S.O’s na rede.
Uma pergunta meio off-topic:
- Que software você usou para desenhar esta topologia de rede? ^^
Agradeço.. e ótimo dia!
fevereiro 26th, 2008 at 12:04 pm
Opa! Valeu!
@Jeferson: usei o Gliffy (http://www.gliffy.com) para fazer o básico (ícones basicamente), mas tive que refazer quase tudo no Inkscape mesmo. =)
fevereiro 26th, 2008 at 9:45 pm
Um desenho colorido vale por 79 parágrafos (cerca de)
=D
fevereiro 27th, 2008 at 12:09 am
[...] A Kessia fez um ótimo post mostrando como fazer a configuração de rede no virtualbox. Recomendo! Compartilhe: These icons link to social bookmarking sites where readers can share and [...]
fevereiro 27th, 2008 at 10:55 am
Putz muito bom hein! Parabéns, super caprichado, assim facilita a leitura, isso que é mulher! Quer se casar comigo?
fevereiro 27th, 2008 at 2:20 pm
[...] por Kessia Pinheiro (kessiapinheiroΘgmail·com) – referência [...]
fevereiro 27th, 2008 at 2:37 pm
Hm, para interesse: sou compromissada. =)
E obrigada.
fevereiro 27th, 2008 at 5:26 pm
q programa vc usou para fazer as imagens? alguma espécie de DIA?
fevereiro 27th, 2008 at 11:19 pm
Kessia, vc ja testou no ubuntu?? tentei fazer modo bridge não seguindo esse post, mas nao obtive sucesso.
fevereiro 27th, 2008 at 11:46 pm
Parabéns pelo post, fazia um tempo que eu tinha procurado esse tema bem explicado.
fevereiro 28th, 2008 at 12:14 am
A única coisa que estraga é que você é compromissada hehe. De qualquer forma, parabéns novamente!
fevereiro 28th, 2008 at 11:14 am
Muito bom! Apenas uma correção:
Para levantar a interface virtual é
ifconfig tap0 up
afinal, criamos a tap0 e não a tap1.
Mas este é um erro pequeno, que facilmente percebemos e corrigimos.
Testei no Ubuntu 7.10 e funcionou perfeitamente!
Parabéns pelo Post! Estava a um tempão procurando por essa informação.
fevereiro 28th, 2008 at 8:28 pm
Instalei o virtual box no meu Ubuntu e instalei o windows xp.
Tentei fazer o nat com o port forwarding, mas não entendi muito bem os comandos, se alguem puder explicar com mais detalhes os comandos.
maio 14th, 2008 at 10:48 am
E quando o host é windows? Como fazer para uma VM linux comunicar com o host windows?
obrigado,
julio
maio 14th, 2008 at 10:50 am
Desculpe, mas Windows não esta nos meus conhecimentos. Nunca utilizei Windows a fundo para dizer. . . Creio que o PDF sobre networking do VirtualBox explica.
julho 4th, 2008 at 12:50 pm
[...] algum tempo eu escrevi um post sobre configurações de rede no VirtualBox. Bem, para que meu host tivesse contato com a guest preciso de uma conexão do tipo Host Interface [...]
julho 20th, 2008 at 9:28 pm
[...] Pesquisando um pouco no oráculo, encontrei no blog da Kessia Pinheiro um ótimo post sobre o assunto, VirtualBox, configurações de rede. [...]
setembro 1st, 2008 at 2:43 pm
[...] A Kessia fez um ótimo post mostrando como fazer a configuração de rede no virtualbox. Recomendo! KDEMod 4.1 no Arch LinuxComo criar pacotes para o Arch Linux – parte II – pacotes svn e [...]
setembro 2nd, 2008 at 8:45 am
segui seu exemplo no fedora parece ter dado certo a interface eth1 antes utilizada por min para fazer a conecção fical sem ip o ip dela ficol na br0 a maquina hospedeira funcionol perfeitamente ja a maquina virtual winxp conectada a tap0 so pinga para a bridge br0 não pinga para a rede local nem funciona a internete..qual configuração teria que ficar na placa de rede do win xp? na configuração da maquina virtual coloquei conectar na interface do hospedeiro..o que pode estar errado??
setembro 3rd, 2008 at 10:54 am
preciso saber o seguinte:
tenho uma conexão tim web no hospedeiro que tem sistema windows XP, ele tem um ip tipo 189.164.XXX.XXX que é o ip da internet. e eu tenho um servidor apache instalado numa vm com linux CentOs4.6. Este linux tem o IP 192.168.0.5. Eu queria saber como rotear para que ao acessar externamente pelo http://189.164.xxx.xxx veja o servidor apache do linux… tem como??
fevereiro 24th, 2009 at 9:23 am
Parabéns o post, está muito simples e bem explicado.
agosto 29th, 2009 at 8:17 pm
Ótimo Post Kessia! Porém não consegui fazer com que o meu guest Win2003 acesse diretamente a placa de rede (para fornecer boot PXE aos clientes da rede)… voce tem alguma ideia? abraço!
PS: Novamente, ótimo post!
outubro 5th, 2009 at 2:12 am
[...] http://even.archlinux-br.org/blog/virtualbox-configuracoes-de-rede [...]
agosto 11th, 2010 at 11:03 am
Parabéns, ótimo artigo. Abordou o tema de forma clara, direta e prática.
Diego Ferreira
setembro 9th, 2011 at 12:03 pm
Perfeito! Se não fosse seu post eu não descobria essa emulação de interface (tap0) nem tão cedo. A bridge linkou a real e a virtual! Sacar como passar essas configurações usando a interface do vbox é que foi difícil. Valeu!