Você está na página 1de 11

INTRODUO AO NETKIT

Documento verso 0.3

Aluno: Paulo Henrique Moreira Gurgel #5634135

Orientado pela Professora


Kalinka Regina Lucas Jaquie Castelo Branco

Maro / 2010

Introduo ao netkit
Motivao
No uma tarefa trivial estudar redes de computadores. possvel aprender redes
atravs de livros, revistas, fruns especializados, mas a experimentao prtica
importante. O problema aparece quando preciso realizar experimentos pois este um
processo custoso, envolvendo a disponibilidade de diversos equipamentos e privilgios
para modificar configuraes de quaisquer um deles, inclusive com a possibilidade de
trav-los.
Num laboratrio acadmico, existe a chance do aluno acidentalmente realizar uma
configurao que ir impedir a utilizao imediata posterior do laboratrio gerando a
necessidade de efetuar a manuteno e possivelmente atrapalhando o andamento das
aulas da turma seguinte.
Entrementes, muitas vezes no existe a disponibilidade dos equipamentos para
executar os diversos experimentos de rede pois tais equipamentos so muitas vezes
caros. De modo anlogo, importante considerar que, diferente de outras disciplinas, o
estudante de redes no tem muitas vezes possibilidade de realizar os experimentos
domesticamente, pois no h sentido em investir em equipamentos para simular todo e
qualquer tipo de laboratrio de redes.
Resultado do trabalho conjunto de diversos profissionais do laboratrio de redes de
computadores da Roma Tre University, e do grupo de usurios de linux LUG Roma 3, o
software Netkit permite a realizao destes experimentos atravs de mquinas, enlaces e
outros equipamentos virtualmente em um computador hospedeiro.

Apresentao do Netkit
O software Netkit um emulador de redes que permite a criao de experimentos
de redes de computadores virtuais, incluindo os dispositivos de hardwares necessrios
para seu suporte como roteadores, servidores, switches, e da criao dos enlaces. Alm
do hardware, estes equipamentos virtuais so inicializados com softwares reais que em
execuo oferecem experincia real ao estudante para a realizao de diversos estudos,
mesmo que tenha apenas um computador em seu domiclio.
O Netkit utiliza softwares de cdigo aberto, principalmente licenciados pela GPL,
usando em suas mquinas uma variao do kernel Linux chamada UML (User Mode
Linux). Para montar uma rede o Netkit usa um conjunto de arquivos de configuraes e
pastas, que formam um laboratrio virtual. Um laboratrio tambm pode ser inicializado
atravs de scripts ou atravs da linguagem NetML que uma linguagem baseada em
XML para descrio de redes.
Uma mquina virtual iniciada pelo netkit um computador completo rodando uma
distribuio mono usurio da distribuio Debian GNU/Linux. Para transformar essa
mquina num dispositivo especfico basta executar o software adequado.

Recursos do Netkit
Entre os recursos que podemos experimentar no Netkit, podemos verificar:

Recursos e protocolos
Camada fsica:
Camada fsica Ethernet
Camada de enlace:
Protocolo 802.1D ponte e brctl
Configurao de VLANs (802.1Q)
Protocolo PPP
Comutao de pacotes
MPLS
manipulao de pilhas de rtulos
Distribuio de rtulos via LDP
Camada de redes:
Resoluo ARP e RARP
Controle de mensagens por ICMP
Roteamento Ipv4 e Ipv6
Camada de transporte
Protocolo TCP
Protocolo UDP
Camada de aplicao
DHCP
DNS (Servidor e Cliente)
Email POP / IMAP / SMTP
FTP
HTTP
NFS
Telnet
Samba
SSH
Squid

Roteamento
Comutao de pacotes por MPLS
Protocolos de roteamento
BGP
OSPF
RIP
Balanceamento de carga
Multicast
PIM-SM

Ferramentas de segurana
IPSec, ESP e AH
IKE
Sistema de deteco de intruso
Radius

Manipulao de pacotes
Encapsulamento
Tunneis GRE e MPLS
Captura e anlise de pacotes
Ettercap
SSLDump
TCPDump
TCPReen
Tethereal
Filtro de pacotes
NAT
Montagem de pacotes
Dsniff
Hping
Sendip
Tcpreplay

Diversos
Linguagens de script
Awk
Bash
Expect
Python

Concluso
O Netkit permite o estudo de redes das mais variadas complexidades sem nus
tcnico ou investimento alto em infra-estrutura e equipamentos. Por este motivo, est
sendo desenvolvido no ICMC/USP este trabalho de montagem do laboratrio virtual de
ensino de redes com a expectativa de propiciar aos docentes ferramentas de
experimentao prtica dos laboratrios, e aos discentes experincia real ao ligar com
softwares reais atravs da virtualizao, experincia essa que seria custosa para ser
obtida de outro meio.

GUIA DE REFERNCIA DO LINUX


COISAS QUE VOC DEVE SABER ANTES
DE EXECUTAR OS PRXIMOS LABS
Documento verso 0.1

Aluno: Paulo Henrique Moreira Gurgel #5634135

Orientado pela Professora


Kalinka Regina Lucas Jaquie Castelo Branco

Maio / 2010

Conceitos bsicos de linux


Este documento visa passar orientaes bsicas sobre o uso do Linux, necessrio
para estas prticas. Este um documento que dever evoluir aos poucos. Qualquer
apostila de introduo ao linux provavelmente ser melhor do que este documento se
voc nunca teve nenhum contato. Entretanto este servir como um guia rpido de
referencia caso voc queira se aventurar pelos labs de rede imediatamente.

Distribuies:
O Linux possui varias distribuies, que como se fossem marcas diferentes de
um mesmo produto. Cada usurio encontra algumas vantagens ou desvantagens em
suas distribuies. Se voc no tiver qualquer preferncia ou distribuio, o autor
recomenda o uso da distribuio mandriva que bastante amigvel ao iniciante e possui
uma excelente compatibilidade com hardware.

Porque linux?
Disponibilidade de softwares: Os softwares de redes mais usados do mundo so
linux. O servidor DNS, o Bind, nativo para linux. O apache, embora possua verso para
Windows, tem desempenho muito superior no linux, assim como o php, que possui mais
da metade da programao dinamica em nmero de sites na web. As verses mais
avanadas dos softwares de gerenciamento padro dos equipamentos de rede no tem
verses Windows.
O Windows tambm no possui softwares padronizados e de ampla aceitao para
roteamento de pacotes. Finalmente o Windows no implementa a rede nativamente, no
nvel do ncleo do sistema operacional, mas atravs de uma camada de software
chamada WinSock. Isso causa um overhead no desempenho de comunicao.

Estruturas de pastas:
Para nossos estudos, precisamos conhecer as seguintes pastas:
/etc
a pasta onde ficam os arquivos de configurao
/etc/init.d
a pasta que contem os comandos dos daemons e servidores
/var/log
em geral, logs estaro nessa pasta. Importante para consultar erros.
/home/seu_nome este seu home_dir, a pasta que contem seus arquivos pessoais
/tmp
essa pasta de arquivos temporrios e tudo que estiver aqui pode
ser apagado a qualquer momento!
/hosthome
dentro do Netkit, ela equivale a seu home_dir. o meio mais fcil de
enviar um arquivo de dentro de uma mquina virtual para fora.
/hostlab
a pasta que contem os arquivos dos labs.
No laboratrio do CISC, voc deve considerar tambm as seguintes pastas:
/export/home/seu_nome essa sua pasta de usurio no ICMC. Ela tem tamanho
limitado por quota. Limpe-a periodicamente. Pelo tamanho
limitado ela no adequada para hospedar os labs que
podem ocupar um bom espao enquanto estiverem em
execuo..

Comandos importantes:
pwd
cp
mv
cd
ls
rmdir
mkdir
tar
man

mostra a pasta corrente, onde voc estiver.


o comando utilizado para copiar
o comando utilizado para mover arquivos
o comando para mudar a pasta corrente
o comando para ver os arquivos que esto na pasta corrente
o comando para apagar uma pasta vazia
o comando para criar uma pasta vazia
o comando para (des)compactao e (des)empacotamento de arquivos
permite a leitura do manual de um determinado comando ou software

Para consultar como utilizar estes e outros comandos:


http://focalinux.cipsga.org.br/

INSTALAO DO NETKIT
Documento verso 0.2

Aluno: Paulo Henrique Moreira Gurgel #5634135

Orientado pela Professora


Kalinka Regina Lucas Jaquie Castelo Branco

Maro / 2010

Tutorial de Instalao do Netkit.


Importante
Este tutorial de instalao do Netkit se baseia no pressuposto que voc est
familiarizado com o bsico de um ambiente Linux. Voc dever saber, atravs do
ambiente bash, criar e administrar pastas e arquivos, bem como utilizar algum editor de
modo texto, preferencialmente o vi. Todos os comandos so demonstrados em negrito.

Instalao do Netkit
O Netkit distribudo em 3 pacotes, o software base, o kernel e o sistema de
arquivos. A ltima verso deve ser baixada no site http://wiki.netkit.org. Os links dos
pacotes utilizados so:
http://wiki.netkit.org/download/netkit/netkit-2.7.tar.bz2
http://wiki.netkit.org/download/netkit-filesystem/netkit-filesystem-i386-F5.1.tar.bz2
http://wiki.netkit.org/download/netkit-kernel/netkit-kernel-i386-K2.8.tar.bz2
Estas so as verses mais recentes no momento do desenvolvimento deste
material. O material ser atualizado se sair nova verso, mas at que o mesmo
seja atualizado ser prefervel utilizar as verses indicadas nos links acima.
Coloque os arquivos que efetuou download em seu homedir e use os comandos a seguir:
[seu_nome@suamaquina ~]$ tar -xjSf netkit-2.7.tar.bz2
[seu_nome@suamaquina ~]$ tar -xjSf netkit-filesystem-i386-F5.1.tar.bz2
[seu_nome@suamaquina ~]$ tar -xjSf netkit-kernel-i386-K2.8.tar.bz2

Aps descompactar os arquivos, baixe no site http://www.paulogurgel.com.br/


ou http://www.grad.icmc.usp.br/~paulogur/ o arquivo nk_unnoficial_fix.tar.bz2
e salve-o. Use o comando a seguir para extrair.
[seu_nome@suamaquina ~]$ tar -xf nk_unnoficial_fix.tar.gz ./bin

.
O comando tar descompacta o arquivo, extraindo seu contedo na pasta
corrente. As opes tem o seguinte significado:
x
permite que o contedo do pacote seja extrado
j
indica que o arquivo est compactado usando bzip2
S
Indica ao tar para lidar com arquivos esparsos de forma mais eficiente
f
Indica o arquivo que ser descompactado
Os comandos acima iro criar uma pasta chamada netkit em sua pasta de usurio.
Supondo que seu usurio seja seu_nome ficar /home/seu_nome/netkit.
Execute os seguintes comandos:
[seu_nome@suamaquina ~]$ export NETKIT_HOME=/home/seu_nome/netkit
[seu_nome@suamaquina ~]$ export MANPATH=:$NETKIT_HOME/man
[seu_nome@suamaquina ~]$ export PATH=$NETKIT_HOME/bin:$PATH

O comando export cria variveis de ambiente que so exigidas por programas


para seu funcionamento. A varivel NETKIT_HOME usada pelo netkit para
encontrar seus arquivos. A varivel MANPATH permite que o man encontre
mais entradas de manual. J a varivel PATH permite que os comandos do
netkit sejam executados de qualquer pasta.
Estes comandos podero ser acrescidos ao seu arquivo .bash_rc para que sejam
executados automaticamente quando voc iniciar seu ambiente bash (terminal).
Use o editor de sua preferncia (kate, gedit grficos, vi em modo texto) para
criar ou editar o arquivo .bash_rc (isso mesmo, o arquivo comea com um
ponto, pois um arquivo oculto). Acrescente as 3 linhas de comando de export
nele. Feche e abra o terminal e voc no precisar usar sempre estes
comandos.
A partir da home_dir, use o comando cd netkit para acessar a pasta do netkit, e
depois execute o script check_configuration.sh (comando: ./check_configuration.sh)
Ele ir retornar a seguinte sada:
>
>
>
>
>

Checking path correctness... passed.


Checking environment... passed.
Checking for availability of man pages... passed.
Checking for proper directories in the PATH... passed.
Checking for availability of auxiliary tools:
awk
: ok
basename
: ok
date
: ok
dirname
: ok
find
: ok
getopt
: ok
grep
: ok
head
: ok
id
: ok
kill
: ok
ls
: ok
lsof
: error: cannot find any executable for this tool
ps
: ok
readlink
: ok
wc
: ok
port-helper : ok
tunctl
: error: cannot find any executable for this tool
uml_mconsole : ok
uml_switch
: ok
failed!
*** Error: some of the standard tools needed for running Netkit were
not found in your Linux installation. Either the tools are not installed
or your PATH variable is not properly set. Please, install the tools
or set the PATH variable, then try again.
[ ERROR ] Your system is not configured properly. Please correct the
above errors before starting to use Netkit.

possvel verificar que a sada de exemplo retornou uma falha nos pacotes lsof e
tunctl. necessrio instalar estes pacote, bem como os demais listados para que o netkit
possa ser executado.

Numa distribuio baseada em Debian, use apt-get install pacotes, onde


pacotes o nome dos pacotes, separado por espaos, para completar a instalao.
Neste exemplo apt-get install tunctl lsof. No caso de uma distribuio mandriva, o
comando urpmi tunctl lsof e deve ser executado como root.
Uma segunda execuo pode mostrar que os pacotes no esto disponveis no
path adequado e a prpria mensagem de sada fornece as alternativas para a correo.
Ao instalar corretamente todas as dependncias, voc dever receber a mensagem:
[ READY ] Congratulations! Your Netkit setup is now complete!
Enjoy Netkit!
Voc provavelmente desejar instalar tambm atravs de seu gerenciador de
pacotes a ferramenta wireshark (anteriormente conhecida como ethereal) que
ser usada em diversos labs para analisar os pacotes. Verifique se a mesma
est instalada e se no tiver, use o gerenciador de pacotes de sua distribuio
para instal-lo.

Vrias distribuies amigveis possuem gerenciadores grficos de pacotes.


Voc pode usar o gerenciador grfico para verificar se os pacotes esto
instalados. No Mandriva Linux, a opo adicionar e remover programas. No
Ubuntu e outras debian based, chamado Synaptic;

Cada mquina virtual do netkit cria, por padro, um arquivo de 10Gb em sua
pasta de usurio chamado NOMEPC.disk. Os laboratrios que voc ir baixar
tem uma configurao para que estes arquivos sejam criados na pasta /tmp.
Isso permite que seu perfil de usurio, no caso de uso no CISC, no seja
sobrecarregado. Entretanto a verso 2.7 do Netkit tem um bug que impede
que essa configurao seja efetuada num laboratrio. O fix no oficial corrige
este bug, alm de outros ajustes adequados para o uso do netkit dentro dos
laboratrios da USP e na sua mquina pessoal.
Entretanto, o mesmo fix ainda no ajusta o comando lclean que apaga todos
os arquivos temporrios dos laboratrios, e a excluso dos mesmos dever ser
feita manualmente.

Você também pode gostar