Simulação de Redes de Comunicação Simulação de Redes de Comunicação A. Paulo Santos [email protected] [email protected] Escola Superior de Tecnologia e Gestão de Felgueiras Março, 2011 [email protected] - A. Paulo Santos (1/20) Introdução NCTU-ns •O NCTUns é um ambiente para simulação de redes. •Está a ser desenvolvido desde 1999 no laboratório de redes e sistemas da Universidade Nacional de Chiao Tung (Taiwan), sob a coordenação do professor S. Y.Wang. •Atualmente encontra-se na versão 6.0. [email protected] - A. Paulo Santos (2/20) Caractriticas (1/5) NCTU-ns 1. Simulação de redes NCTUns proporciona a user a capacidade de criar redes virtuais, combinando protocolos e dispositivos de rede. 2. Emulação de redes O NCTUns permite que sejam criadas redes virtuais, nas quais dispositivos virtuais interajam em tempo-real com dispositivos reais durante a simulação. [email protected] - A. Paulo Santos (3/20) Caractriticas (2/5) NCTU-ns 3. High-fidelity simulation O NCTUns utiliza a pilha de protocolos TCP/IP do sistema operativo LINUX para transmitir mensagens entre os dispositivos, conseguindo assim proporcionar simulações altamente fiaveis às situações reais. Esta característica não é encontrada noutros simuladores como ns-21 e OPNET2. Exemplo prático: Integração com o NIDS Snort para capturar pacotes em tempo-real, transmitidos na rede (virtual). [email protected] - A. Paulo Santos (4/20) Caractriticas (3/5) NCTU-ns 4. Interface gráfica - GUI NCTUns possui uma interface gráfica para desenho, implementação e administração das simulações. 5. Extensível Sendo uma ferramenta Open Source (com excepção da interface gráfica) é passível de modificações. Exemplo: Implementação de outros protocolos e dispositivos de rede. [email protected] - A. Paulo Santos (5/xX) Caractriticas (4/5) NCTU-ns 6. Escalabilidade Ao contrário de outros de simuladores, como VMware e UML4, o NCTUns não “trabalha” com máquinas virtuais. As Máquinas virtuais necessitam de “imagens” de hardware e sistemas operativos. O que faz com que mesmo sendo muito otimizados, esses ambientes ficam muito lentos a medida que aumentam o número de hosts virtuais. [email protected] - A. Paulo Santos (6/20) Caractriticas (5/5) NCTU-ns Em contrapartida, o UNCTUns não instala um sistema operativo para cada máquina, mas sim modifica o kernel da máquina que irá executar a simulação, para que esse seja capaz de transferir internamente os pacotes entre os hosts virtuais. Através desta técnica é possível aumentar o número de hosts das simulações sem afectar, drasticamente, o desempenho. [email protected] - A. Paulo Santos (7/20) Arquitectura(1/4) NCTU-ns O NCTUns é um sistema cliente-servidor, composto por quatro componentes: • Cliente Gráfico (nctunsclient) este componente é a interface entre o user e o sistema. Através dele o usuário é capaz de criar simulações e “enviá-las” ao servidor para que sejam executadas. • Simulation Engine (nctunsse) este componete é o core do ambiente, responsável por executar as simulações no servidor. [email protected] - A. Paulo Santos (8/20) Arquitectura(2/4) NCTU-ns • Dispatcher este componente, residente no servidor, é responsável por controlar as “requisições” de simulação recebidas dos clientes, e enviar as simulações para o servidor assim que este esteja disponível. • Coodinator é executado em todas as máquinas que compõe o servidor e é responsável por por “receber” as simulações do dispatcher e “repassá-las” para serem executadas no nctunsse. [email protected] - A. Paulo Santos (9/20) Arquitectura(3/4) NCTU-ns NCTUns - Arquitetura [email protected] - A. Paulo Santos (10/xX) Arquitectura(4/4) NCTU-ns Na imagem é apresentado um exemplo no qual, vários users utilizam o cliente gráco (GUI), em localizações distintas, para enviar simulações ao(s) servidor(es). As requisições são recebidas e organizadas pelo dispatcher, que as redistribui entre as (quatro) máquinas que compõem o servidor. Cada servidor tem um coordinator e um nctunsse. [email protected] - A. Paulo Santos (11/20) Simulação(1/4) NCTU-ns Para conseguir reproduzir fielmente (real-life) as transferências de pacotes, o NCTUns implementa uma técnica denominada kernel re-entering methodology [Wang et al. 2003]. Esta metodologia propõe a criação de pseudointerfaces de rede, ao nível do kernel, denominadas túneis. Neste contexto o simulador é capaz de utilizar a pilha de protocolos TCP/IP nativa do Linux para passar pacotes rede, entre os hosts virtuais. [email protected] - A. Paulo Santos (12/xX) Simulação(2/4) NCTU-ns NCTUns - Kernel Re-entering Methodology [email protected] - A. Paulo Santos (13/20) Simulação(3/4) NCTU-ns A imagem, apresenta um resumo do “caminho” percorrido por um pacote TCP enviado de um host a outro. O pacote é gerado no host (TCP Sender ). Da mesma forma com o que acontece numa situação reallife, o pacote atravessa verticalmente as camadas de transporte e de rede. Na camada de ligação de dados, conforme a indicação dada pela routing table, criada pelo NCTUns, o pacote é direccionado para a interface de rede Tunnel Interface 1. [email protected] - A. Paulo Santos (14/20) Simulação(4/4) NCTU-ns Esses túneis são vistos pelo Linux como interfaces “normais” de rede (eth0). Em vez de “entregarem” o pacote à camada física, fibra óptica por exemplo, os túneis (re)direcionam os pacotes para um link virtual (flat file /dev) administrado pelo Simulation Engine. Esses links desempenham a função da camada física para os dispositivos da rede virtual. O pacote é entregue à interface Tunnel Interface 2 do host destino, atravessando (subindo) a pilha de protocolos TCP/IP do receptor até atingir seu destino, o TCP receiver. [email protected] - A. Paulo Santos (15/20) Emulação(1/3) NCTU-ns O NCTUns é também um emulador de redes, por ser capaz de “introduzir” dispositivos reais nas redes virtuais. Para conseguir interagir com dispositivos externos, o Simulation Engine lança um daemon para cada dispositivo a ser emulado. Esses daemons são responsáveis por receber os pacotes enviados pelas máquinas externas e redirecioná-los ao Simulation Engine, para que “entrem” na rede virtual. [email protected] - A. Paulo Santos (16/20) Emulação(2/3) NCTU-ns Da mesma forma, quando algum pacote deve ser enviado a algum dispositivo externo, o Simulation Engine envia-o ao respectivo daemon, que o encaminha para a máquina externa. Este processo de passagem de pacotes é semelhante ao NAT. [email protected] - A. Paulo Santos (17/xX) Emulação(3/3) NCTU-ns Para que a máquina real seja capaz de enviar pacotes à rede virtual, é necessário alterar a sua routing table. Deve ser adicionada uma rota (default gw), informando que todos os pacotes destinados a IPs das máquinas virtuais sejam enviados ao servidor de simulação. [email protected] - A. Paulo Santos (18/20) Utilização NCTU-ns O simulador e emulador de redes NCTUns é uma ferramenta muito abrangente, permitindo: •Planificação de redes e avaliação de seu Desempenho. •Ferramenta “educacional” para ensinar como funcionam as redes reais. •Avaliação da performance de sw executados em redes. A sua utilização será abordada no estudo da sua GUI, através do manual da versão 6.0 [2010] [email protected] - A. Paulo Santos (19/20) Instalação NCTU-ns Para procedermos a instalação do NCTUns-6.0, temos que optar por uma de duas possibilidades: •Instalação real de SO Linux Fedora-based (dualboot) no pc ou portátil. •Instalação de Máquina Virtual, usando SW de virtualização: • Virt-manager • Virtual-Box • VMWare Está disponível no moolde um guião. [email protected] - A. Paulo Santos (20/20)