Linux: Virtualização – Montando uma rede virtual para testes e estudos de serviços e servidores

Introdução

Para aprender algo nada melhor que a prática, logicamente a teoria é tão importante quanto, porém o conhecimento é mais valioso ao fazer essa associação de teoria e prática. Muitas vezes nos vemos impossibilitados de colocar alguma teoria em prática por faltar uma estrutura adequada para implementação e testes. Este artigo demonstrará como driblar essa situação por meio da virtualização utilizando recursos ao alcance da grande maioria.

Virtualização

É uma tecnologia que possibilita a criação de máquinas virtuais (virtual machines), compartilhando o hardware de uma máquina e possibilitando a criação de um ambiente operacional completo, seguro, como se fosse um computador independente, possibilitando assim a instalação de diversos sistemas operacionais usufruindo de seus aplicativos e recursos.

VirtualBox

Trata-se de um software de virtualização desenvolvido pela Sun Microsystems, possui a versão VirtualBox OSE (Open Source Edition) com a licença GPL (GNU General Public License), que pode ser instalada através dos repositórios de algumas distros (Ubuntu por exemplo).

O VirtualBox tem um aplicativo que pode ser instalado dentro das máquinas virtuais Windows e Linux para melhorar o desempenho das VMs, fazer integração do ponteiro do mouse e melhorar o redimensionamento da janela do cliente.

Download e instalação do VirtualBox

Na página oficial do VirtualBox podemos acessar várias informações úteis para a configuração personalizada desta máquina virtual, vários screenshots de máquinas já prontas, a documentação do software, uma seção para contribuição e acesso a comunidade do VirtualBox.

Além disso pode-se fazer download do VirtualBox de acordo com sua distribuição no link:

No caso deste artigo foi instalado o pacote virtualbox-3.0_3.0.2-49928_Ubuntu_jaunty_i386.deb em uma máquina que possuía os seguintes recursos:

  • NoteBook Acer 4720z
  • Intel Dual Core 2.5
  • 3Gb DDR2
  • HD 160Gb
  • Ubuntu 9.04

Após o download do pacote, a instalação pode ser feita de duas maneiras:

1. Modo gráfico: Dois cliques no pacote baixado, ele abrirá o gerenciador de pacotes e fará a instalação;

2. Linha de comando:

# dpkg -i virtualbox-3.0_3.0.2-49928_Ubuntu_jaunty_i386.deb

A instalação é muito fácil e sem mistérios. Após concluída a instalação, o VirtualBox pode ser acessado pelo menu Aplicativos > Sistema > Sun VirtualBox.

Instalação e configuração das máquinas virtuais

Para criar uma máquina virtual no VirtualBox, abra-o e clique em novo (ou dê um ctrl+n) que abrirá o assistente de criação de máquina virtual.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

O primeiro passo é dar um nome a máquina virtual, assim como escolher qual será o sistema operacional que será instalado e sua versão. Com isso o VirtualBox cria um ambiente mais adequado para cada sistema operacional, melhorando a compatibilidade e desempenho.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

A seguir será escolhido o tanto de memória RAM que a máquina virtual poderá usar.

Este ponto é muito importante, pois vai influenciar diretamente o funcionamento de todo o sistema, então é muito importante saber exatamente a média de uso de memória RAM do sistema hospedeiro e ter uma base de consumo de RAM do sistema que será virtualizado para não ter problemas de falta de memória. No caso de ser apenas uma máquina virtual para testes de serviços e estudos, será configurada para usar apenas 256MB de RAM.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Chegamos no ponto de criação do disco rígido virtual. O assistente dá a opção de criar um disco novo ou usar um já existente. Será criado um disco novo com a opção “Disco Rígido de Boot (Primário Master)” ativada, esta opção serve para marcar o disco como primário, pois posteriormente temos a possibilidade de adicionar a uma máquina virtual outro disco rígido virtual para trabalhar como slave.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Será aberto um novo assistente para a criação do novo disco virtual.

A primeira opção a ser configurada é a maneira que o disco irá se comportar com a relação de espaço em disco do sistema hospedeiro. Ele fornece duas opções:

  • Armazenamento Dinamicamente Expansível: Nesta opção o disco é criado com um tamanho inicialmente pequeno, que de acordo com o uso da máquina virtual (utilização de disco da máquina virtual) ele vai expandindo até o tamanho máximo configurado;
  • Armazenamento de tamanho fixo: Cria um disco e já aloca todo espaço configurado, mesmo que não utilizado pela máquina virtual, no disco do hospedeiro.

Esta opção fica a critério de cada um, porém deve-se tomar muito cuidado com a opção de armazenamento dinâmico para evitar falta de espaço em disco futuro.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Agora terá de ser configurado o tamanho máximo do disco e o nome que será dado a ele. Configure de acordo com os limites do sistema hospedeiro e com a necessidade de disco da máquina virtual que será instalada.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

A criação da máquina virtual está concluída, será exibido um resumo das configurações do assistente, confira e confirme para o assistente concluir a criação.

Instalação do sistema operacional

Ao executar a máquina virtual pela primeira vez será exibido um assistente que ajudará nos principais passos da instalação do novo sistema operacional da máquina virtual.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Neste assistente será possível escolher de qual unidade óptica será feito a instalação (caso tenha mais de uma no host hospedeiro), ou até mesmo escolher uma imagem no disco.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Após a escolha do local de origem da mídia de instalação será exibido um resumo e pedido a confirmação. A partir disso a instalação propriamente dita é iniciada.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

A instalação do sistema operacional a partir desta parte é feita normalmente como se fosse em uma máquina física, por isso não tratarei das etapas.

Configurações após a instalação do S.O.

Para muitos sistemas operacionais o VirtualBox oferece um pacote de aplicativos que oferecem algumas funcionalidades extras. Esses aplicativos podem ser instalados pelo menu:Dispositivos > Instalar adicionais para convidado

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

No Windows XP por exemplo, esse conjunto de pacotes oferece drivers de vídeo, som e algum outro hardware para melhorar o desempenho da máquina virtual.

Ainda é possível configurar compartilhamentos de pastas entre a máquina virtual e a hospedeira de maneira fácil de simples.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Após isso serão feitas algumas configurações com a máquina virtual desligada.

Para algumas configurações mais específicas, selecione uma máquina virtual na lista de máquinas virtuais do VirtualBox e depois clique em configurações (ou dê um ctrl+s). Será exibido o painel de configurações da máquina virtual, que possui os seguintes itens:

  • Geral
  • Sistema
  • Tela
  • Discos rígidos
  • CD/DVD-ROM
  • Disquete
  • Áudio
  • Rede
  • Portas seriais
  • USB
  • Pastas compartilhadas

Darei uma breve descrição de cada item, assim como as principais funções de cada um.

Geral

No item geral teremos três abas: Básico, Avançado e Descrição.

Na aba Básico, como o nome já diz, temos as configurações básicas da máquina virtual, como o nome da máquina, o sistema operacional e a versão do sistema operacional.

Na aba Avançado podemos configurar a pasta onde serão armazenados os snapshots, o compartilhamento da área de transferência entre o sistema hospedeiro e a máquina virtual, mídias removíveis e exibição e posição da mini barra de ferramentas do VirtualBox.

Na aba Descrição pode ser adicionado uma descrição da máquina virtual, alguma informação técnica ou de contato.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Sistema

Neste item teremos três abas, Placa Mãe, Processador e Aceleração.

Na aba Placa Mãe temos configurações da quantidade de memória que a máquina virtual poderá usar, ordem do boot e algumas opções de gerenciamento de energia.

Na aba Processador podemos configurar quantos processadores virtuais a máquina virtual terá e também poderemos ativar o PAE/NX, que é a extensão física de endereçamento, requerido por alguns sistemas (como por exemplo o Ubuntu Server).

Na aba aceleração terão algumas opções de virtualização de algumas instruções do processador.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Tela

Duas abas presentes nesse item, Vídeo e Tela Remota.

Na aba vídeo pode ser configurado a quantidade de memória RAM usada para o vídeo e também poderá habilitar a aceleração 3D.

Na aba Tela Remota pode ser habilitado o acesso remoto a máquina virtual via RDP.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Discos rígidos

Neste item pode ser configurado o modelo de controladoras de disco, controladoras adicionais e os discos virtuais conectados a essa máquina virtual.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

CD/DVD-ROM e Disquete

Nesses itens são habilitados ou não o compartilhamento de drivers de CD/DVD ou disquetes. Oferece a opção também de montar uma imagem no disco.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.   Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Áudio

Pode habilitar áudio na máquina virtual, escolher o driver de áudio e o controlador de áudio.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Rede

Neste item é habilitada a rede da máquina virtual, configurado a quantidade de placas de rede e o modo no qual elas vão operar. Será dado mais detalhes deste item mais adiante.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Portas Seriais

Permite habilitar uma ou mais portas seriais no máquina virtual e configurar suas opções.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

USB

Configura o suporte a USB de dispositivos da máquina hospedeira na máquina virtual. Requer algumas configurações extras para funcionar corretamente.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Pastas Compartilhadas

Gerenciamento das pastas compartilhadas do sistema.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Configurações de rede

Integraremos a máquina virtual a uma rede física já existente, tornando assim ela integrante da mesma.

Descrição da rede

A rede é composta por três computadores, uma impressora e um roteador que fornece conexão com a Internet. Um desses é o hospedeiro da máquina virtual, que no final, será vista como um quarto computador nessa rede.

O roteador fornece configurações de rede por DHCP aos computadores da rede, a impressora é ligada ao roteador com ip fixo (192.168.2.200).

Usaremos a rede 192.168.2.0, onde o roteador usa o IP 192.168.2.1.

No item Rede, introduzido na página anterior, faremos as configurações para que a rede da máquina virtual seja integrada com a rede física.

Podemos adicionar até quatro placas de rede na máquina virtual, porém usaremos apenas uma marcando a opção “Habilitar placa de Rede” na aba Adaptador 1.

Ao marcar essa opção temos logo abaixo um local para escolher o tipo de placa de rede. Essa opção emula alguns modelos de placa de rede, dependendo do sistema operacional que for instalado na máquina virtual, pode não reconhecer a placa de rede, assim pode ser feito o teste com outros modelos até que o sistema o reconheça.

Mais abaixo temos a opção “Conectado a”, onde poderemos configurar o modo de conexão de rede. Temos cinco opções de modo de conexão:

  • Não conectado: A placa de rede aparecerá como desconectada na máquina virtual.
  • NAT: É criada uma interface de rede virtual entre a máquina virtual e o hospedeiro, que é usada para permitir a comunicação entre os dois sistemas e também para compartilhar a conexão via NAT (Network Address Translation).
  • Placa em Modo Bridge: A máquina virtual passa a ser ligada diretamente à rede principal, como se fosse um computador real ligado a ela. Será usada essa opção para a integração com a rede.
  • Rede Interna: Nesse modo será feita uma rede que somente será acessada por outras máquinas virtuais que estiverem configuradas com o mesmo nome de rede.
  • Placa de Rede Exclusiva de Hospedeiro (Host Only): Como se fosse uma conexão ponto a ponto entre a máquina virtual e o hospedeiro.

Resumindo, deixaremos o modo de conexão como Placa em Modo Bridge e definiremos o nome da placa para eth0 na opção logo abaixo do modo de rede.

Linux: Virtualização - Montando uma rede virtual para testes e estudos de serviços e servidores.

Após isso poderemos ligar a máquina virtual, ela já estará integrada fisicamente à rede externa como se fosse um quarto computador, basta apenas verificar se o modelo de placa de rede virtual foi detectada pelo sistema operacional. Caso não seja detectado o modelo da placa de rede, deve ser mudado para as outras opções até que uma funcione. Note que essa configuração não tem nenhuma relação com a placa real do computador hospedeiro, é apenas uma emulação na máquina virtual.

Agora que a máquina virtual já está integrada à rede, aplica-se as configurações normais da rede, no caso de estudo deste artigo, o roteador fornece as configurações de IP, máscara de rede, gateway e DNS automaticamente por DHCP. Mas nada impede de se usar IP estático, configurado manualmente caso seja necessário para outras aplicações.

Testes e serviços

O primeiro teste feito foi o famoso ping, onde mandamos para um endereço e ele nos retorna a resposta caso o destino seja alcançado e suas configurações de firewall permitam também.

A impressora pode ser usada normalmente (lembrando que ela é ligada a rede), assim como a Internet.

Alguns servidores foram testados com sucesso, onde posso citar:

  • Servidor de arquivos com o Samba
  • VPN com o OpenVPN
  • Controlador de domínio primário com o Samba
  • Proxy e cache com Squid
  • Servidor de e-mail com Postfix
  • Servidor de DNS com o Bind9
  • Acesso via SSH
  • Servidor de FTP com o TSFTP
  • Servidor web com o Apache
  • Servidor de banco de dados com o MySQL

Ainda existem outras possibilidades de implementações para estudo, onde posso citar uma muito interessante que é a implementação de um cluster. Ficaria fácil implementar um cluster para estudos criando algumas máquinas virtuais e fazendo a interligação delas. Mas vale lembrar que esse teste tende a não retornar a performance real de um cluster, tendo em vista que são máquinas virtuais rodando no mesmo hardware, porém pode ser uma boa forma de prática e estudo com um baixo custo.

Conclusão

A virtualização vem sendo muito utilizada em grandes empresas, grandes datacenters e em muitas outras aplicações, e o uso dessa tecnologia para estudos é uma maneira de diminuir custos e criar novas possibilidades, o que antes era necessário de duas ou mais máquinas pode ser feito em uma única, com uma estrutura virtual. Então mais uma vez é ressaltada a importância desta tecnologia.

Espero que este artigo ajude a muitos a desenvolver projetos de estudo e até mesmo testar implementações diversas profissionalmente, imagine você mostrando para um cliente seu a futura rede dele em funcionamento virtualmente. As possibilidades são inúmeras.

Deixem seus comentários.

Deixe uma resposta