VNet: Laboratório Virtual de Ensino de Redes

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Objetivos

O objetivo geral deste projeto é desenvolver e implantar um laboratório virtual de redes de computadores como SaaS, baseado no emulador Netkit2. Além disso, seus objetivos específicos são:

  • Desenvolver o laboratório virtual usando máquinas virtuais leves
  • Implementar o laboratório virtual como um SaaS (Software as a Service)
  • Especificar uma interface web para acesso ao laboratório virtual
  • Definir e implementar uma API do tipo webservice para acesso ao sistema

Introdução

O ensino de redes de computadores envolve tanto a fundamentação teórica quanto a realização de experimentos para implantação e uso de redes. Estudos focados em serviços de rede podem se beneficiar de experimentos em que aplicações interagem de forma sistemática com servidores, incluindo a própria implantação dos softwares que fornecem os serviços estudados. Para realizar tais atividades práticas, estudantes precisariam ter a sua disposição redes em cujos computadores e servidores poderiam instalar, configurar e utilizar software de rede. Se os estudos se concentrarem na infraestrutura de rede, experimentos em que se implantam redes com topologias e combinações de equipamentos arbitrárias enriqueceriam o aprendizado. Nesse caso, os estudantes necessitariam ter à disposição laboratórios com equipamentos de redes para que pudessem combiná-los e configurá-los e assim implantar as redes investigadas. No entanto, o alto custo para disponibilização de tal infraestrutura limita tanto os experimentos a serem realizados quanto a oportunidade para que cada estudante possa realizá-los.

Uma alternativa para a realização de experimentos com redes é o uso de simuladores, tais como Omnet e ns-3. Porém esses simuladores são mais voltados a avaliação de desempenho de redes, e também estudo sobre a correção de protocolos, do que a emular redes reais. Outra possibilidade é usar emuladores, tais como Core, GNS3 e Netkit2, este último desenvolvido pela Área de Telecomunicações do IFSC Câmpus São Jose. Nesses emuladores, cada equipamento corresponde a uma máquina virtual com uma ou mais interfaces de rede, na qual se executa um sistema operacional com funcionalidades de rede.

O emulador de redes Netkit2 se apresenta como um ambiente para experimentos com redes de computadores desenvolvido pela Área de Telecomunicações do Instituto Federal da Santa Catarina, em seu Câmpus São José. Esse emulador se inspirou no Netkit, desenvolvido pela Universidade de Roma, na Itália. Com ele torna-se possível realizar experimentos sobre configuração básica de rede, roteamento, criação de infraestrutura WAN com MPLS, além de dispor de diversos serviços de rede (DNS, WWW, LDAP, e outros). Ele se compõe de máquinas virtuais Linux (implementadas com kernel Linux UML – User Mode Linux), que funcionam como roteadores ou computadores, e hubs Ethernet virtuais (UML switch) para interligar as máquinas virtuais. Para todos os efeitos, cada máquina virtual funciona como se fosse um computador real, possuindo uma ou mais interfaces de rede. A especificação de uma rede virtual se faz por meio de uma linguagem de configuração que busca abstrair os detalhes de como as funções de rede são ativadas no sistema operacional virtualizado.

O Netkit2 oferece uma interface gráfica para controlar, executar e visualizar as redes virtuais. Com esses recursos é possível criar redes de configurações arbitrárias para estudar protocolos de comunicação e serviços de rede. No entanto, assim como os outros emuladores citados, o Netkit2 demanda a instalação de software, ou seja, trata-se uma aplicação desktop exclusiva para o sistema operacional Linux, podendo assim ser um dificultador para estudantes instalarem em seus computadores pessoais.

Alguns outros projetos existentes disponibilizam um serviço para criação de redes e experimentação. Dentre eles destacam-se o Emulab e Fibre. Conforme explicado no site oficial do projeto, “Emulab é uma plataforma de teste (testbed), provendo a pesquisadores uma ampla variedade de ambientes onde possam desenvolver, depurar e avaliar seus sistemas”. Nesse sentido, o Emulab consiste de uma infraestrutura com centenas de nodos (computadores) interligados por switches, e sobre essa estrutura são criadas redes virtualizadas para projetos de pesquisa. Essas redes podem ser de longa duração, e suas características mimetizam fielmente as redes reais. A rigor, redes virtuais no Emulab consistem de uma fatia dos recursos físicos da infraestrutura do serviço. O projeto Fibre segue um modelo parecido, porém voltado a projetos que experimentem conceitos e técnicas para a Internet do futuro. Ambos projetos são portanto voltados a fornecerem infraestrutura para projetos de pesquisa em redes, de forma a possibilitar investigar questões ligadas a escalabilidade e desempenho. Desta forma, eles não são direcionados ao provimento de um serviço de laboratório virtual de redes que atenda estudantes e cursos nessa área.

Uma evolução do conceito de emulação de redes por meio de virtualização envolve a oferta de laboratórios virtuais de redes como SaaS (Software as a Service). O laboratório virtual é executado em um servidor de aplicação, ou mesmo em nuvem, sendo acessado através de uma interface web, como exemplificado na figura 1. Nesse modelo, estudantes podem criar, executar e investigar suas redes sem necessidade de instalação de software específico em seus computadores e suas redes podem ficar ativas e operantes pelo tempo que for necessário. Para acesso ao laboratório virtual, basta algum dispositivo com acesso a Internet e um navegador web capaz de apresentar a interface do laboratório. Diversas funcionalidades podem ser agregadas a tal serviço, dentre elas a criação de um catálogo de experimentos de redes e a interligação de redes de diferentes experimentos. Com isso, a experimentação com redes de computadores poderia ser facilitada, assim como a criação de aulas práticas em cursos de redes em modalidade EaD.

Com base em todas essas questões, pode-se concluir que atividades práticas para o estudo de redes de computadores podem se beneficiar de um laboratório virtual de redes que seja disponibilizado como SaaS. Além disso, um serviço como esse precisa ser facilmente acessível, amigável, escalável, expansível com novas funcionalidades e oferecer facilidades para controle de acesso e limitação de uso de recursos por usuários.

Este projeto tem como ponto de partida o Netkit2, aproveitando tanto o modelo de rede virtual desse emulador quanto sua linguagem de configuração de experimentos. O Netkit2 é usado atualmente nos cursos técnicos e superiores da Área de Telecomunicações do Instituto Federal de Santa Catarina. O modelo de rede diferencia as máquinas virtuais de acordo com seus papéis na rede, tais como computadores, roteadores, switches, pbx VoIP e roteadores MPLS. Esse modelo oferece diferentes formas de interligar as máquinas virtuais, dentre as quais links ethernet, PPP, PPPoE e links agregados (ex: IEEE 802.3ad). A diferenciação das máquinas virtuais, a especificação de seus atributos e a definição de como estão interligadas se faz por meio de uma descrição com a linguagem de configuração de experimento. Com isso, diferentes redes podem ser criadas, executadas e reproduzidas, bastando ter suas descrições com a linguagem de configuração.

Bibliografia

ARGA A. The OMNET++ discrete event simulation system. Proceedings of the European Simulation Multiconference, pp 319-324, Praga, República Tcheca, 2001.
NS-3 Network Simulator. Disponúvel em
http://www.nsnam.org. Acessado em: 10 de abril de 2017.
RIVERBED. Disponível em
http://www.riverbed.com/products/performance-management-control/network-performance-management/network-simulation.html. Acessado em: 10 de abril de 2017.
PIZZONIA, M., RIMONDINI, M. Easy Emulation of Complex Networks on Inexpensive Hardware. Proc. 4th International Conference on Testbeds and Research Infrastructures for the Development of Networks & Communities (TRIDENTCOM 2008), Innsbruck, Mar 2008.
GNS-3. Disponível em
http://www.gns3.net/. Acessado em: 16 de abril de 2018.
NETKIT2. Disponível em
http://wiki.sj.ifsc.edu.br/index.php/Netkit2. Acessado em: 10 de abril de 2017.
EMULAB. Disponível em
http://www.emulab.net/. Acessado em: 10 de abril de 2017.
FIBRE. Disponível em
http://www.fibre-ict.eu/. Acessado em: 10 de abril de 2017.
CORE. Disponível em
https://www.nrl.navy.mil/itd/ncs/products/core. Acessado em: 16 de abril de 2018.
UML (User Mode Linux). Disponível em
http://user-mode-linux.sourceforge.net/. Acessado em: 16 de abril de 2018.