Even me. . .

some things about some things.

Browsing This

VirtualBox, configurações de rede

Posted in fevereiro 25th, 2008
Published in archlinux, network

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).

Network Address Translation [NAT]

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:

NAT com Virtualbox

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.

Host Inferface [Bridge]

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).

Abaixo uma ilustração melhor:
Bridge com VirtualBox

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 [Bridge Seguro]

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.

Abaixo uma ilustração melhor:
Internal Netwoking com VirtualBox

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!

Enviar artigo em PDF para PDF Creator

22 Users Commented In " VirtualBox, configurações de rede "

Subscribes to this post Comment RSS or TrackBack URL
2-26-2008 at 08:46:25 from 189.71.177.104    

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.

2-26-2008 at 10:02:58 from 189.46.13.169    

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!

Kessia Pinheiro BRAZIL Linux Mozilla Firefox 3.0b3 says,
2-26-2008 at 12:04:32 from 200.128.60.12    

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. =)

nofxx BRAZIL Mac OS X Opera 9.50 says,
2-26-2008 at 21:45:19 from 201.16.241.219    

Um desenho colorido vale por 79 parágrafos (cerca de)

=D

ganso BRAZIL Windows XP Mozilla Firefox 2.0.0.12 says,
2-27-2008 at 10:55:16 from 201.43.64.97    

Putz muito bom hein! Parabéns, super caprichado, assim facilita a leitura, isso que é mulher! Quer se casar comigo?

Kessia Pinheiro BRAZIL Linux Mozilla Firefox 3.0b3 says,
2-27-2008 at 14:37:25 from 200.128.60.12    

Hm, para interesse: sou compromissada. =)
E obrigada.

fulano BRAZIL Windows XP Internet Explorer 6.0 says,
2-27-2008 at 17:26:00 from 189.19.49.221    

q programa vc usou para fazer as imagens? alguma espécie de DIA?

adrix Windows XP Mozilla Firefox 2.0.0.12 says,
2-27-2008 at 23:19:11 from 189.71.170.129    

Kessia, vc ja testou no ubuntu?? tentei fazer modo bridge não seguindo esse post, mas nao obtive sucesso.

2-27-2008 at 23:46:47 from 189.34.244.138    

Parabéns pelo post, fazia um tempo que eu tinha procurado esse tema bem explicado.

:-)

ganso BRAZIL Windows XP Mozilla Firefox 2.0.0.12 says,
2-28-2008 at 00:14:23 from 201.95.193.172    

A única coisa que estraga é que você é compromissada hehe. De qualquer forma, parabéns novamente!

Edgar Szilagyi BRAZIL Ubuntu Linux Mozilla Firefox 2.0.0.12 says,
2-28-2008 at 11:14:14 from 200.212.122.137    

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.

Leandro Ubuntu Linux Mozilla Firefox 2.0.0.12 says,
2-28-2008 at 20:28:18 from 189.72.151.90    

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.

julio BRAZIL Windows XP Mozilla Firefox 2.0.0.14 says,
5-14-2008 at 10:48:49 from 200.182.25.98    

E quando o host é windows? Como fazer para uma VM linux comunicar com o host windows?
obrigado,
julio

Kessia Pinheiro BRAZIL Debian GNU/Linux Mozilla Firefox 2.0.0.12 says,
5-14-2008 at 10:50:52 from 200.128.60.41    

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.

Aldair BRAZIL Fedora Linux Mozilla Firefox 3.0b5 says,
9-2-2008 at 08:45:19 from 201.73.217.194    

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??

raul Windows XP Mozilla Firefox 3.0.1 says,
9-3-2008 at 10:54:09 from 189.65.72.164    

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??

Fernando PORTUGAL Windows Vista Mozilla Firefox 3.0.6pre says,
2-24-2009 at 09:23:52 from 78.130.9.142    

Parabéns o post, está muito simples e bem explicado.

Trackback & Pingback
2-27-2008 at 00:09:54 from 208.113.185.53    
2-27-2008 at 14:20:13 from 201.91.75.133    
7-4-2008 at 12:50:09 from 208.113.185.53    
7-20-2008 at 21:28:30 from 72.233.76.66    
9-1-2008 at 14:43:21 from 208.113.185.53    

Leave Your Reply Below

 Username

 Email Address

 Website

Sticky note: Please double check your comments before submit Please Note: The comment moderation maybe active so there is no need to resubmit your comment

About The Site

myimgLorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque sed felis. Aliquam sit amet felis. Mauris semper, velit semper laoreet dictum, quam diam dictum urna, nec placerat elit nisl in quam. Etiam augue pede, molestie eget, rhoncus at, convallis ut, eros. Aliquam pharetra. Nulla in tellus eget odio