Você está na página 1de 14

Estudo e Aplicação de Virtualização na Criação de

Ambientes para Ensino de Redes de Computadores


Jean Carlos Hansen, Carlos Adriani Lara Schaeffer

Ciência da Computação - Universidade de Passo Fundo (UPF)


Caixa Postal 611 – 99.052-900 – Passo Fundo - RS – Brasil
jeanhansenrs@yahoo.com.br; schaeffer@upf.br

Resumo. Este artigo apresenta um estudo sobre virtualização, os seus


conceitos, pesquisas e estudos. Utilização de virtualização para substituição
de laboratórios de redes no ensino de exercícios práticos em aulas de Redes
de Computadores. Aplicação de virtualizadores em trabalhos que requerem a
utilização de vários computadores interligados em rede. Para contribuir
principalmente na redução de custos sem interferir nos resultados obtidos.

1. Informações Gerais
De acordo com (TANENBAUM & WOODHULL, 2000) como tudo o que se refere a
computadores, os sistemas operacionais evoluem a passos largos. É essa evolução que
abre caminho para aplicativos mais poderosos e tem aumentado dia a dia a presença de
computadores em nossas vidas.
Um dos grandes problemas existentes no ensino de Redes de Computadores é a
estrutura física para aulas práticas. Quando existem laboratórios específicos para o
ensino deste conteúdo, as turmas de alunos têm que ser divididas em grupos, pois a
quantidade de equipamentos é reduzida.
O uso de máquinas virtuais, criando ambientes de rede para cada aluno em sala
de aula, vem facilitar muito o ensino prático. Com equipamentos que tem cada vez mais
recursos e sistemas poderosos o suficiente para que possamos utilizar formas de
virtualização que possam além de diminuir nossos gastos apresentar resultados iguais ou
até melhores que em ambientes reais é um ótimo caminho a se seguir quando faltam
outros recursos como computadores físicos, por exemplo.
Porém, tudo isso envolve questões como o estudo de virtualização e as formas
de virtualização, aprendizagem de alguma ferramenta de virtualização de sistemas,
possíveis vantagens e desvantagens, como estabelecer conexões entre os sistemas
virtuais.
Com isso, a motivação para escolha deste tema é a possibilidade de pesquisar e
trabalhar em uma área que está cada vez mais sendo usada, e proporcionar uma forma
diferente de trabalhar em rede que se utilizando corretamente alguma ferramenta de
virtualização se resumiria a apenas um computador físico.
2. Conceitos
Neste capítulo buscou-se apresentar os principais aspectos relacionados à virtualização,
e sobre os principais modelos de virtualização, no sentido de dar suporte ao estudo
pratico desenvolvido.
2.1 Virtualização
Segundo o site (DESIGN TECNOLÓGICO, 2008) virtualização é a execução de
diversos sistemas operacionais em um único equipamento físico. Muita gente confunde
Virtualização com Emulação. Emulação é a recriação de um ambiente de trabalho sem
qualquer relação necessário com o ambiente-anfitrião e sem auxílio de hardware,
enquanto a virtualização permite criar diversas máquinas virtuais, utilização de recursos
de rede e de hardware.
Para (DUARTE, 2008) a virtualização é apresentada na maioria das vezes
como a capacidade de fazer um mesmo hardware ser explorado por diversos ambientes
computacionais. No entanto, esse conceito é mais amplo, considerando virtualização
como a técnica que cria ilusões dos recursos físicos para serem explorados pelas
máquinas virtuais. Essa técnica, muito empregada em servidores, ainda tem como
vantagem oferecer uma camada de abstração dos verdadeiros recursos de uma máquina,
provendo um hardware virtual para cada sistema, tornando-se também uma excelente
alternativa para migração de sistemas.
Assim, o conceito de Virtualização não é novo, essa tecnologia segundo os
autores (WILLIAMS & GARCIA, 2007) baseia-se numa técnica que adiciona entre as
aplicações e o hardware uma camada de abstração, podendo melhorar os níveis de
serviços e qualidade dos mesmos. Em virtude do crescimento desta técnica, assim como
em qualquer outra área, surgem os vários termos utilizados. Para que seja possível o
entendimento pleno deste trabalho, os tópicos a seguir visam esclarecer a terminologia
utilizada nesta área. Importante lembrar que alguns termos, às vezes, são utilizados de
maneira errada pelo simples desconhecimento de tal terminologia. A seguir são
apresentados os principais conceitos da área, adaptados de alguns autores.
2.2 Máquinas Virtuais
Máquina Virtual (Virtual Machine ou VM) refere-se à instância de um hardware
virtualizado e um sistema operacional também virtualizado normalmente sob a forma de
simulação, ou seja, uma interface com o ambiente, diferentemente da emulação que
refletiria todos os estados internos do ambiente ao mesmo tempo. Uma máquina virtual
pode executar qualquer tipo de software como um servidor, um cliente ou um desktop.
Esta máquina virtual também é chamada de computador virtual, convidado, domainU,
domU ou domínio sem privilégios. Diretamente pode-se dizer que maquina virtual é
uma duplicata eficiente e isolada de uma maquina real (LAUREANO, 2006).
2.3 Monitores de Máquina Virtual
Entre os vários conceitos envolvidos no estudo de máquinas virtuais, o de um monitor
de máquinas virtuais (VMM, ou Virtual Machine Monitor) é um dos principais. O
monitor é uma camada de software introduzida entre o sistema visitante (guest system) e
o hardware onde o sistema visitante executa (XEN SOURCE, 2007). Essa camada faz
uma interface entre os possíveis sistemas visitantes (virtuais) e o hardware que é
compartilhado por eles. Ela é responsável por gerenciar todas as estruturas de hardware,
como MMU (Memory Management Unit), dispositivos de E/S, controladores DMA
(Advanced Micro Devides), criando um ambiente completo (maquina virtual), onde os
sistemas visitantes executam. O VMM é o centro da virtualização de servidores. Que
gera recursos arbitrários de hardware e os múltiplos pedidos dos hospedes dos sistemas
operacionais e das aplicações (WILLIAMS & GARCIA, 2007).
Em computação, o VMM também é chamado de Hypervisor. O hypervisor é
uma plataforma de virtualização que possibilita a execução concomitante de vários
sistemas operacionais em um único hardware. Para realizar tudo isto, o VMM pode
atuar de duas maneiras distintas para promover a virtualização:
• O tipo 1 é aquele que é executado diretamente no hardware da maquina,
como se fosse um sistema operacional. Os sistemas operacionais virtualizados
são executados em um segundo nível acima do hardware, logo acima do
hypervisor. Alguns exemplos são: VMware ESX, Xen, dentre outros.
• O tipo 2 é aquele que é executado sobre um sistema operacional existente em
uma segunda camada. Já os sistemas operacionais virtualizados rodam em um
terceiro nível acima do hardware, logo acima do hypervisor. Alguns exemplos
são: VMware Workstation, VMware Player, Microsoft Virtual Server,
Xen,Virtual Box, dentre outros.
As Figuras 1 e 2 mostram esquemas das arquiteturas de Tipo 1 e Tipo 2.

Figura 1 - Arquitetura tipo 1. Fonte: (ANDRADE, 2006)


Figura 2 - Arquitetura tipo 2. Fonte: (ANDRADE, 2006)

2.4 Técnicas de Virtualização


Existem várias técnicas usadas na virtualização. As principais, as quais veremos um
breve conceito são: virtualização completa, paravirtualização e recompilação dinâmica.
2.4.1 Paravirtualização
A paravirtualização é um método que consiste em apresentar ao SO que está sendo
emulado uma arquitetura virtual que é similar, mas não idêntica à arquitetura física real
(XEN SOURCE, 2007). Essa solução aumenta a performance das máquinas virtuais que
a utilizam (BARHAM, DRAGOVIC, 2003). Entretanto, são necessárias modificações
nos sistemas operacionais convidados, que executam na atual arquitetura x86.
Na paravirtualização o sistema que será virtualizado (sistema convidado) sofre
alterações no kernel para que a interação com o monitor de máquinas virtuais seja mais
eficiente. Embora se perda em portabilidade devido a modificação do sistema a ser
virtualizado, é permitido ao mesmo acessar diretamente os recursos do hardware. O
acesso é monitorado pelo monitor de máquinas virtuais, que fornece ao sistema
convidado todos os “limites” do sistema, tais como endereços de memória que podem
ser utilizados e endereçamento em disco, por exemplo, (LAUREANO, 2006).
Assim, a paravirtualização reduz a complexidade do desenvolvimento das
maquinas virtuais, pois segundo (LAUREANO, 2006) historicamente os processadores
não suportam a virtualização nativa. Sendo que a principal razão para utilizar a
paravirtualização é a performance obtida, que compensa as modificações que deverão
ser implementadas nos sistemas convidados.
2.4.2 Virtualização Completa
Virtualização completa é uma técnica de virtualização utilizada para permitir que
qualquer software possa ser executado sem alterações. Para isso, esta técnica realiza
uma simulação completa do hardware da maquina de modo que qualquer sistema
operacional possa ser executado. Na virtualização completa (full virtualization), toda
uma infra-estrutura do hardware subjacente é virtualizada, de forma que não é
necessário modificar o sistema operacional convidado para que o mesmo execute sobre
o VMM (ANDRADE, 2006). Podem ocorrer, entretanto, pequenas oscilações em
relação ao desempenho da maquina virtual, uma vez que, já que o hardware é
virtualizado, as instruções devem ser interpretadas pelo VMM. Uma desvantagem dessa
técnica na arquitetura x86 é que a mesma não foi projetada tendo em vista a
virtualização, mas sim teve uma evolução a partir de versões anteriores.
Assim, algumas instruções privilegiadas que executam em modos diferentes
(modo usuário ou modo supervisor) geram resultados diferentes dependendo do modo
em que executam (XEN SOURCE, 2007).
2.4.3 Recompilação Dinâmica
Essa técnica, que é conhecida também pelo nome de tradução dinâmica (dynamic
translation), consiste em traduzir durante a execução de um programa as instruções de
um formato para outro. Uma aplicação da técnica é vista em compiladores JIT (just-in-
time), que traduzem de uma linguagem bytecode para código nativo da CPU onde o
compilador executa. A recompilação (ou tradução) é feita em 7 passos, descritos em
(TIJMS, 2000). Em um primeiro momento, o código binário é escaneado para que seja
identificado uma seqüência de bits correspondente à seção de código do programa em
execução. Logo após esse passo, os bits agrupados anteriormente são divididos em
instruções, juntamente com os parâmetros delas. Então, as instruções são transformadas
para uma representação mais próxima da máquina nativa. Um código em uma
linguagem de alto nível é gerado a partir da representação anterior, código esse que é
compilado e reescrito na linguagem nativa. Assim, temos uma seqüência de bits agora
executável no hardware nativo.
Emuladores como o QEMU utilizam essa técnica para aumentar seu desempenho
(BELLARD, 2005). O VMware Workstation também utiliza essa técnica, recompilando
apenas parte do código, uma vez que boa parte dele pode executar nativamente (a
arquitetura de hardware subjacente é a mesma da máquina virtual). No VMware
Workstation apenas instruções que não podem ser executadas diretamente são
recompiladas (LAUREANO, 2006).
Um projeto da antiga DEC (DIGITAL FX! 32) (CHERNOFF and HOOKWAY,
1997) utilizava um misto de emulação e tradução binária para executar aplicações 32-bit
que executavam no sistema operacional Windows NT 4.0 em computadores Alpha.
Enquanto as aplicações executavam, o emulador capturava um perfil de execução, que,
por sua vez, era usado pelo tradutor binário para traduzir as partes das aplicações que
haviam executado em código nativo do processador Alpha.
Outro exemplo de recompilação dinâmica ocorre em interpretadores de
linguagens, como no interpretador Sun "Hotspot" da linguagem Java (SUN, 1999). As
instruções geradas para a máquina virtual e armazenadas nos bytecodes das classes Java
são traduzidas e executadas no hardware subjacente.
2.5 Formas de Virtualização
Para (LAUREANO, 2006), os softwares podem ser utilizados para fazer os recursos
parecerem diferentes do que realmente são, e essa capacidade é chamada de
virtualização. Ela nada mais é do que a interposição do software (Máquina Virtual) em
várias camadas do sistema. Ela consiste em dividir os recursos de hardware em
múltiplos ambientes de execução.
Existem três formas de virtualização: virtualização do sistema operacional
virtualização do hardware e a virtualização de linguagens de programação.
2.5.1 Virtualização de Sistemas Operacionais
A virtualização exporta um sistema operacional como abstração de um sistema
específico. A máquina virtual roda aplicações ou um conjunto de aplicações de um
sistema operacional específico. O FreeBSD Jail ou o User - Mode Linux são exemplos
dessa tecnologia.
2.5.2 Virtualização de Hardware
A idéia básica da virtualização de hardware é simples: Usar software para criar uma
máquina virtual que emula um computador físico. Isso cria um ambiente de SO
separado que é logicamente isolado do servidor host. Ao fornecer várias VMs de uma
vez, esta abordagem permite que se executem vários sistemas operacionais
simultaneamente em uma única máquina virtual. VMware, Virtual PC, Virtual Box são
exemplos desta forma de virtualização.
2.5.3 Virtualização de Linguagens de Programação
A camada de virtualização cria uma aplicação no topo do sistema operacional. Na
prática, as máquinas virtuais nessa categoria são desenvolvidas para computadores
fictícios projetados para uma finalidade específica. A camada exporta uma abstração
para a execução de programas escritos para essa virtualização. Java e Smalltalk são
exemplos desse tipo de máquina virtual.
2.6 Uso e Aplicações
O uso da Virtualização está bastante difundido, não somente na aplicação em servidores,
mas podendo ser aplicada em muitos outros cenários práticos. Segundo (ANDRADE,
2006), alguns deles são:
• Ensino e Aprendizagem – onde máquinas virtuais podem ser usadas no ensino
de sistemas operacionais, bem como na aprendizagem do funcionamento deles.
Uma VM pode ser facilmente substituída por outra VM caso ocorra algum erro
durante o uso da mesma.
• Consolidação de aplicações - aplicações legadas que necessitam executar em
um novo hardware, diferente do hardware para qual foram projetadas.
Virtualizando o hardware, essas aplicações podem continuar executando
normalmente.
• Sandboxing - máquinas virtuais podem prover um ambiente seguro e isolado
para a execução de aplicações não confiáveis, ou de fontes não seguras.
• Ambientes múltiplos de execução - a virtualização pode prover múltiplos
ambientes de execução e aumentar a disponibilidade de recursos para as
aplicações.
• Hardware virtual - pode ser possível, através da virtualização, prover um
hardware que não exista na máquina real, como drives SCSI virtuais, interfaces
virtuais de rede e outros.
• Múltiplos sistemas Operacionais simultâneos - vários SOs podem ser
executados simultaneamente, fazendo que uma gama maior de aplicações possa
estar executando ao mesmo tempo.
• Debugging - a virtualização pode prover para um desenvolvedor de aplicações
como device drivers ou mesmo um SO executar o software em um hardware
com um controle total.
• Migração de software - facilita a migração de software e aumenta a mobilidade
de softwares.
• Consolidação de servidores - consolidar workloads de máquinas subutilizadas
em poucas máquinas, economizando hardware, gerenciamento e administração
da infra-estrutura.
2.7 Vantagens
Reduzir custos e otimizar recursos, são metas a serem atingidas pela grande maioria das
empresas, que buscam incessantemente novas tecnologias para aliar agilidade com
economia. Com a virtualização, atingir essas metas é uma realidade (BIGNES, 2009).
Eliminando hardware economiza-se energia elétrica, principal foco das grandes
companhias de TI do mundo. Outra vantagem da virtualização é o ganho de espaço
físico, além de menos custo com ar condicionado, facilidade de gerenciamento,
segurança e maior durabilidade, devida à facilidade de se aplicar políticas de
recuperação de catástrofe.
De acordo com dados da VMware, a virtualização, combinada à consolidação
de servidores, reduz em até 53% os custos com hardware e 79% os custos operacionais,
gerando uma economia média de até 64% para a empresa que adota a solução
(MKNOD, 2009).
A seguir estão listados os principais benefícios alcançados com esta solução:
• Gerenciamento centralizado;
• Instalações simplificadas;
• Facilidade para a execução de backups;
• Suporte e manutenção simplificados;
• Independência de Hardware;
• Maior disponibilidade e mais fácil recuperação de desktops;
• Compatibilidade total com as aplicações.
• Economizar em recursos humanos, físicos e financeiros.
• Facilitar o aperfeiçoamento e teste de novos sistemas operacionais.
• Auxiliar no ensino prático de SOs e programação, uma vez que é permitido a
execução de vários sistemas para comparação no mesmo equipamento.
• Executar diferentes SOs sobre o mesmo hardware, simultaneamente.
• Simular configurações e situações diferentes do mundo real.
• Simular alterações e falhas no hardware para teste e reconfiguração de um
sistema operacional, provendo confiabilidade para as aplicações.
• Facilidades no gerenciamento, migração e reaplicação de computadores,
aplicações ou sistemas operacionais.
• Prover um serviço dedicado a um cliente específico com segurança e
confiabilidade.
2.8 Desvantagens
Associada a desvantagem esta uma perda considerável de maneira geral das aplicações
num todo.
Outro item que pode ou não ser uma desvantagem, dependendo da situação a
ser utilizada esta tecnologia, é a necessidade de se utilizar maquinas com grande
capacidade de processamento e armazenamento, pois a utilização de virtualização
consome bastante processamento e memória, exigindo assim configurações de hardware
mais sofisticado possível.
Abdicando do físico: A idéia de migrar para um ambiente virtual e executar mais
cargas de trabalho virtuais em um numero menor de maquinas físicas, mas isso não
significa que o hardware desce no rol de prioridades. As organizações podem ter
problemas se não se dedicarem a analisar atentamente quais recursos físicos serão
necessários para dar suporte a cargas de trabalho virtuais e a monitorar esses recursos de
hardware (IDC Brasil, 2008).
"As licenças de software podem ser uma barreira”, aponta John Enck, vice-
presidente de pesquisa do Gartner. “Talvez você queira rodar um aplicativo em um
grande servidor virtualizado, mas a licença foi criada para os núcleos de processador
físicos na maquina. Se, por exemplo, você migrar este aplicativo de um servidor com
dois processadores para um servidor virtualizado com quatro processadores, seu custo
de licença de software poderá aumentar, apesar de o software só usar dois processadores
no ambiente virtual”, explica Enck (IDG, 2008).

3. Ferramenta e Equipamento Utilizados nos Exercícios Propostos


Para o desenvolvimento dos exercícios deste trabalho, foi utilizado a ferramenta de
virtualização VirtualBox.
O software escolhido leva em consideração os principais produtos disponíveis
no mercado para uma solução de virtualização, o VirtualBox, utiliza arquitetura do tipo
2, virtualização completa e a forma de virtualização é por hardware.
O equipamento utilizado para a realização prática dos exercícios, foi um computador
pessoal com a seguinte configuração de hardware:
• Processador Intel Pentium Core 2 Duo E4500 2.20 GHz 2M 800MHz
• Memória 2GB DDRII 667MHz;
• HD 80 GB SATA II 7200RPM;
• Motherboard Gigabyte GA-945GZM-S2;
• Placa de Vídeo 128MB PCI;
• DVD-RW, Gravador e Leitor de DVD e CD;
• Leitor de Cartão de Memória;
• Tela de LCD, 17 polegadas Widescreen.
A seguir serão apresentadas as principais características da ferramenta de virtualização e
em seguida serão apresentados os exercícios propostos neste trabalho.
3.1 VirtualBox
O VirtualBox é um software de virtualização desenvolvido pela Sun Microsystems com
parte de seu código fonte aberto e está disponível em varias versões e com suporte para
os mais variados tipos de sistemas operacionais gratuitamente para download Permite
virtualizar Sistemas Operacionais de 32 e 64 bits em máquinas com processadores Intel
e AMD. O VirtualBox visa criar ambientes para instalação de sistemas distintos. Ele
permite a instalação e utilização de um sistema operacional dentro de outro, dando
suporte real a softwares de outros sistemas.
Tem como principais características:
• Rodar em Linux, Windows e OS-X;
• Tem suporte a RDP (Remote Desktop Protocol);
• Tem boa performance e totalmente em português;
• Controle sobre as portas USBs pela máquina virtual;
• Arquivos de configuração das máquinas virtuais são
• Armazenadas em XML, facilitando a portabilidade;
• Testes e recuperação de desastres;
• Compartilhamento de diretórios entre as máquinas virtuais;
• Amplo suporte a várias plataformas hosts: Windows, Solaris, Linux, Mac OS
X Convidados: Suporta quase todos os SO's baseadas em x86.
Assim, o VirtualBox com as características apresentadas, fornece as condições
necessárias para que, seja alcançado o objetivo do trabalho.

4. Exercícios Propostos
Neste capítulo serão propostos e desenvolvidos alguns exercícios que podem ser
utilizados no ensino de redes de computadores utilizando ferramentas de virtualização
que nesse caso será a ferramenta VirtualBox. Será mantido um nível crescente de
complexidade dos exercícios.
O sistema hospedeiro vai ser o Windows XP Professional, sendo que os
sistemas virtualizados oscilarão entre as plataformas Windows e Linux, estando por
vezes as duas juntas no mesmo exercício e em outros casos com sistemas de mesma
plataforma.
4.1 Exercício 1: Configuração manual de endereços IP em Linux e em Windows
Neste exercício o objetivo é usar uma rede interna virtual entre duas máquinas uma será
utilizado o sistema operacional Windows Professional e em outra será utilizada o Linux
na distribuição Ubuntu 9.04. Como esta rede virtual não terá servidor de DHCP, a
configuração das interfaces TCP/IP que é um conjunto de protocolos de comunicação
entre computadores em rede tem que ser de forma manual.
No VirtualBox a configuração da placa de rede na opção conectado a: deve
estar na opção rede interna, o nome que nesse exercício foi definido como intnet e a
configuração da rede devem ser o mesmo nas duas máquinas, Windows e Linux. Para
isto, basta selecionar a máquina já montada no VirtualBox, clicar em configurações e
após em rede, no adaptador 1, no campo conectado a: escolhe a opção rede interna e no
campo nome: define um nome qualquer, que deve ser igual nas duas máquinas, depois é
só iniciar as máquinas.
Com essa configuração de rede interna no VirtualBox, será o mesmo que se as
duas máquinas tivessem ligadas a um switch não roteador ou através de um cabo
crossover, tendo então que se definir os IPs manualmente para que haja comunicação
entre estas duas maquinas na rede. Deve-se levar em conta classe de IPs utilizada para
que as duas fiquem na mesma para haver a comunicação e também que fiquem diferente
da maquina hospedeira caso haja comunicação de rede nesta, para que não tenha
problemas de conflitos de IP com a rede externe.
Cabe salientar que para este exercício e também os exercícios 2 e 3 se fez
necessário a desativação do firewall do sistema operacional Windows para que fosse
possível a comunicação Linux -> Windows, pois o mesmo estava bloqueando.
Para maiores informações e exemplo deste exercício, foi desenvolvido um
tutorial bem exemplificado com imagens do exercício que esta disponível pra acesso
em: http://tudovirtualizado.blogspot.com/.
4.2 Exercício 2: Configuração de um servidor DHCP em Linux
Neste exercício serão utilizar duas maquinas virtuais uma utilizando o Windows XP
Professional e outra utilizando o Linux na distribuição Ubuntu 9.04, a idéia aqui é
configurar um servidor DHCP em Linux e configuração dinâmica no Windows. O
objetivo é usar a mesma rede interna virtual do exercício anterior entre as duas
máquinas, porém sem a configuração manual de IP no Windows, para isto será
configurada novamente a maquina virtual Linux e após instalado um servidor DHCP no
Linux para fornecer a configuração dinâmica para o Windows.
Numa rede de Arquitetura TCP/IP, todo computador tem que possuir um
endereço IP distinto. O DHCP é o protocolo que provê um meio para alocar estes
endereços dinamicamente. DHCP vem do Inglês Dynamic Host Configuration Protocol
que significa Protocolo de Configuração de Host Dinâmico. O endereço IP é locado
temporariamente a um equipamento e periodicamente, é necessária a atualização dessa
locação. Com essa configuração, é possível ser utilizado por diferentes equipamentos,
em momentos diferentes, o mesmo endereço IP. Basta, para isso, que o primeiro a locar
o endereço, deixe de utilizá-lo. Quando o outro equipamento solicitar ao servidor DHCP
um endereço IP poderá ser fornecido ao mesmo o endereço deixado pelo primeiro.
O servidor DHCP deve ser configurado pelo administrador da rede para
disponibilizar aos seus clientes, endereços IP. Para tanto, ele alimenta um banco com os
endereços da sua sub-rede que serão fornecidos de forma automática. Um cliente DHCP
é um equipamento que está configurado para solicitar a um servidor DHCP um endereço
IP.
No VirtualBox é necessário a configuração da placa de rede, para isto, basta
selecionar a máquina já montada no VirtualBox, clicar em configurações e após em
rede, para o Linux no adaptador 1 no campo conectado a: escolha a opção NAT que será
a rede de entrada para configuração do DHCP, no adaptador 2, no campo conectado a:
escolhe a opção rede interna e no campo nome: define um nome qualquer, que deve ser
igual nas duas máquinas, para o Windows no adaptador 1, no campo conectado a:
escolhe a opção rede interna e no campo nome: digite o mesmo nome escolhido para
esta opção na maquina Linux, após isto pode-se iniciar a máquina Linux, que deve ser
instalado e configurado o DHCP para que forneça dinamicamente IP para outras
maquinas da rede que neste caso só terá a maquina Windows, após esta configuração
pode ser iniciada a maquina Windows e testado a comunicação entre as duas.
Este exercício também como o anterior e os próximos esta disponível
em forma de tutorial no site http://tudovirtualizado.blogspot.com/.
4.3 Exercício 3: Configuração de um servidor Samba em Linux
Para este exercício utilizaremos a mesma rede virtual do exercício 2, também poderia
ser utilizada a do exercício 1 sem problemas. Então, como nos exercícios anteriores,
utilizaremos duas maquinas virtuais, uma com sistema operacional Windows
Professional e outra com sistema operacional Linux, na distribuição Ubuntu 9.04.
O exercício utilizara a mesma configuração de rede virtual utilizada na
exercício 2, não é necessário nenhuma alteração no VirtualBox, com o Linux sendo
servidor de DHCP que ira disponibilizar à maquina com sistema Windows, IP de forma
automática.
O objetivo neste exercício é a configuração de um servidor samba em linux
para compartilhamento entre Linux e Windows.
O Samba é um software servidor para Linux (e outros sistemas baseados em
Unix). Com o servidor Samba, é possível compartilhar arquivos, compartilhar
impressoras e controlar o acesso a determinados recursos de rede com igual ou maior
eficiência que servidores baseados em sistemas operacionais da Microsoft. Mas, neste
caso, o sistema operacional utilizado é o Linux. O Samba é compatível com
praticamente qualquer versão do Windows, além de máquinas com o Linux.
Todo trabalho feito pelo Samba é provido de grande segurança, uma vez que há
grande rigor nos controles dos recursos oferecidos. Tanto é que existem empresas que
usam o Samba como solução para conflitos existentes entre diferentes versões do
Windows. O Samba também permite que sua configuração seja feita por meio de
computadores remotos.
No exercício proposto, será instalado o servidor Samba na maquina Linux e
compartilhado com a máquina Windows uma pasta com arquivos que podem ser
copiados, podem ser adicionados novos arquivos por qualquer uma das maquinas ou
modificados os existentes. Exemplificando assim o funcionamento básico do servidor
Samba.
O exemplo detalhado com o passo a passo da instalação e configuração do
Samba, encontra-se disponibilizado em forma de tutorial no site:
http://tudovirtualizado.blogspot.com/.
4.4 Exercício 4: Configuração de um servidor NFS em Linux
Este exercício tem como objetivo configurar um servidor NFS em Linux para
compartilhamento de arquivos entre dois sistemas operacionais Linux.
O Sistema de Arquivo em Rede (Network File System), também conhecido
como NFS, permite que um sistema compartilhe seus diretórios e arquivos com outros
sistemas através de uma rede. Usando NFS, os usuários e programas podem acessar
arquivos em sistemas remotos quase como se fossem arquivos locais.
O cliente NFS tem por finalidade tornar o acesso remoto transparente para o
usuário do computador, e esta interface cliente e servidor, executada pelo NFS através
dos protocolos Cliente-Servidor, fica bem definida quando o usuário ao chamar um
arquivo/diretório no servidor, lhe parece estar acessando localmente, sendo que está
trabalhando com arquivos remotos.
Para que os clientes tenham acesso aos arquivos, é feita uma requisição ao
servidor que, dependendo das permissões do cliente, responde confirmando a
requisição. A partir desse ponto a hierarquia de diretórios e arquivos remotos passa a
fazer parte do sistema de arquivos local da máquina.
No desenvolvimento deste exercício foram utilizados as distribuições do
sistema operacional Linux, uma máquina com Ubuntu 9.04 e outra com Xubutu. A
configuração da rede no VirtualBox fica a seguinte: na máquina com Ubuntu, será a
mesma configuração do exercício 2, a qual ira fornecer de forma automática a
configuração de IP para a máquina com Xubuntu, porem para que isto ocorra, na
máquina com Xubuntu é necessário que a configuração de rede seja esta, no adaptador
1, no campo conectado a: escolhe a opção rede interna e no campo nome: digite o
mesmo nome escolhido para esta opção na maquina com Ubuntu, depois é só iniciar as
máquinas.
Após serem iniciadas as duas máquinas, é instalado e configurado o servidor
NFS no Ubuntu, que ira compartilhar uma pasta dando permissão de leitura, escrita e
modificação dos arquivos compartilhados com a máquina Xubuntu. Na máquina
Xubuntu deve ser instalado o cliente NFS, e pós montado o local onde estará acessível a
pasta compartilhada pelo Ubuntu, exemplificando assim o funcionamento de um
servidor NFS.
Este exercício também, como os outros acima tem seu exemplo postado em
forma de tutorial no site: http://tudovirtualizado.blogspot.com/.
5. Considerações Finais
Este artigo buscou aprofundar o conhecimento sobre virtualização, suas aplicações e a
maneira como funciona esta tecnologia, que esta presente principalmente em servidores
de grandes organizações mas que vem crescendo de maneira significativa e
despontando em soluções que geralmente visam a redução de custos com equipamentos
sem perda nenhuma de qualidade de serviços, em algumas situações até melhorando
determinados serviços.
Para isso foi apresentado uma série de exercícios que são utilizados no ensino
de redes de computadores, porem, não utilizando uma rede física de computadores, mas
sim uma rede virtual, onde utilizando apenas um computador físico com ajuda de um
software virtualizador, neste caso o VirtualBox, foi possível o desenvolvimento de
alguns exercícios sem maiores problemas.
Conclui-se então, que o objetivo do artigo foi alcançado, sendo que foram
realizadas as tarefas propostas que eram o aprofundamento teórico sobre o tema, em
seguida o estudo e utilização da ferramenta de virtualização e por ultimo o
desenvolvimento teórico e prático de exercícios que mais do que serem utilizados em
sala de aula, comprovam a eficácia desta tecnologia.

6. Referências
ANDRADE, M. T. (2006). Um estudo comparativo sobre principais técnicas de
virtualização. Recife, 2006. Trabalho de graduação (graduação em Ciência da
Computação) – Centro de Informática, UFPE.
BARHAM, P., B. DRAGOVIC, (2003). Xen and the Art of Virtualization, 1.ed., 19th
ACM. p.160-184.
BELLARD, F. (2005). QEMU, A fast and portable dynamic translator. Em USENIX
Annual Technical Conference, FREENIX Track, páginas 41–46. USENIX Associaton.
BIGNES Eugenio, (2009). Virtualização: um novo conceito de TI, disponível em:
http://www.malima.com.br/article_read.asp?id=593, acesso em maio.
CHERNOFF, A. and HOOKWAY, R. (1997). DIGITAL FX!32 Running 32-Bit x86
Applications on Alpha NT. 1997. USENIX Windows NT Workshop. Disponível em:
http://www.usenix.org/publications/library/proceedings/usenixnt97/full_papers/chernoff
/chernoff.pdf, acesso em outubro.
Design Tecnológico, (2008). Tutorial sobre virtualização, disponível em:
http://www.designtecnologico.com/2008/09/tutorial-sobre-virtualizao.html acesso em
maio.
DUARTE Otto, (2008). Virtualização - VMWare e Xen disponível em
http://www.gta.ufrj.br/grad/09_1/versao-final/virtualizacao/conceito%20de%20virtual
izacao.html, acesso em outubro.
HANSEN, J. C. (2009). Tutorial que serve de complemento a este trabalho, disponível
em: http://tudovirtualizado.blogspot.com/.
IDC Brasil . (2008). Disponível em http://www.idcbrasil.com.br, acesso em novembro.
IDG. (2008). Disponível em http://www.idg.com, acesso em novembro.
LAUREANO, Marcos, (2006). Máquinas virtuais e Emuladoras: conceitos, técnica e
aplicações. 1. ed. São Paulo: Novatec.
Leiden Institute for Advanced Computer Science – University Leiden.
MKNOD, (2009). Virtualização: Rode vários serviços e sistemas operacionais numa
mesma máquina, disponível em http://www.mknod.com.br/?q=node/150, acesso em
setembro.
SUN, (1999). The Java HotSpot Performance Engine: An In Depth Look. Disponível em
http://java.sun.com/developer/technicalArticles/Networking/HotSpot, acesso em
outubro.
TANENBAUM, A. S.; WOODHULL, A. S. (2000). Sistemas Operacionais Projeto e
Implantação. 2. ed. Porto Alegre: Bookman.
TIJMS, Arjan, (2000). Binary translation: classification of emulators. Technical Report.
UBUNTU, (2009). Ubuntu Server Guide, disponível em:
https://help.ubuntu.com/9.04/serverguide/C/index.html, acesso em novembro.
VirtualBox 3.0.10-54097. Disponível para download em:
http://download.virtualbox.org/virtualbox/3.0.10/VirtualBox-3.0.10-54097-Win.exe
acesso em novembro.
WILLIAMS, David; GARCIA, Juan, (2007). Virtualization with Xen: Inclunding
XenEterprise, XenServer and XenExpress. Burlington. Syngress Publishing Inc, p.1
364.
XEN Source, (2007). Disponível em http:// xen.xensource.com, acesso em junho.

Você também pode gostar