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)
Download

Simulação de Redes de Comunicação