10 de março de 2011

Rede virtual no VirtualBox

Imagine-se um estudante de redes, um profissional que está desenvolvendo um projeto ou um técnico que precisa conhecer um novo sistema operacional e por causa das "restrições da vida" só tem um computador disponível e com apenas uma interface de rede para executar sua tarefa?

Sabemos que, por definição, uma rede de computadores surge quando temos pelo menos dois computadores conectados e se comunicando por esta conexão. E como estudar, testar e configurar uma rede se só temos um PC?

É aqui que entra a virtualização: como já sabemos de posts anteriores, uma das melhores aplicações para a "virtualização de hardware" é o estudo, com possibilidades que antes não existiam. Criar vários computadores virtuais e instalar neles sistemas diferentes e independentes do sistema principal que está instalado no computador.

Uma das ferramentas que uso para estudos de sistemas e redes no desktop é o VirtualBox sobre o qual já escrevi várias vezes aqui no blog. O "VB" (VirtualBox para os íntimos) é meu preferido porque tem versões para Windows e Linux, é pequeno, leve, eficiente e está disponível em nosso idioma, o inglês português.

Este aplicativo conta com diversas possibilidades de configuração de redes que facilitam muito o trabalho dos estudantes. A ferramenta de ajuda (help) do VB é excelente, bem completa e com diversas dicas de operação, mas infelizmente, para os "mentalmente bloqueados", está em inglês. Então vou dar uma ajudinha...

Rede no VirtualBox

Para começar, no VB é possível configurar até quatro adaptadores de rede diferentes em cada computador virtual. É como se eu tivesse um PC com até quatro "placas de rede" disponíveis, ótimo para testar gateways, proxies e roteadores, por exemplo.


Configuração das interfaces de rede do VirtualBox.

Indo mais além, cada um destes adaptadores virtuais pode operar de cinco formas diferentes e independentes um do outro:

Não conectado
O adaptador está instalado, mas simula que o cabo está desconectado. Veremos que o loopback e o localhost, assim como as configurações TCP/IP estarão disponíveis.
NAT
Esse é o modo padrão do VirtualBox, quando ele toma emprestada a conexão do host com a Internet e a entrega para o guest. Todo o restante da rede fica transparente para a VM, mas acessamos a Internet nela normalmente, inclusive com IP automático, fornecido por um DHCP - Dynamic Host Configuration Protocol - próprio do VirtualBox.
Placa em modo bridge
Neste modo o adaptador faz uma ponte com a interface "real" do host, conectando-se diretamente à rede deste. Passamos a ter mais um computador na rede do host, inclusive obtendo IP dinamicamente, caso a rede possua essa capacidade. Teremos uma rede entre host, guest e todos os equipamentos da rede como modem, switch, proxy, gateway padrão, etc...
Rede interna
Aqui o VirtualBox monta uma rede totalmente virtual entre todas as máquinas virtuais que estão em funcionamento, independente da rede real ou do host. Ótimo para estudar e testar redes sem interferir na rede "verdadeira". Lembre-se que neste modo o VirtualBox não disponibiliza o DHCP, portanto as configurações TCP/IP devem ser feitas manualmente.
Placa de rede exclusiva do hospedeiro (host-only)
Este modo é um pouco mais complexo: ele faz uma rede entre a interface "real" do host e as máquinas virtuais, mas não dá acesso à rede "real" em que o host está conectado, ou seja, o host se comunica com as VMs e vice-versa, mas as VMs não se comunicam com outros computadores da rede "real" do host. É um híbrido entre "Placa em modo bridge" e "Rede interna".
Um exemplo prático

Vamos imaginar a situação vista no esquema de rede simplificado abaixo:


Uma pequena rede de testes.

Temos uma configuração bastante comum onde "PC01" está compartilhando sua conexão com a Internet com os outros clientes da rede, "PC02" e "PC03".

Fisicamente isso é fácil de imaginar e, como disse uma configuração bem comum no dia-a-dia do profissional de tecnologia. Mas como "montar" essa rede com três PCs em um único PC "real"?

Primeiro baixamos, instalamos e criamos as VMs no VirtualBox e em seguida instalamos os sistemas operacionais que queremos. Não sabe instalar um S.O. em uma VM? Então, acesse este artigo.
Aqui vale uma "notinha técnica": obviamente que, se você pretende rodar duas ou três máquinas virtuais no seu PC, ele tem que atender aos requisitos mínimos que seriam a soma dos requisitos de cada VM mais os necessários para o sistema principal e o próprio VirtualBox rodarem satisfatoriamente! Máquinas virtuais não fazem milagre e você não vai rodar dois "Windows XP virtuais" em um "Vista real" em um Celeron de 1GHz com 512 MiB de RAM! Consciência, tá?
 Para colocar essa configuração em prática no VB, configuramos a VM que rodará PC01 com dois adaptadores de rede, sendo que o primeiro ("a" no esquema) "Conectado a NAT". Isso porque queremos que este PC01 tenha acesso direto à Internet. Já o segundo adaptador ("b" no esquema) fica "Conectado a Rede interna" que se conecta nas outras VMs e por onde a Internet que "entra" via "Adaptador 1" será compartilhada posteriormente.

PC02 e PC03 têm seus adaptadores conectados "Conectado a Rede interna", pois se comunicarão exclusivamente entre si e com PC01.

Resumindo:

PC01
  • Adaptador 1: Conectado a NAT
  • Adaptador 2: Conectado a Rede interna
PC02
  • Adaptador 1: Conectado a Rede interna
PC03
  • Adaptador 1: Conectado a Rede interna
Complicado? Que nada! Se instalarmos o Windows XP em PC01 e PC02, mais um Windows 98 ou mesmo Linux em PC03, teremos uma rede heterogênea onde estes três PCs, e apenas eles, se comunicam. Se ativarmos o compartilhamento de Internet no XP do PC01, teremos Internet também em PC02 e PC03, inclusive com IP dinâmico funcionando!


Windows XP "virtual" compartilhando a Internet.

Muitas possibilidades

O exemplo acima é apenas um entre quase infinitas possibilidades de testes de instalação, configuração, desempenho e aplicativos de redes que podemos virtualizar.

Vou parar por aqui, já que perderíamos diversos posts só para explorar algumas dessas possibilidades!

Já pensou em alguma? Então comente ou use nosso fórum e tire suas dúvidas...

Esta é uma edição revisada, ampliada e atualizada. A versão anterior não está mais disponível na Internet.

17 comentários neste post

Parabéns pelo post meu caro! Muito útil!

Comentário de
Anônimo Em 29 de outubro de 2011 13:07.

Se não faz o DHCP, como configuro o IP das máquinas na rede Interna?

Anônimo disse: "Se não faz o DHCP, como configuro o IP das máquinas na rede Interna?"

Ou você configura os IPs manualmente (ótimo para estudos) ou cria seu próprio servidor DHCP virtual em uma das VMs.

Comentário de
Anônimo Em 22 de janeiro de 2012 20:00.

Hummm, tava quase desisti de montar uma rede....
mas foi esclarecedor afora parabéns!!!

Muito bom o exemplo acima. Porém estou com um problema, criei duas máquinas virtuais (VMs), sendo, um servidor debian com duas placas de rede uma no modo NAT e outra no modo REDE INTERNA, na outra VM com um Windows XP com uma placa de rede INTERNA, ai vem o problema. Com o servidor consigo acessar a internet e pingar a VM com Windows XP. A VM com windows XP pinga o servidor mas não acessa a internet. Instalei e tentei configurar o SQUID, más até agora SEM sucesso.

Alguém sabe resolver este problema?

Desde já agradeço.

Comentário de
Adriano Em 2 de maio de 2012 05:27.

Muito bom o tutorial, bem explicado e com exemplos o que ajuda muito quem está começando ou buscando informações.

Obrigado.

Galera preciso montar uma rede ATM utilizando virtual box vcs fazem ideia de como eu posso fazer isso?

Comentário de
Anônimo Em 10 de junho de 2012 17:31.

Eu fico realmente fascinado com os tutoriais postados neste site pois são bem escritos e com uma linguagem bem acessível, no entanto gostaria de saber se tem como montar uma VM com VirtualBox+Debian(sem a interface grafica)+Squid). Minha intenção é usar esse arranjo em um cyber café com 15 maquinas e 1 "servidor" com XP SP3, usando uma rede com um modem ADSL roteado e espetado em um switch e me beneficiar do squid rodando como proxy transparente para melhorar a navegação para os clientes que usam o cyber. Desde já agradeço. So completando.... o arranjo ficaria assim: modem roteado->espetado no switch 24 portas->indo pra uma maquina "servidora" com XP SP3 e só uma placa de rede onboard->com o VirtualBox instalado emulando o Debian sem a parte grafica(se é que existe)->com o Squid instalado no Debian e funcionando como servidor proxy... muito cobrigado pela atenção!!!

Como faço para dsitribuir DHCP do micro 1 para micro 2.
Micro 1 ( server nat e rede interna) - Micro 2 (somente rede interna)

jean karl, até onde sei, o VirtualBox só suporta interfaces Ethernet. Talvez você possa usar um emulador ou um simulador como o Packet Tracer da Cisco.

Anônimo, você pode usar o esquema com um Squid virtual sem problemas, basta configurar a interface da VM como bridge e adicionar o IP:porta nos clientes que passarão pelo proxy.

Ju Martins, você precisa instalar um servidor DHCP nos micros. Apenas a interface NAT do VirtualBox já tem DHCP porque ela vai ligada ao roteador virtual do Virtualbox.

Amigo,

Ao compartilhar a internet do adaptador NAT para o adaptador interno do Server 2008 ele me obrigou a remover o recurso de roteamento. Não tem como driblar isso?

Ahh, finalmente uma explicação simples e prática.

Parabéns e obrigado pela ajuda :)

Comentário de
Anônimo Em 9 de outubro de 2012 09:11.

Legal

É um Material muito esclarecedor, bom para compreender melhor o as aplicações em cada uma das opções da placa de rede. Além disso o texto também está bem escrito.

Parabéns e muito obrigado!!

NOOOOOOOOOOOOOOOOOOOOOOSSAAAAAAAAA Q ZIKA VALEU A PENA LER VLWW

Pessoal meu problema é o seguinte:
Tenho dois micros reais
PC1 (virtualizando: windows Server 2008 e Debian);
PC2 (virtualizando: xp e seven).

Tem como fazer com que o PC2 se comunique com o PC1 pelo virtual box?
Obs.: não queria deixar em modo bridge ou nat, pois eles não irão receber o ip do DHCP. (seria tipo uma rede interna, porém com dois micros reais virtualizando diversas maquinas).

tenho um servidor DHCP (ubuntu server), quero conectar outro sistema para teste, então eu coloco o servidor em NAT e o outro sistema (xp) como rede interna.
Parabéns ótimo material.

Postar um comentário

Atenção comentarista!
  • Todos os comentários serão rigidamente moderados;
  • Identifique-se! Comentários anônimos não são recomendados;
  • Comentários com três ou mais links serão removidos;
  • Comentários escritos em miguxês ou excesso de gírias serão removidos;
  • Comentários escritos com predominância de maiúsculas serão removidos;
  • Por favor, prove que você é coerente, educado e bem informado: conheça o restante do site, saiba quem somos, sobre o que, para quem e como escrevemos antes de comentar futilidades;
  • Respeite as opiniões dos autores e dos outros comentaristas. Seja breve e sem ofensas;
  • Escreva comentários relevantes e que contribuam de alguma forma para o bem da humanidade;
  • Não seja um inútil social. Lembre-se que o mundo não gira ao seu redor.