SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
ANÁLISE DO GNS3 COMO FERRAMENTA AUXILIAR AO
ENSINO DO PROTOCOLO HTTP POR MEIO DA
COMUNICAÇÃO ENTRE REDES SIMULADAS
Christopher Renkavieski
Lucas Machado Gutierrez
Marlon Henry Schweigert
Joinville
2016
Christopher Renkavieski
Lucas Machado Gutierrez
Marlon Henry Schweigert
ANÁLISE DO GNS3 COMO FERRAMENTA AUXILIAR AO
ENSINO DO PROTOCOLO HTTP POR MEIO DA
COMUNICAÇÃO ENTRE REDES SIMULADAS
Relatório do Projeto de Conclusão da matéria de Re-
des de Computadores apresentado ao Curso de Gra-
duação em Ciência da Computação, da Universidade
do Estado de Santa Catarina (UDESC), como requi-
sito parcial da disciplina de Redes de Computadores
(REC).
Orientador: Profo
Charles Christian Miers
Joinville
2016
Christopher Renkavieski
Lucas Machado Gutierrez
Marlon Henry Schweigert
ANÁLISE DO GNS3 COMO FERRAMENTA AUXILIAR AO
ENSINO DO PROTOCOLO HTTP POR MEIO DA
COMUNICAÇÃO ENTRE REDES SIMULADAS
Projeto para Rede de Computadores
Conteúdo
Lista de Abreviaturas 5
1 Introdução 6
2 Conceitos 7
2.1 Redes de Computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Roteadores e switches . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2 Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.3 Redes de computadores simuladas . . . . . . . . . . . . . . . . . . . . 8
2.1.4 HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.5 GNS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.6 Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.7 Virtualbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Configuração da Análise 14
3.1 Setup Inicial em Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Configuração do Virtual Box . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 GNS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.1 Configuração da Topologia . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.2 Configuração do Roteador Cisco C1700 . . . . . . . . . . . . . . . . . 19
3.4 Integração externa entre GNS3 e VirtualBox . . . . . . . . . . . . . . . . . . . 22
3.4.1 Configuração dos IP’s nas Máquinas Virtuais . . . . . . . . . . . . . . 22
3.4.2 Configuração das Aplicações no Servidor . . . . . . . . . . . . . . . . 23
3.5 Confirmação da Configuração . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.1 Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.2 Resultado do Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . 24
4 Análise 25
4.1 Estudo de caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 Análise da Usabilidade do GNS3 . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.1 Teste do tempo de resposta . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.2 Teste de fidelidade do protocolo HTTP . . . . . . . . . . . . . . . . . 30
4.3 Características do GNS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5 Conclusão 32
Bibliografia 34
Lista de Figuras
3.1 Seleção da IOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Lista de roteadores configurados . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 Configuração de WICs do Roteador C1700 . . . . . . . . . . . . . . . . . . . 17
3.3 Lista de hosts configurados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5 Topologia utilizada para a Análise . . . . . . . . . . . . . . . . . . . . . . . . 19
3.6 Visão do Console do roteador Cisco C1700 no GNS3 . . . . . . . . . . . . . . 20
3.7 Arquivo de configuração de redes no Debian . . . . . . . . . . . . . . . . . . . 23
4.1 Topologia de rede utilizada por Mohtasin et. al. . . . . . . . . . . . . . . . . . 25
4.2 Tempo de ping na rede simulada, em azul, e na rede física, em vermelho . . . . 26
4.3 Tempo da transferência de um arquivo de 14,2 MB na rede simulada, em azul,
e na rede física, em vermelho . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.4 Histograma - 100 requisições HTTP - 1.000 bytes em função do tempo . . . . . 28
4.5 Histograma - 100 requisições HTTP - 10.000 bytes em função do tempo . . . . 29
4.6 Histograma - 100 requisições HTTP - 100.000 bytes em função do tempo . . . 29
Lista de Tabelas
3.1 Tabela de Configurações das Máquinas Virtuais . . . . . . . . . . . . . . . . . 15
3.2 Slots de interfaces do Roteador C1700 . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Tabela de interfaces no roteador R1 . . . . . . . . . . . . . . . . . . . . . . . 21
3.4 Tabela de roteamento, roteador R1 . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 Configuração de IPs das Máquinas Virtuais . . . . . . . . . . . . . . . . . . . 23
4.1 Tabela de tempo mínimo, média e máximo dos testes . . . . . . . . . . . . . . 29
4.2 Métodos HTTP suportados na simulação . . . . . . . . . . . . . . . . . . . . . 30
5
Lista de Abreviaturas
GNS3 Graphical Network Simulator 3
HDD Hard Disk Drive
HTTP Hypertext Transfer Protocol
HTTPS Hypertext Transfer Protocol Secure
IOS Internetwork Operating System
IP Internet Protocol
MIME Multipurpose Internet Mail Extensions
RAM Random Access Memory
SSL Secure Socket Layer
TCP Transmission Control Protocol
VM Virtual Machine
VRAM Video Random Access Memory
WIC WAN Interface Card
WWW World Wide Web
6
1 Introdução
Do momento de sua invenção até hoje, a Internet foi responsável por mudanças
radicais e profundas na sociedade, permitindo comunicação e acesso a informação a taxas nunca
antes experimentadas (KUROSE; ROSS, 2013).
A definição mais básica de internet é uma rede de redes. Já a Internet, com “I”
maiúsculo, é uma rede de redes específica, que hoje conecta computadores, dispositivos móveis
e outros por todo o planeta, tendo como base os protocolos de transmissão TCP/IP, e sobre a
qual está edificada a World Wide Web (WWW).
A construção de uma rede, entretanto, não é uma tarefa trivial, envolvendo não só
computadores, mas também outros dispositivos como roteadores, switchs e cabos, por exemplo.
A construção de uma topologia de rede envolve custos relativamente altos e necessita de plane-
jamento prévio. No meio acadêmico, utilizar redes reais para o estudo de protocolos pode ter
limitações tanto físicas quanto financeiras, tornando a tarefa muitas vezes inviável. A simulação
de redes tem como objetivo principal viabilizar o estudo e análise de redes de computadores de
maneira facilitada, segura e controlada, diminuindo custo e tempo de preparação de laboratório.
O GNS3 é hoje uma das ferramentas de simulação mais usadas no mundo, pro-
porcionando uma experiência de simulação bem próxima da realidade através da construção de
topologias ligando máquinas reais e virtuais a redes simuladas ou reais, ou até mesmo a Internet.
Este trabalho tem como objetivo analisar a aplicabilidade da ferramenta GNS3 no
estudo do protocolo HTTP transmitido entre máquinas virtuais para fim do estudo de redes
de computadores. Será usado máquinas virtuais e uma máquina real, ligados a uma mesma
rede, para a realização da troca de pacotes na simulação. Os pacotes, então, serão capturados e
analisados.
O trabalho está dividido em 3 capítulos, além da introdução e da conclusão. O
capítulo 2 trata de conceituar os pontos relevantes referentes à redes de computadores e as
ferramentas usadas na simulação. No capítulo 3, aborda-se a configuração de cada ferramenta a
fim de construir a simulação desejada. Por fim, o capítulo 4 descreve os resultados da simulação
e analisa as vantagens e desvantagens do uso do GNS3 para o estudo do protocolo HTTP.
7
2 Conceitos
2.1 Redes de Computadores
Uma rede de computadores é, em sua definição mais simples, um conjunto de com-
putadores que trocam informações entre si. Para que essa troca de informações seja possível,
são necessárias ao menos duas coisas: protocolos de comunicação e um mensageiro.
Um protocolo de comunicação é uma regra – ou um conjunto de regras – para que
ambas as partes envolvidas em uma troca de mensagens possam entender uma à outra. Um
exemplo de protocolo de comunicação é um idioma: em geral, duas pessoas somente se enten-
dem se estiverem falando a mesma língua. Em redes de computadores tem-se, por exemplo, o
conjunto de protocolos TCP/IP, que permite a comunicação entre diferentes computadores em
uma rede.
Já o mensageiro é o responsável por levar a mensagem de uma parte à outra. Pode
ser um carteiro para levar cartas, ondas mecânicas para transmitir som, ou um roteador para
trocar pacotes de dados entre computadores (KUROSE; ROSS, 2013).
As aplicações para redes de computadores são inúmeras. Em uma empresa, uma
rede pode ser utilizada para que múltiplos empregados possam trabalhar num mesmo projeto
simultaneamente, ou permitir a troca de mensagens entre diferentes pontos da empresa rapida-
mente. Um conjunto de computadores também pode compartilhar recursos para a execução de
tarefas computacionalmente custosas, formando o que é conhecido como um cluster. Uma rede
de computadores também pode ser utilizada para a transmissão de notícias, comunicação de voz
e vídeo, armazenamento de informações, entre muitos outros.
Porém, possivelmente a aplicação mais popular e revolucionária para redes de com-
putadores é a Internet. Uma internet é uma rede de redes de computadores. Já a Internet, com
“I” maiúsculo, é uma rede de redes específica, que comunica computadores e outros dispositivos
por todo o planeta, e sobre a qual está edificada a World Wide Web.
Redes de computadores estão estabelecidas sobre uma série de convenções, proto-
colos e dispositivos físicos que, se fossem todos definidos, forneceriam material suficiente para
8
um livro. No contexto deste trabalho, será importante definir os conceitos de roteador, switch e
host.
2.1.1 Roteadores e switches
Na analogia mencionada, um switch é como o mensageiro na comunicação entre
computadores. Ele se conecta aos computadores de uma rede, e nele estão configurados os
protocolos que permitem a comunicação entre esses computadores.
Já um roteador exerce o mesmo papel de um switch, porém, em vez de realizar a
comunicação entre computadores, ele permite a comunicação entre outros switches. Na prática,
isso faz com que um roteador intermedeie a comunicação entre diferentes redes de computado-
res, permitindo a existência de redes de redes, incluindo a Internet (Cisco, n.d.) .
2.1.2 Hosts
Todo dispositivo conectado a uma rede de computadores é chamado de host, seja
esse dispositivo um computador propriamente dito, um smartphone, uma web cam, um dis-
positivo de segurança - como uma câmera noturna - ou o que for necessário ao usuário da
rede(KUROSE; ROSS, 2013).
O termo host, do inglês, significa anfitrião, e os dispositivos conectados a uma rede
de computadores são chamados assim, já que os mesmos hospedam aplicações que utilizará a
devida rede conectada.
Nem todos os hosts conectados a uma rede têm a mesma importância. É comum
dividir os hosts entre clientes e servidores, sendo que os servidores executam serviços impor-
tantes para a rede, enquanto clientes apenas acessam esses serviços. Um exemplo dessa relação
é um banco de dados, que é hospedado em um servidor central, e pode ser acessado de quantos
clientes foram necessários.
2.1.3 Redes de computadores simuladas
Simulações auxiliadas por computador são hoje parte fundamental do desenvolvi-
mento científico, permitindo estudar de forma controlada e aproximada inúmeros fenômenos de
inúmeras áreas do conhecimento.
9
Para redes de computadores não é diferente. A simulação de tais redes fornece um
ambiente controlado em que podem ser estudados diferentes protocolos de comunicação, seja
para avaliar sua eficiência ou mesmo para testar novos protocolos e compará-los com os já
estabelecidos.
Há várias aplicações de software, tanto livres quanto comerciais, que permitem si-
mular a comunicação entre computadores. Entre os comerciais, podem ser citados OPNET e
QualNet, enquanto entre os livres, podem-se destacar NS2, NS3, J-Sim e GNS3. O simulador
utilizado na análise deste trabalho será o GNS3, que alia ferramentas de simulação com uma
interface gráfica que facilita o uso (PAN, 2008).
Havendo uma variedade de simuladores de rede disponível, um dos critérios para se
definir qual será utilizado em uma dada aplicação é que aspectos de rede o simulador suporta.
Alguns aspectos de rede mínimos que um simulador deve suportar são: permitir a representação
de diferentes topologias e cenários de rede, especificar os nós, seus links e o tráfego entre os
nós da rede, além de permitir a análise desse tráfego. Já um simulador mais elaborado deve
permitir a especificação dos protocolos de transmissão e fornecer uma interface gráfica para a
visualização da simulação (PAN, 2008).
Tais simulações, porém, não são perfeitas, e frequentemente são limitadas pelo
hardware do computador que as está executando. Em especial em simuladores como o GNS3,
em que os computadores da rede são máquinas virtuais rodando sobre o mesmo hardware, o
alto consumo de memória pelo simulador torna inviável a simulação de redes grandes.
2.1.4 HTTP
O HTTP, sigla para Hypertext Transfer Protocol (Protocolo de Transferência de
Hipertexto), é um protocolo desenvolvido para realizar a transferência de hipertexto em uma
rede e é a base da WWW.
O conceito de hipertexto surgiu em 1965, antes do surgimento da Internet, por The-
odor Holm Nelson, filósofo e sociólogo nascido nos Estados Unidos e conhecido por ser um
dos pioneiros da Tecnologia da Informação. Segundo Nelson (NELSON, 1981), a escrita e a
leitura não devem ser necessariamente sequenciais. Hipertextos, na sua visão, são um conjunto
de nós que representam documentos de texto e se conectam entre si através de hyperlinks (hi-
perligações) formando uma rede. O conceito foi aplicado por Tim Berners-Lee em 1989 na
10
idealização e desenvolvimento da WWW. O protocolo fornece o acesso do usuário a esse con-
junto de hipertextos na forma conhecida como páginas da Web, com o auxílio de Navegador
Web. Como hoje uma página da Web pode conter textos, vídeos, imagens e sons, “o termo hi-
pertexto, cunhado para designar documentos de texto vinculados, foi alterado para hipermídia”
(FOROUZAN, 2013).
Esse protocolo atua na camada de aplicação, quinta camada do Conjunto de Proto-
colos TCP/IP e a sétima camada do Modelo OSI (Interconexão de Sistemas Abertos), na qual
é responsável pelo provimento de serviços ao usuário. O HTTP está sob o paradigma Cliente/-
Servidor e é um protocolo de requisição/resposta que atua na troca de mensagens de maneira
confiável. O “cliente” solicita uma conexão com o “servidor” para mandar requisições HTTP.
O “servidor”, por sua vez, aceita conexões para responder requisições HTTP. Uma mesma má-
quina pode atuar tanto como “cliente” quanto como “servidor”, apenas depende da conexão na
qual se encontra (R. FIELDING, 2014).
O Protocolo de Transferência de Hipertexto se comunica com a camada de trans-
porte através do Transmission Control Protocol (TCP). O TCP é um protocolo orientado à
conexão, ou seja, para efetuar uma requisição deve-se estabelecer uma conexão entre o cliente e
o servidor antes da transação, e após essa ser concluída, a conexão deve ser encerrada, provendo
assim confiabilidade no envio e recebimento dos dados. O protocolo ainda provê verificação de
erros e entrega na sequência correta dos pacotes. O HTTP apenas usufrui das características do
TCP, sem precisar se preocupar com as trocas de dados. Consequentemente, é visível ao HTTP
apenas uma conexão lógica confiável entre Cliente/Servidor.
O protocolo é usado desde o surgimento da WWW comercial, em 1990. Sua pri-
meira versão foi o HTTP/0.9. Foi seguida pelo HTTP/1.0 e, em 1999, definiu-se o HTTP/1.1,
atual versão do HTTP.
Segundo Forouzan e Mosharraf (2013, p. 58), o protocolo não oferece nenhuma
segurança, porém ele pode ser executado sobre a Camada de Sockets Segura (SSL), conhecido
como HTTPS -Hypertext Transfer Protocol Secure-, que assegura aspectos de segurança como
confidencialidade, autenticação e integridade dos dados.
Todas as mensagens HTTP/1.1 consistem de uma linha inicial seguida de uma
sequência de octetos (R. FIELDING, 2014). Mensagens enviadas do cliente, a linha inicial é a
linha de requisição, enquanto que do servidor é a linha de resposta.
Na requisição, é enviado o método na qual representa a solicitação, a URL e a versão
11
do HTTP. A resposta é dada pela versão do HTTP, um código de 3 dígitos, que representa uma
resposta a solicitação do cliente, e uma frase descritiva do código, tais que: (R. FIELDING, 2014)
• 1xx: Requisição recebida, continuando processo.
• 2xx: Requisição recebida, entendida e aceita.
• 3xx: Precisa-se de mais informações.
• 4xx: Erro por parte do cliente.
• 5xx: Erro por parte servidor.
Após a primeira linha, segue-se zero ou mais cabeçalhos que contém informações
baseados na requisição, e podem conter dados sobre documentos e imagens envolvidos na tran-
sação, por exemplo.
Segue-se então uma linha em branco e, finalmente, o corpo da mensagem. Sua
existência não é obrigatória e representa o documento ao qual foi solicitado.
Em uma simulação, é possível analisar todos os atributos de uma mensagem
HTTP/1.1, tais como método utilizado, tempo de resposta, corpo da mensagem, etc. O soft-
ware Wireshark, descrito em 1.1.6, será usado neste trabalho com o propósito de capturar cada
pacote HTTP trocado na simulação a fim de analisá-los.
2.1.5 GNS3
Em 2005, foi lançado o Dynamips, desenvolvido por Christophe Fillot, um soft-
ware multiplataforma que emula roteadores Cisco. Em sua primeira versão, o software oferecia
poucas opções e executava em linhas de comando. O projeto parou na versão 0.2.8-RC, porém
foi criado, em 2007, um adicional ao Dynamips chamado GNS3, que oferecia uma interface
gráfica ao software. Desde então o projeto GNS3 vem adicionando novas funcionalidades a
cada versão lançada.
O GNS3 é capaz de emular diversos equipamentos de rede, como roteadores, swit-
chs, computadores e firewalls, e suporta o Cisco IOS1
usando o Dynamips e é capaz de emular
redes de computadores combinando máquinas reais e virtuais juntas, sem precisar de equipa-
mentos de hardware (AMYOT, 2014). Isso torna o GNS3 uma ferramenta poderosa para que
1
Software de rede utilizado nos roteadores Cisco
12
profissionais de redes possam criar cenários de teste próximos da realidade sem ter que se pre-
ocupar com aquisição de hardware durante os testes. O GNS3 ainda é capaz de interagir com o
Wireshark e o Virtualbox, ampliando as possibilidades de simulação.
No meio acadêmico, existem limitações para o desenvolvimento de atividades prá-
ticas na área de redes, tais como financeiras e alocação de espaços para laboratórios de rede,
ou até aspectos de segurança quanto ao manuseio e configuração dos equipamentos. O GNS3,
aliado com as ferramentas apresentadas neste trabalho, podem proporcionar uma maneira de
realizar atividades práticas seguras e sem muitas exigências de hardware.
O GNS3 é compatível com Windows, MacOS e qualquer distribuição GNU/Linux.
Os requisitos de hardware recomendados para o uso do GNS3 incluem 8 gigabytes de memória
RAM, 35 gigabytes de espaço de disco disponível e processador com 4 ou mais núcleos lógicos.
Neste trabalho será usado o GNS3 versão 1.5.2. (GNS3, 2014)
2.1.6 Wireshark
O Wireshark é um software utilizado para análise de protocolos de rede, disponível
para múltiplas plataformas, incluindo Windows, Linux, MacOS, Solaris, FreeBSD, NetBSD e
outras, é distribuído sob a licença GNU General Public License (GPL) v2.02
.
Vindo originalmente de um projeto iniciado em 1998 por Gerald Combs, hoje é um
dos softwares mais populares em sua categoria, sendo mantido pela Wireshark Foundation.
O Wireshark é capaz de capturar todo o tráfego de rede do dispositivo no qual está
instalado. Permite, ainda, configurar o processo para capturar apenas pacotes desejados ou
realizar capturas em determinados períodos de tempo. O HTTP é visto pelo software, e nele é
possível analisar todas as informações referentes ao protocolo, como o cabeçalho, informações
de origem e destino e o corpo da mensagem. Existe, também, a opção de analisar, a partir de um
referencial de tempo, o momento que cada protocolo é analisado, gerando informações como
o tempo de resposta, por exemplo. No contexto deste trabalho, o Wireshark será utilizado para
analisar o protocolo HTTP entre máquinas virtuais conectadas por meio do software GNS3.
2
um software que está sob a licença GPL v2.0 deve possibilitar acesso de seus códigos-fonte a terceiros. Esses
códigos podem ser alterados e distribuídos livremente, e utilizados em outros programas livres com apenas uma
restrição: toda e qualquer redistribuição deve ser feita sob a mesma licença. O software que está sob essa licença
pode ser gratuito ou pago.
13
2.1.7 Virtualbox
O VirtualBox é um software de virtualização multiplataforma desenvolvido pela
empresa alemã Innotek em 2007 sob a licença GNU General Public License (GPL) v2.0. Em
2008, a empresa estadunidense Sun Microsystems adquiriu a Innotek e consequentemente o
software. A Sun Microsystems foi, então, comprada em 2009 pela Oracle, juntamente com
todos os seus softwares.
O VirtualBox é hoje mantido pela Oracle. A empresa oferece tanto uma versão base
gratuita sob licença GPL v2.0, quanto uma versão estendida paga sob a licença Personal Use
and Evaluation Licence (PUEL). Neste trabalho será usado o VirtualBox versão 5.1.8 gratuita.
O software pode ser instalado nos sistemas operacionais Windows, GNU/Linux,
MacOS e Solaris e possibilita a criação de uma ou mais máquinas virtuais, propiciando a opor-
tunidade de instalação de sistemas operacionais quaisquer nessas máquinas, compartilhando de
um mesmo hardware físico. A máquina virtual é vista com uma máquina independente, tanto
nos aspectos de software, quanto pela rede local. A criação de um sistema operacional em
uma máquina virtual possibilita o uso de mais de um sistema diferente ao mesmo tempo, sem
necessitar de um hardware adicional.
Neste trabalho, serão criadas duas máquinas virtuais, cada uma com um sistema
operacional instalado. Com isso, pode-se usar apenas um computador para criar uma rede si-
mulada entre dois computadores virtuais. Para usar mais de um sistema operacional virtualizado
em uma máquina, necessita-se uma máquina real com requisitos de hardware altos para a rea-
lização. Recomenda-se que, para a simulação proposta, os requisitos de hardware sejam de no
mínimo os requisitos propostos no tópico 2.1.5. (Oracle, 2016).
14
3 Configuração da Análise
3.1 Setup Inicial em Debian
Utilizou-se o Debian 64 bits como sistema operacional para as máquinas virtuais
usadas na simulação. Segundo o próprio autor (SPI, 2012), o sistema proporciona um bom
funcionamento com pacotes básicos do sistema. Além disso, o Debian permite um setup padrão
rápido para o trabalho com um script bash, podendo ser reproduzido em outras máquinas de
forma prática.
Inicialmente precisou-se instalar nessas máquinas virtuais as aplicações de software
Virtual Box (Oracle, 2006), GNS3 (GNS3, 2014) e Wireshark (Linoxide, 2013), para que se possam
realizar os devidos testes. O Código 3.1 mostra como procedeu as instalações.
1
2 # Adicao de R e p o s i t o r i o s e Arquivos
3 sudo add−apt−r e p o s i t o r y ppa : gns3 / ppa
4
5 deb h t t p : / / download . v i r t u a l b o x . org / v i r t u a l b o x / debian x e n i a l c o n t r i b
6 sudo apt−key add oracle_vbox_2016 . asc
7 sudo apt−key add oracle_vbox . asc
8 wget −q h t t p s : / /www. v i r t u a l b o x . org / download / oracle_vbox_2016 . asc −O− | sudo apt−key add −
9 wget −q h t t p s : / /www. v i r t u a l b o x . org / download / oracle_vbox . asc −O− | sudo apt−key add −
10
11 # A t u a l i z a c a o
12 sudo apt−get update
13
14 # I n s t a l a c a o do V i r t u a l Box
15 sudo apt−get i n s t a l l v i r t u a l b o x −5.1
16
17 # I n s t a l a c a o do Wireshark
18 sudo apt−get i n s t a l l wireshark
19
20 # I n s t a l a c a o do GNS3
21 sudo apt−get update
22 sudo apt−get i n s t a l l gns3−gui
Código 3.1: Instalação dos Softwares
Com estes comandos, o sistema Debian está pronto para que se possam iniciar as
devidas configurações para a análise. Vale ressaltar que é possível realizar os mesmos testes em
15
outros sistemas operacionais (outras distribuições linux, Windows e Mac), sendo a escolha do
Debian somente por comodidade e conhecimento de todos os integrantes do projeto.
3.2 Configuração do Virtual Box
Inicialmente foram criadas duas máquinas virtuais mencionadas anteriormente, am-
bas com sistema Debian 64bits. As configurações utilizadas para os seus hardwares simulados
são mostradas na tabela 3.1.
Tabela 3.1: Tabela de Configurações das Máquinas Virtuais
Características Servidor Cliente
HDD 8GB 8GB
RAM 1024MB 512MB
VRAM 16MB 128MB
ADAPTADOR DE REDE PRO/1000 MT Server (GNS3) PRO/1000 MT Desktop (GNS3)
Fonte: Elaborada pelo autor
3.3 GNS3
Para este projeto, foi utilizado um servidor local do GNS3. Para simular os rote-
adores, o GNS3 usa imagens do sistema operacional de roteadores reais, o que garante uma
simulação mais fiel às redes de computadores físicas. Os roteadores utilizados nesse projeto
usam IOS (Internetwork Operating System) da CISCO para esse propósito (Cisco, 2008).
Para se adicionar uma imagem de IOS no GNS3, é necessário ir à aba Preferências
-> IOS Routing, e selecionar a devida imagem do sistema que se deseja carregar. A figura 3.1
mostra uma captura de tela dessa seleção da imagem do sistema do roteador.
O Roteador utilizado neste setup para a análise será o C1700, que já possui en-
trada para duas interfaces, que é o básico necessário para conectar as duas máquinas virtuais já
configuradas no Virtual Box.
Outra configuração necessária é a adição dos hosts do Virtual Box. Para isso, deve-
se abrir a aba de Hosts, e selecionar "New Appliance Template", selecionando em seguida "Add
a VirtualBox Virtual Machine", e selecionando as duas máquinas (Cliente e Servidor).
16
Figura 3.1: Seleção da IOS
Fonte: Elaborada pelo autor
Após estes dois passos, tanto o roteador Cisco C1700 quando as máquinas Cliente
e Servidor já estão disponíveis na lista de Templates. A figura 3.2 mostra a lista de roteadores
configurados no GNS3 e disponíveis para adicionar à rede, enquanto a figura 3.3 mostra a lista
de hosts configurados e disponíveis para esse mesmo propósito.
O roteador C1700 vem com duas interfaces WIC (WAN Interface Card) disponíveis.
As WICs utilizadas são mostradas na tabela 3.2, e a figura 3.4 mostra uma captura de tela da
configuração dessas WICs.
Tabela 3.2: Slots de interfaces do Roteador C1700
WIC0 WIC-1ENET
WIC1 WIC-1ENET
Fonte: Elaborada pelo autor
17
Figura 3.2: Lista de roteadores configurados
Fonte: Elaborada pelo autor
Figura 3.4: Configuração de WICs do Roteador C1700
Fonte: Elaborada pelo autor
18
Figura 3.3: Lista de hosts configurados
Fonte: Elaborada pelo autor
A interface WIC-1ENET fornecerá uma entrada Ethernet. Serão utilizadas duas
interfaces diferentes para obrigar o roteamento entre interfaces distintas.
3.3.1 Configuração da Topologia
A rede contará com um Roteador (C1700), dois switches e as duas máquinas virtu-
ais. Tal topologia de rede é mostrada na figura 3.5, onde R1 representa o roteador, SW1 e SW2
são os switches, e Cliente e Servidor são os computadores conectados.
19
Figura 3.5: Topologia utilizada para a Análise
Fonte: Elaborada pelo autor
Será utilizada esta topologia simples devido às limitações de hardware na realiza-
ção deste trabalho, insuficiente para simular redes maiores, devido ao alto uso de memória do
simulador, como será discutido adiante no texto.
3.3.2 Configuração do Roteador Cisco C1700
Com o roteador R1 - Cisco C1700 - iniciado, pode-se abrir o seu console para
aplicar as devidas configurações desejadas(GNS3 Labs Blog, 2015) (Free CCNA Work Book, 2012).
Tais configurações são as seguintes:
• Uma única Rede 10.0.0.0/8 com duas subredes.
• Interface Ethernet0: 10.0.0.1 (Rede 10.0.0.0/16)
• Interface Ethernet1: 10.1.0.1 (Rede 10.1.0.0/16)
A figura 3.6 mostra uma captura de tela do terminal de configuração dos roteadores.
Os códigos 3.2 e 3.3 mostram todos os comandos utilizados para tais configurações, e a tabela
3.3 mostra as interfaces de rede do roteador R1.
20
Figura 3.6: Visão do Console do roteador Cisco C1700 no GNS3
Fonte: Elaborada pelo autor
1
2 R1# c o n f i g u r e t e r m i n a l
3 Enter c o n f i g u r a t i o n commands , one per l i n e . End with CNTL/ Z .
4
5 R1( config ) # i n t e r f a c e Ethernet0
6 R1( config−i f ) # ip address 1 0 . 0 . 0 . 1 2 5 5 . 2 5 5 . 0 . 0
7 R1( config−i f ) #no shutdown
8 R1( config−i f ) #^Z
9 R1#show run i n t e r f a c e Ethernet0
10
11 Building c o n f i g u r a t i o n . . .
12
13 Current c o n f i g u r a t i o n : 73 bytes
14 !
15 i n t e r f a c e E t h e r n e t 0
16 ip add ress 1 0 . 0 . 0 . 1 2 5 5 . 2 5 5 . 0 . 0
17 half −duplex
18 end
Código 3.2: Configuração do Roteador
1 R1# c o n f i g u r e t e r m i n a l
2 Enter c o n f i g u r a t i o n commands , one per l i n e . End with CNTL/ Z .
3
4 R1( config ) # i n t e r f a c e Ethernet1
5 R1( config−i f ) # ip address 1 0 . 1 . 0 . 1 2 5 5 . 2 5 5 . 0 . 0
6 R1( config−i f ) #no shutdown
7 R1( config−i f ) #^Z
21
8 R1#show run i n t e r f a c e Ethernet0
9
10 Building c o n f i g u r a t i o n . . .
11
12 Current c o n f i g u r a t i o n : 73 bytes
13 !
14 i n t e r f a c e E t h e r n e t 0
15 ip add ress 1 0 . 1 . 0 . 1 2 5 5 . 2 5 5 . 0 . 0
16 half −duplex
17 end
Código 3.3: Configuração do Roteador
Tabela 3.3: Tabela de interfaces no roteador R1
Interface IP Mask
Ethernet1 10.1.0.0 /16 255.255.0.0
Ethernet0 10.0.0.1 /16 255.255.0.0
Fonte: Elaborada pelo autor
Como as duas redes estão ligadas diretamente ao roteador, não será necessário con-
figurar a tabela de roteamento do roteador R1. Tal tabela de roteamento é mostrada na tabela
3.4, e ela pode ser acessada através dos comandos mostrados no código 3.4 (9TUT, 2014).
1 R1#show ip route
2
3 Codes : C− connected , S − s t a t i c , R − RIP , M − mobile , B − BGP
4 D − EIGRP , EX − EIGRP e x t e r n a l , 0 − OSPF , IA − OSPF i n t e r area
5 N1 − OSPF e x t e r n a l type 1 , N2 − OSPF NSSA e x t e r n a l type 2
6 E1 − OSPF e x t e r n a l type 1 , E2 − OSPF e x t e r n a l type 2
7 i − IS−IS , su − IS−IS summary , L1 − IS−IS l e v e l −1, L2 − IS−IS l e v e l −2
8 i a − IS−IS i n t e r area , ∗ − c a n d i d a t e d e f a u l t , U − per−user s t a t i c r o u t e
9 o − ODR, P − p e r i o d i c downloades s t a t i c r o u t e
10
11 Gateway of l a s t r e s o r t i s not s e t
12 1 0 . 0 . 0 . 0 / 1 6 i s subnetted , 2 subnets :
13 C 1 0 . 0 . 0 . 0 i s d i r e c t l y connected , E t h e r n e t 0
14 C 1 0 . 1 . 0 . 0 i s d i r e c t l y connected , E t h e r n e t 1
Código 3.4: Tabela de Roteamento
Tabela 3.4: Tabela de roteamento, roteador R1
Tipo IP Máscara Próximo Passo
C 10.1.0.0 255.255.0.0 Ethernet1
C 10.0.0.0 255.255.0.0 Ethernet0
Fonte: Elaborada pelo autor
22
3.4 Integração externa entre GNS3 e VirtualBox
Para configurar os IPs (How to Forge, 2014) das máquinas virtuais, será necessário
acesso ao root e alteração dos devidos arquivos. Alguns arquivos básicos de redes utilizados
pelo Debian são:
• /etc/network/interfaces: Contém as configurações básicas das interfaces de rede. Pode-
se configurar tanto IP quanto Máscara da rede de forma estática ou por algum servidor
DHCP.
• /etc/resolv.conf: Contém as configurações básicas de resolução. Pode-se configurar o
servidor DNS.
• /etc/hosts: É o arquivo primário da resolução de nomes. Pode-se configurar IPs padrões
para solucionar nomes. No teste realizado, será utilizado para acesso ao Servidor.
Após qualquer alteração é necessário reiniciar a interface de rede para realizar a
releitura dos arquivos para a memória. Tal operação é representada pelo código 3.5.
1 s e r v i c e networking r e s t a r t
2
3 # no Debian 7
4 # / e t c / i n i t . d / networking r e s t a r t
5
6 # para v e r i f i c a r as c o n f i g u r a c o e s da rede
7 i f c o n f i g
Código 3.5: Reiniciar a Interface de Rede
3.4.1 Configuração dos IP’s nas Máquinas Virtuais
Para alterar o IP, realizou-se a operação de backup das configurações anteriores,
mostrado no código 3.6. Após isso, alterou-se o arquivo /etc/network/interfaces original com a
seguinte configuração, como mostra no código 3.7.
1 mv / e t c / network / i n t e r f a c e s / e t c / network / i n t e r f a c e s . bak
Código 3.6: Backup
1 auto lo
2 i f a c e lo i n e t loopback
3
23
4 i f a c e eth0 i n e t s t a t i c
5 addr ess 1 0 . 1 . 0 . 2 0
6 netmask 2 5 5 . 2 5 5 . 0 . 0
7 network 1 0 . 1 . 0 . 0
8 b r o a d c a s t 10.1.255.255
9 gateway 1 0 . 1 . 0 . 1
Código 3.7: Configuração do arquivo /etc/network/interfaces
A tabela 3.5 mostra as configurações de IP utilizadas nas máquinas virtuais, e a
figura 3.7 mostra uma captura de tela do arquivo de configuração de redes do Debian .
Tabela 3.5: Configuração de IPs das Máquinas Virtuais
VM IP Máscara Network Broadcast Gateway
Cliente 10.0.0.25 255.255.0.0 10.0.0.0 10.0.255.255 10.0.0.1
Servidor 10.1.0.1 255.255.0.0 10.1.0.0 10.1.255.255 10.1.0.1
Fonte: Elaborada pelo autor
Figura 3.7: Arquivo de configuração de redes no Debian
Fonte: Elaborada pelo autor
3.4.2 Configuração das Aplicações no Servidor
Será utilizado um servidor básico de HTTP para realizar os testes. A instalação
deste é dada pelos comandos mostrados no código 3.8 script.
24
1 apt−get i n s t a l l apache2
2 apt−get i n s t a l l php5 php−pear php5−mysql
3 s e r v i c e apache2 r e s t a r t
Código 3.8: Instalação do Servidor HTTP
3.5 Confirmação da Configuração
3.5.1 Traceroute
Para confirmar se essa configuração está correta, será utilizada a ferramenta Trace-
route para Debian, a qual mostrará a rota entre o próprio host até outro host. Sua instalação em
ambas as máquinas virtuais é mostrada no código 3.9 (Launchpad, 2011).
1 sudo apt−get i n s t a l l t r a c e r o u t e
Código 3.9: Instalação do traceroute
3.5.2 Resultado do Traceroute
Executando o Traceroute, confirma-se o funcionamento da Topologia, como mos-
trado no script dado no código 3.10. Ambas as máquinas virtuais estão configuradas correta-
mente, estabelecendo enlace entre as redes 10.1.0.0/16 e 10.0.0.0/16 separadas pelo roteador
R1. Deste modo, a rede simulada está pronta para a realização dos testes.
1 # Executado no C l i e n t e
2 t r a c e r o u t e 1 0 . 1 . 0 . 2 0
3 1 R1 . eth1 1 0 . 1 . 0 . 1 320.320ms 320.119ms 332.241ms
4 2 Deb7Server 1 0 . 1 . 0 . 2 0 129.542ms 350.321ms 734.20ms
Código 3.10: Resultado do traceroute
25
4 Análise
4.1 Estudo de caso
Em um trabalho intitulado "Development of a Virtualized Networking Lab using
GNS3 and VMware Workstation"(MOHTASIN, 2016), foi realizada uma comparação entre uma
rede física e uma rede simulada com GNS3, avaliando a aplicabilidade de redes simuladas
em laboratórios de ensino de redes de computadores. Está seção descreverá brevemente esse
trabalho, e discutirá seus resultados.
A figura 4.1 mostra a topologia de rede utilizada nesse trabalho, que inclui três
roteadores c2600, três máquinas virtuais com o sistema operacional Windows 7, cada uma com
1 GB de memória RAM e 10 GB de disco rígido, e uma máquina virtual Windows Server 2012.
Figura 4.1: Topologia de rede utilizada por Mohtasin et. al.
Fonte: (MOHTASIN, 2016)
Para essa rede, foi utilizado o protocolo de roteamento RIP, e para o servidor foram
definidos serviços como DNS e DHCP. Todos os serviços foram testados e funcionaram como
o esperado, mostrando que a simulação é capaz de representar fielmente vários aspectos de uma
rede de computadores real.
Para esse estudo, foi também configurada uma rede física com a mesma topologia
da simulada, e foram realizados dois testes em ambas as redes: ping através da rede, e a trans-
ferência de um arquivo de 14,2 MB por FTP. A figura 4.2 mostra os tempos obtidos para o teste
de ping, e a figura 4.3 mostra os tempos obtidos para a transferência do arquivo.
26
Figura 4.2: Tempo de ping na rede simulada, em azul, e na rede física, em vermelho
Fonte: (MOHTASIN, 2016)
Figura 4.3: Tempo da transferência de um arquivo de 14,2 MB na rede simulada, em azul, e na
rede física, em vermelho
Fonte: (MOHTASIN, 2016)
Como se pode ver pelas figuras anteriores, o desempenho da rede física é claramente
superior ao da rede simulada. Por outro lado, a rede simulada apresenta vantagens em quesi-
tos como custo, facilidade de setup, facilidade de acesso a recursos e quantidade de cenários
possíveis de serem estudados.
Devido à versatilidade do laboratório virtual e à sua facilidade de implementação,
os autores do trabalho concluem que, apesar do baixo desempenho, a simulação de redes é uma
ferramenta poderosa para o auxílio do ensino de redes de computadores, permitindo que os
estudantes tenham contato com uma grande variedade de topologias de rede com baixo custo.
27
Os autores, porém, destacam que o laboratório virtual não é um bom ambiente para se avaliar o
desempenho de dispositivos de rede ou verificar a latência em uma rede.
4.2 Análise da Usabilidade do GNS3
Na aplicação APACHE, operando na Máquina Virtual Servidor (10.1.0.25:3000),
foram utilizados dois arquivos HTML diferentes para envio para a máquina Cliente:
1. HTML File: 1.000 (um mil) caracteres aleatórias.
2. HTML File: 10.000 (dez mil) caracteres aleatórias.
3. HTML File: 100.000 (cem mil) caracteres aleatórias.
4.2.1 Teste do tempo de resposta
Para este teste, utilizou-se uma aplicação em ruby (Ruby-Doc, 2016) para automatizar
requisições e contabilizar o tempo. O código Ruby para essa aplicação é mostrado o código 4.1.
1 r e q u i r e ’ net / h t t p ’
2
3 puts " Teste 1"
4
5 100. times do
6 tempo0 = Time . now
7 Net : : HTTP . get ( ’ 1 0 . 1 . 0 . 2 5 : 3 0 0 0 ’ , ’ / 1 . html ’ )
8 tempo1 = Time . now
9 puts ( tempo1 − tempo0 ) . t o _ r
10 end
11
12 puts " Teste 2"
13
14 100. times do
15 tempo0 = Time . now
16 Net : : HTTP . get ( ’ 1 0 . 1 . 0 . 2 5 : 3 0 0 0 ’ , ’ / 2 . html ’ )
17 tempo1 = Time . now
18 puts ( tempo1 − tempo0 ) . t o _ r
19 end
20
21 puts " Teste 3"
22
23 100. times do
24 tempo0 = Time . now
25 Net : : HTTP . get ( ’ 1 0 . 1 . 0 . 2 5 : 3 0 0 0 ’ , ’ / 3 . html ’ )
28
26 tempo1 = Time . now
27 puts ( tempo1 − tempo0 ) . t o _ r
28 end
Código 4.1: Aplicação Ruby
Os resultados obtidos seguem nos histogramas abaixo. A figura 4.4 mostra o his-
tograma para 100 requisições do arquivo HTML de 1.000 bytes, a figura 4.5 para o arquivo de
10.000 bytes, e a figura 4.6 para o arquivo de 100.000 bytes. A tabela 4.1 mostra os tempos
mínimo, máximo e médio dessas requisições.
Figura 4.4: Histograma - 100 requisições HTTP - 1.000 bytes em função do tempo
Fonte: Elaborado pelo autor
29
Figura 4.5: Histograma - 100 requisições HTTP - 10.000 bytes em função do tempo
Fonte: Elaborado pelo autor
Figura 4.6: Histograma - 100 requisições HTTP - 100.000 bytes em função do tempo
Fonte: Elaborado pelo autor
Tabela 4.1: Tabela de tempo mínimo, média e máximo dos testes
Tamanho do Documento Menor tempo Tempo médio Maior tempo
1.000 Bytes 0,006 s 0,22 s 0,44 s
10.000 Bytes 0,005 s 2,27 s 4,48 s
100.000 Bytes 0,015 s 7,18 s 15,99 s
Fonte: Elaborado pelo autor
30
4.2.2 Teste de fidelidade do protocolo HTTP
Com a análise utilizando a aplicação Wireshark, pode-se observar que o protocolo
HTTP apresentou todas as características originais devido a fiel implementação do protocolo
nas máquinas virtuais. Os códigos 4.2 e 4.3 mostram a requisição enviada ao Servidor, e seu
datagrama de resposta ao Cliente. A tabela 4.2 mostra que o GNS3 apresentou suporte total ao
protocolo HTTP.
1 GET / 1 . html HTTP / 1 . 1
2 Host : 1 0 . 1 . 0 . 2 5 : 3 0 0 0
Código 4.2: Requisição enviada ao Servidor
1 HTTP / 1 . 1 200 OK
2 Date : Mon, 28 Nov 2016 12:03:34 GMT
3 Server : Apache / 1 . 3 . 2 7 ( Debian )
4 Last−Modified : Mon, 28 Nov 2016 09:11:55 GMT
5 Content−Length : 1000
6 Connection : c l o s e
7 Content−Type : t e x t / p l a i n
8 [1.000 c a r a c t e r e s a l e a t o r i a s ]
Código 4.3: Datagrama de resposta ao Cliente
Tabela 4.2: Métodos HTTP suportados na simulação
Método Suporte?
GET Sim
HEAD Sim
POST Sim
PUT Sim
DELETE Sim
TRACE Sim
OPTIONS Sim
CONNECT Sim
Fonte: Elaborado pelo autor
Além de todos os métodos testados, foi analisado que o protocolo também aceitou
Cookies e todos os tipos de MIME.
31
4.3 Características do GNS3
O GNS3 demonstrou fidelidade real na simulação do protocolo HTTP durante a
execução dos testes. Esta principal característica do software demonstra seu potencial para uma
qualidade de estudo aprofundado no protocolo HTTP utilizando o devido software, visto que
ele permite uma análise fiel na transição de dados da rede.
O principal fator que contribui para a fidelidade do protocolo HTTP na simulação
de redes do GNS3 é:
1. Protocolos de rede implementados pelo sistema operacional das máquinas virtuais utili-
zadas.
2. Protocolos de redirecionamento implementados pelo sistema padrão da Cisco nos rotea-
dores utilizados na simulação.
3. Simulação baseada em interfaces virtuais de rede para cada Máquina Virtual.
4. Protocolo HTTP implementado conforme a RFC (R. FIELDING, 2014) em ambos os lados
(Cliente e Servidor).
Como pontos negativos, tem-se a qualidade do hardware necessário para a simula-
ção e infidelidade no tempo de resposta.
Como mostra o teste do tempo de resposta, o tempo apresenta variações irregulares,
diferente de uma rede real. A mesma variação é observada na simulação apresentada no estudo
de caso analisado.
Um dos principais pontos analisados sobre a dificuldade da simulação com relação
ao hardware convém do alto consumo do processador e memória. Para a execução da pilha de
softwares para estudo do protocolo HTTP foi necessário utilizar suas máquinas virtuais (com
512MB de RAM), GNS3 e Wireshark. Todos os softwares, em conjunto, consumiram entre 3GB
a 4GB de memória RAM e 4 núcleos do processador por análise da ferramenta HTOP(HTOP,
1994).
A ferramenta apresenta-se muito efetiva para um estudo e análise aprofundada
no protocolo HTTP, porém torna-se ineficiente para a aplicação cotidiana deste objetivo,
recomendando-se aplicações superficiais para simulação de redes.
32
5 Conclusão
Neste trabalho foi apresentado um estudo do protocolo HTTP em uma rede simu-
lada por meio do software GNS3, com objetivo de verificar a aplicação de tal software em um
laboratório de estudo de redes de computadores.
Foi observado que, apesar de representar satisfatoriamente os aspectos de rede ne-
cessários à análise em questão, a alta demanda de memória do GNS3 e das máquinas virtuais
dos computadores na rede simulada torna inviável a simulação de uma topologia de rede com
um número grande de computadores. No caso analisado pelo grupo, foi possível a simulação
de somente dois roteadores e dois hosts, com a troca de mensagens HTTP sendo realizada de
um dos hosts ao outro.
Além do alto uso de memória, também foi observado que o tempo de comunicação
entre os computadores na rede simulada é consideravelmente maior que em uma rede física, o
que reforça a dificuldade do uso de simulações para redes com topologias grandes. Tal resultado
é reforçado pelo estudo de caso apresentado nesse trabalho, em que foi realizada uma análise
semelhante e foram obtidos resultados equivalentes.
Ademais desses pontos, também deve-se mencionar o tempo de configuração da
rede. Como o GNS3 simula todos os aspectos de rede, inclusive os sistemas dos roteadores,
configurar uma rede simulada no GNS3 pode ser tão trabalhoso quanto configurar uma rede
entre computadores físicos, de modo que a principal vantagem do GNS3 se dá quando não há
outros computadores disponíveis e a despreocupação com a camada física.
Com relação ao realismo da simulação, porém, o GNS3 se mostra bastante satisfa-
tório, representando com fidelidade todos os aspectos de rede observados. A exemplos dessa
fidelidade é o tamanho da janela de transmissão TCP aberta (a qual comporta-se como em uma
rede física), a fidelidade do protocolo HTTP e todos os demais protocolos de roteamento entre
todos os devidos roteadores.
A principal resposta para a Análise do GNS3 como ferramenta ao auxilio do estudo
do protocolo HTTP se dá conforme o nível requerido a qual deseja-se analisar a rede. Caso seja
de forma superficial e simplista, recomenda-se utilizar outros simuladores de redes de compu-
tadores para realizar a devida análise. Porém, se for desejada uma fidelidade real ao protocolo
33
HTTP e todo o backend necessário para isso (aplicações, protocolos bases, ferramenta comple-
mentar para a análise da rede, etc) é fortemente recomendado o uso do GNS3.
Bibliografia
9TUT. Configure Static Route on GNS3. 2014. Disponível em: <http://www.9tut.
com/configure-static-route-gns3-lab>.
AMYOT, D. System Analysis and Modeling: Models and Reusability. : Springer, 2014.
Cisco. Cisco IOS Software Download. 2008. Disponível em: <https://software.
cisco.com/download/navigator.html>. Acesso em: novembro de 2016.
Cisco. What is a Network Switch vs. a Router? n.d. Disponível em: <https:
//www.cisco.com/cisco/web/solutions/small_business/resource_
center/articles/connect_employees_and_offices/what_is_a_
network_switch/index.html>. Acesso em: novembro de 2016.
FOROUZAN, B. A. Redes de Computadores: Uma Abordagem Top-down. : AMGH, 2013.
Free CCNA Work Book. Cisco IP Address Configuration. 2012. Disponí-
vel em: <https://www.freeccnaworkbook.com/workbooks/ccna/
interface-ip-address-configuration>.
GNS3. GNS3 - Linux Install Guide. 2014. Disponível em: <https://www.gns3.com/
support/docs/linux-installation>. Acesso em: novembro de 2016.
GNS3 Labs Blog. Basic Commands. 2015. Disponível em: <http://commonerrors.
blogspot.com.br/2015/08/cisco-basic-commands-for-beginners.
html>. Acesso em: novembro de 2016.
How to Forge. Linux Basics - Static IP and Network Configuration on Debian. 2014.
Disponível em: <https://www.howtoforge.com/debian-static-ip-address>.
HTOP. HTOP Web Site. nov 1994. Disponível em: <https://hisham.hm/htop/>.
Acesso em: novembro de 2016.
KUROSE, J. F.; ROSS, K. W. Computer Networking: a Top - Down Approach. 6 ed. : Pearson
Education, 2013. ISBN 978-0-13-285620-1.
35
Launchpad. Traceroute Packeage and Source in Ubuntu. 2011. Disponível em: <https:
//launchpad.net/ubuntu/+source/traceroute>. Acesso em: novembro de
2016.
Linoxide. How to install Wireshark on Linux. 2013. Disponível em: <http://linoxide.
com/how-tos/howto-install-wireshark-on-linux/>. Acesso em: novembro
de 2016.
MOHTASIN, R. et al. Development of a virtualized networking lab using gns3 and vmware
workstation. In: IEEE WiSPNET. 2016. p. 603.
NELSON, T. Literary Machines. : Mindful Press, 1981.
Oracle. Virtual Box Linux Install. 2006. Disponível em: <https://www.virtualbox.
org/wiki/Linux_Downloads>. Acesso em: novembro de 2016.
Oracle. Virtual Box. 2016. Disponível em: <https://www.virtualbox.org/>.
Acesso em: novembro de 2016.
PAN, J. A Survey of Network Simulation Tools: Current Status and Future Developments.
2008. Disponível em: <http://www.cse.wustl.edu/~jain/cse567-08/ftp/
simtools/>. Acesso em: novembro de 2016.
R. FIELDING, E. RFC 7230. 2014. Disponível em: <https://tools.ietf.org/
html/rfc7230>. Acesso em: novembro de 2016.
Ruby-Doc. Net::HTTP Class. jul 2016. Disponível em: <https://ruby-doc.
org/stdlib-2.3.3/libdoc/net/http/rdoc/Net/HTTP.html>. Acesso em:
novembro de 2016.
SPI. Sobre o Debian. 2012. Disponível em: <https://www.debian.org/intro/
about>. Acesso em: novembro de 2016.

Mais conteúdo relacionado

Mais procurados

Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni
 
Livro programação shell linux 8 edição - julio cezar neves
Livro programação shell   linux 8 edição - julio cezar nevesLivro programação shell   linux 8 edição - julio cezar neves
Livro programação shell linux 8 edição - julio cezar nevesYouTube TV
 
Técnicas avançadas de utilização de GPU e CUDA
Técnicas avançadas de utilização de GPU e CUDATécnicas avançadas de utilização de GPU e CUDA
Técnicas avançadas de utilização de GPU e CUDAJose Ricardo da Silva Junior
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 

Mais procurados (8)

ARTIGO CLUSTER DE ALTA DISPONIBILIDADE EM SISTEMAS LINUX
ARTIGO CLUSTER DE ALTA DISPONIBILIDADE EM SISTEMAS LINUXARTIGO CLUSTER DE ALTA DISPONIBILIDADE EM SISTEMAS LINUX
ARTIGO CLUSTER DE ALTA DISPONIBILIDADE EM SISTEMAS LINUX
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
 
Google File System
Google File SystemGoogle File System
Google File System
 
Hardware memória principal
Hardware  memória  principalHardware  memória  principal
Hardware memória principal
 
Livro programação shell linux 8 edição - julio cezar neves
Livro programação shell   linux 8 edição - julio cezar nevesLivro programação shell   linux 8 edição - julio cezar neves
Livro programação shell linux 8 edição - julio cezar neves
 
Internet basico
Internet basicoInternet basico
Internet basico
 
Técnicas avançadas de utilização de GPU e CUDA
Técnicas avançadas de utilização de GPU e CUDATécnicas avançadas de utilização de GPU e CUDA
Técnicas avançadas de utilização de GPU e CUDA
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 

Semelhante a Analysis of the GNS3 as a teaching tool by simulated networks

Redes de computadores e internet.
Redes de computadores e internet.Redes de computadores e internet.
Redes de computadores e internet.valdarnini
 
Intro redes
Intro redesIntro redes
Intro redesTiago
 
Apostila redes computadores_lages
Apostila redes computadores_lagesApostila redes computadores_lages
Apostila redes computadores_lagesredesinforma
 
Soa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosSoa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosFernando Palma
 
Microsoft redes introdução
Microsoft redes   introduçãoMicrosoft redes   introdução
Microsoft redes introduçãoJoão Dias
 
4 formacao-de-suporte-tecnico-proinfo
4 formacao-de-suporte-tecnico-proinfo4 formacao-de-suporte-tecnico-proinfo
4 formacao-de-suporte-tecnico-proinfoElizabete Bahia
 
Noções de informática GranCursos.pdf
Noções de informática GranCursos.pdfNoções de informática GranCursos.pdf
Noções de informática GranCursos.pdfpericlyslamonier
 
Guia Foca - Linux - Avançado
Guia Foca - Linux - AvançadoGuia Foca - Linux - Avançado
Guia Foca - Linux - AvançadoEliel Prado
 
Foca avancado
Foca avancadoFoca avancado
Foca avancadoTiago
 
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013Kanda Kassobo
 
Investigação de Predição de Fluxos em Redes de Computadores
Investigação de Predição de Fluxos em Redes de ComputadoresInvestigação de Predição de Fluxos em Redes de Computadores
Investigação de Predição de Fluxos em Redes de ComputadoresOrlando Junior
 

Semelhante a Analysis of the GNS3 as a teaching tool by simulated networks (20)

Apostila redes e internet
Apostila redes e internetApostila redes e internet
Apostila redes e internet
 
Redes de computadores e internet.
Redes de computadores e internet.Redes de computadores e internet.
Redes de computadores e internet.
 
Apostila redes
Apostila redesApostila redes
Apostila redes
 
Apostila cantu
Apostila cantuApostila cantu
Apostila cantu
 
Intro redes
Intro redesIntro redes
Intro redes
 
Apostila redes computadores_lages
Apostila redes computadores_lagesApostila redes computadores_lages
Apostila redes computadores_lages
 
Soa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosSoa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviços
 
Internet em pdf
Internet em pdfInternet em pdf
Internet em pdf
 
Monografia ifes-everton-bada
Monografia ifes-everton-badaMonografia ifes-everton-bada
Monografia ifes-everton-bada
 
Artigo Redes Jonnes
Artigo Redes JonnesArtigo Redes Jonnes
Artigo Redes Jonnes
 
Artigo Redes Jonnes
Artigo Redes JonnesArtigo Redes Jonnes
Artigo Redes Jonnes
 
Microsoft redes introdução
Microsoft redes   introduçãoMicrosoft redes   introdução
Microsoft redes introdução
 
4 formacao-de-suporte-tecnico-proinfo
4 formacao-de-suporte-tecnico-proinfo4 formacao-de-suporte-tecnico-proinfo
4 formacao-de-suporte-tecnico-proinfo
 
Noções de informática GranCursos.pdf
Noções de informática GranCursos.pdfNoções de informática GranCursos.pdf
Noções de informática GranCursos.pdf
 
Guia Foca - Linux - Avançado
Guia Foca - Linux - AvançadoGuia Foca - Linux - Avançado
Guia Foca - Linux - Avançado
 
Foca linux3
Foca linux3Foca linux3
Foca linux3
 
Foca avancado
Foca avancadoFoca avancado
Foca avancado
 
redes
redesredes
redes
 
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
 
Investigação de Predição de Fluxos em Redes de Computadores
Investigação de Predição de Fluxos em Redes de ComputadoresInvestigação de Predição de Fluxos em Redes de Computadores
Investigação de Predição de Fluxos em Redes de Computadores
 

Analysis of the GNS3 as a teaching tool by simulated networks

  • 1. ANÁLISE DO GNS3 COMO FERRAMENTA AUXILIAR AO ENSINO DO PROTOCOLO HTTP POR MEIO DA COMUNICAÇÃO ENTRE REDES SIMULADAS Christopher Renkavieski Lucas Machado Gutierrez Marlon Henry Schweigert Joinville 2016
  • 2. Christopher Renkavieski Lucas Machado Gutierrez Marlon Henry Schweigert ANÁLISE DO GNS3 COMO FERRAMENTA AUXILIAR AO ENSINO DO PROTOCOLO HTTP POR MEIO DA COMUNICAÇÃO ENTRE REDES SIMULADAS Relatório do Projeto de Conclusão da matéria de Re- des de Computadores apresentado ao Curso de Gra- duação em Ciência da Computação, da Universidade do Estado de Santa Catarina (UDESC), como requi- sito parcial da disciplina de Redes de Computadores (REC). Orientador: Profo Charles Christian Miers Joinville 2016
  • 3. Christopher Renkavieski Lucas Machado Gutierrez Marlon Henry Schweigert ANÁLISE DO GNS3 COMO FERRAMENTA AUXILIAR AO ENSINO DO PROTOCOLO HTTP POR MEIO DA COMUNICAÇÃO ENTRE REDES SIMULADAS Projeto para Rede de Computadores
  • 4. Conteúdo Lista de Abreviaturas 5 1 Introdução 6 2 Conceitos 7 2.1 Redes de Computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Roteadores e switches . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.2 Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.3 Redes de computadores simuladas . . . . . . . . . . . . . . . . . . . . 8 2.1.4 HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.5 GNS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.6 Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.7 Virtualbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 Configuração da Análise 14 3.1 Setup Inicial em Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2 Configuração do Virtual Box . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3 GNS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.1 Configuração da Topologia . . . . . . . . . . . . . . . . . . . . . . . . 18 3.3.2 Configuração do Roteador Cisco C1700 . . . . . . . . . . . . . . . . . 19 3.4 Integração externa entre GNS3 e VirtualBox . . . . . . . . . . . . . . . . . . . 22 3.4.1 Configuração dos IP’s nas Máquinas Virtuais . . . . . . . . . . . . . . 22 3.4.2 Configuração das Aplicações no Servidor . . . . . . . . . . . . . . . . 23 3.5 Confirmação da Configuração . . . . . . . . . . . . . . . . . . . . . . . . . . 24
  • 5. 3.5.1 Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.5.2 Resultado do Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . 24 4 Análise 25 4.1 Estudo de caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2 Análise da Usabilidade do GNS3 . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2.1 Teste do tempo de resposta . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2.2 Teste de fidelidade do protocolo HTTP . . . . . . . . . . . . . . . . . 30 4.3 Características do GNS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5 Conclusão 32 Bibliografia 34
  • 6. Lista de Figuras 3.1 Seleção da IOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 Lista de roteadores configurados . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.4 Configuração de WICs do Roteador C1700 . . . . . . . . . . . . . . . . . . . 17 3.3 Lista de hosts configurados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.5 Topologia utilizada para a Análise . . . . . . . . . . . . . . . . . . . . . . . . 19 3.6 Visão do Console do roteador Cisco C1700 no GNS3 . . . . . . . . . . . . . . 20 3.7 Arquivo de configuração de redes no Debian . . . . . . . . . . . . . . . . . . . 23 4.1 Topologia de rede utilizada por Mohtasin et. al. . . . . . . . . . . . . . . . . . 25 4.2 Tempo de ping na rede simulada, em azul, e na rede física, em vermelho . . . . 26 4.3 Tempo da transferência de um arquivo de 14,2 MB na rede simulada, em azul, e na rede física, em vermelho . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.4 Histograma - 100 requisições HTTP - 1.000 bytes em função do tempo . . . . . 28 4.5 Histograma - 100 requisições HTTP - 10.000 bytes em função do tempo . . . . 29 4.6 Histograma - 100 requisições HTTP - 100.000 bytes em função do tempo . . . 29
  • 7. Lista de Tabelas 3.1 Tabela de Configurações das Máquinas Virtuais . . . . . . . . . . . . . . . . . 15 3.2 Slots de interfaces do Roteador C1700 . . . . . . . . . . . . . . . . . . . . . . 16 3.3 Tabela de interfaces no roteador R1 . . . . . . . . . . . . . . . . . . . . . . . 21 3.4 Tabela de roteamento, roteador R1 . . . . . . . . . . . . . . . . . . . . . . . . 21 3.5 Configuração de IPs das Máquinas Virtuais . . . . . . . . . . . . . . . . . . . 23 4.1 Tabela de tempo mínimo, média e máximo dos testes . . . . . . . . . . . . . . 29 4.2 Métodos HTTP suportados na simulação . . . . . . . . . . . . . . . . . . . . . 30
  • 8. 5 Lista de Abreviaturas GNS3 Graphical Network Simulator 3 HDD Hard Disk Drive HTTP Hypertext Transfer Protocol HTTPS Hypertext Transfer Protocol Secure IOS Internetwork Operating System IP Internet Protocol MIME Multipurpose Internet Mail Extensions RAM Random Access Memory SSL Secure Socket Layer TCP Transmission Control Protocol VM Virtual Machine VRAM Video Random Access Memory WIC WAN Interface Card WWW World Wide Web
  • 9. 6 1 Introdução Do momento de sua invenção até hoje, a Internet foi responsável por mudanças radicais e profundas na sociedade, permitindo comunicação e acesso a informação a taxas nunca antes experimentadas (KUROSE; ROSS, 2013). A definição mais básica de internet é uma rede de redes. Já a Internet, com “I” maiúsculo, é uma rede de redes específica, que hoje conecta computadores, dispositivos móveis e outros por todo o planeta, tendo como base os protocolos de transmissão TCP/IP, e sobre a qual está edificada a World Wide Web (WWW). A construção de uma rede, entretanto, não é uma tarefa trivial, envolvendo não só computadores, mas também outros dispositivos como roteadores, switchs e cabos, por exemplo. A construção de uma topologia de rede envolve custos relativamente altos e necessita de plane- jamento prévio. No meio acadêmico, utilizar redes reais para o estudo de protocolos pode ter limitações tanto físicas quanto financeiras, tornando a tarefa muitas vezes inviável. A simulação de redes tem como objetivo principal viabilizar o estudo e análise de redes de computadores de maneira facilitada, segura e controlada, diminuindo custo e tempo de preparação de laboratório. O GNS3 é hoje uma das ferramentas de simulação mais usadas no mundo, pro- porcionando uma experiência de simulação bem próxima da realidade através da construção de topologias ligando máquinas reais e virtuais a redes simuladas ou reais, ou até mesmo a Internet. Este trabalho tem como objetivo analisar a aplicabilidade da ferramenta GNS3 no estudo do protocolo HTTP transmitido entre máquinas virtuais para fim do estudo de redes de computadores. Será usado máquinas virtuais e uma máquina real, ligados a uma mesma rede, para a realização da troca de pacotes na simulação. Os pacotes, então, serão capturados e analisados. O trabalho está dividido em 3 capítulos, além da introdução e da conclusão. O capítulo 2 trata de conceituar os pontos relevantes referentes à redes de computadores e as ferramentas usadas na simulação. No capítulo 3, aborda-se a configuração de cada ferramenta a fim de construir a simulação desejada. Por fim, o capítulo 4 descreve os resultados da simulação e analisa as vantagens e desvantagens do uso do GNS3 para o estudo do protocolo HTTP.
  • 10. 7 2 Conceitos 2.1 Redes de Computadores Uma rede de computadores é, em sua definição mais simples, um conjunto de com- putadores que trocam informações entre si. Para que essa troca de informações seja possível, são necessárias ao menos duas coisas: protocolos de comunicação e um mensageiro. Um protocolo de comunicação é uma regra – ou um conjunto de regras – para que ambas as partes envolvidas em uma troca de mensagens possam entender uma à outra. Um exemplo de protocolo de comunicação é um idioma: em geral, duas pessoas somente se enten- dem se estiverem falando a mesma língua. Em redes de computadores tem-se, por exemplo, o conjunto de protocolos TCP/IP, que permite a comunicação entre diferentes computadores em uma rede. Já o mensageiro é o responsável por levar a mensagem de uma parte à outra. Pode ser um carteiro para levar cartas, ondas mecânicas para transmitir som, ou um roteador para trocar pacotes de dados entre computadores (KUROSE; ROSS, 2013). As aplicações para redes de computadores são inúmeras. Em uma empresa, uma rede pode ser utilizada para que múltiplos empregados possam trabalhar num mesmo projeto simultaneamente, ou permitir a troca de mensagens entre diferentes pontos da empresa rapida- mente. Um conjunto de computadores também pode compartilhar recursos para a execução de tarefas computacionalmente custosas, formando o que é conhecido como um cluster. Uma rede de computadores também pode ser utilizada para a transmissão de notícias, comunicação de voz e vídeo, armazenamento de informações, entre muitos outros. Porém, possivelmente a aplicação mais popular e revolucionária para redes de com- putadores é a Internet. Uma internet é uma rede de redes de computadores. Já a Internet, com “I” maiúsculo, é uma rede de redes específica, que comunica computadores e outros dispositivos por todo o planeta, e sobre a qual está edificada a World Wide Web. Redes de computadores estão estabelecidas sobre uma série de convenções, proto- colos e dispositivos físicos que, se fossem todos definidos, forneceriam material suficiente para
  • 11. 8 um livro. No contexto deste trabalho, será importante definir os conceitos de roteador, switch e host. 2.1.1 Roteadores e switches Na analogia mencionada, um switch é como o mensageiro na comunicação entre computadores. Ele se conecta aos computadores de uma rede, e nele estão configurados os protocolos que permitem a comunicação entre esses computadores. Já um roteador exerce o mesmo papel de um switch, porém, em vez de realizar a comunicação entre computadores, ele permite a comunicação entre outros switches. Na prática, isso faz com que um roteador intermedeie a comunicação entre diferentes redes de computado- res, permitindo a existência de redes de redes, incluindo a Internet (Cisco, n.d.) . 2.1.2 Hosts Todo dispositivo conectado a uma rede de computadores é chamado de host, seja esse dispositivo um computador propriamente dito, um smartphone, uma web cam, um dis- positivo de segurança - como uma câmera noturna - ou o que for necessário ao usuário da rede(KUROSE; ROSS, 2013). O termo host, do inglês, significa anfitrião, e os dispositivos conectados a uma rede de computadores são chamados assim, já que os mesmos hospedam aplicações que utilizará a devida rede conectada. Nem todos os hosts conectados a uma rede têm a mesma importância. É comum dividir os hosts entre clientes e servidores, sendo que os servidores executam serviços impor- tantes para a rede, enquanto clientes apenas acessam esses serviços. Um exemplo dessa relação é um banco de dados, que é hospedado em um servidor central, e pode ser acessado de quantos clientes foram necessários. 2.1.3 Redes de computadores simuladas Simulações auxiliadas por computador são hoje parte fundamental do desenvolvi- mento científico, permitindo estudar de forma controlada e aproximada inúmeros fenômenos de inúmeras áreas do conhecimento.
  • 12. 9 Para redes de computadores não é diferente. A simulação de tais redes fornece um ambiente controlado em que podem ser estudados diferentes protocolos de comunicação, seja para avaliar sua eficiência ou mesmo para testar novos protocolos e compará-los com os já estabelecidos. Há várias aplicações de software, tanto livres quanto comerciais, que permitem si- mular a comunicação entre computadores. Entre os comerciais, podem ser citados OPNET e QualNet, enquanto entre os livres, podem-se destacar NS2, NS3, J-Sim e GNS3. O simulador utilizado na análise deste trabalho será o GNS3, que alia ferramentas de simulação com uma interface gráfica que facilita o uso (PAN, 2008). Havendo uma variedade de simuladores de rede disponível, um dos critérios para se definir qual será utilizado em uma dada aplicação é que aspectos de rede o simulador suporta. Alguns aspectos de rede mínimos que um simulador deve suportar são: permitir a representação de diferentes topologias e cenários de rede, especificar os nós, seus links e o tráfego entre os nós da rede, além de permitir a análise desse tráfego. Já um simulador mais elaborado deve permitir a especificação dos protocolos de transmissão e fornecer uma interface gráfica para a visualização da simulação (PAN, 2008). Tais simulações, porém, não são perfeitas, e frequentemente são limitadas pelo hardware do computador que as está executando. Em especial em simuladores como o GNS3, em que os computadores da rede são máquinas virtuais rodando sobre o mesmo hardware, o alto consumo de memória pelo simulador torna inviável a simulação de redes grandes. 2.1.4 HTTP O HTTP, sigla para Hypertext Transfer Protocol (Protocolo de Transferência de Hipertexto), é um protocolo desenvolvido para realizar a transferência de hipertexto em uma rede e é a base da WWW. O conceito de hipertexto surgiu em 1965, antes do surgimento da Internet, por The- odor Holm Nelson, filósofo e sociólogo nascido nos Estados Unidos e conhecido por ser um dos pioneiros da Tecnologia da Informação. Segundo Nelson (NELSON, 1981), a escrita e a leitura não devem ser necessariamente sequenciais. Hipertextos, na sua visão, são um conjunto de nós que representam documentos de texto e se conectam entre si através de hyperlinks (hi- perligações) formando uma rede. O conceito foi aplicado por Tim Berners-Lee em 1989 na
  • 13. 10 idealização e desenvolvimento da WWW. O protocolo fornece o acesso do usuário a esse con- junto de hipertextos na forma conhecida como páginas da Web, com o auxílio de Navegador Web. Como hoje uma página da Web pode conter textos, vídeos, imagens e sons, “o termo hi- pertexto, cunhado para designar documentos de texto vinculados, foi alterado para hipermídia” (FOROUZAN, 2013). Esse protocolo atua na camada de aplicação, quinta camada do Conjunto de Proto- colos TCP/IP e a sétima camada do Modelo OSI (Interconexão de Sistemas Abertos), na qual é responsável pelo provimento de serviços ao usuário. O HTTP está sob o paradigma Cliente/- Servidor e é um protocolo de requisição/resposta que atua na troca de mensagens de maneira confiável. O “cliente” solicita uma conexão com o “servidor” para mandar requisições HTTP. O “servidor”, por sua vez, aceita conexões para responder requisições HTTP. Uma mesma má- quina pode atuar tanto como “cliente” quanto como “servidor”, apenas depende da conexão na qual se encontra (R. FIELDING, 2014). O Protocolo de Transferência de Hipertexto se comunica com a camada de trans- porte através do Transmission Control Protocol (TCP). O TCP é um protocolo orientado à conexão, ou seja, para efetuar uma requisição deve-se estabelecer uma conexão entre o cliente e o servidor antes da transação, e após essa ser concluída, a conexão deve ser encerrada, provendo assim confiabilidade no envio e recebimento dos dados. O protocolo ainda provê verificação de erros e entrega na sequência correta dos pacotes. O HTTP apenas usufrui das características do TCP, sem precisar se preocupar com as trocas de dados. Consequentemente, é visível ao HTTP apenas uma conexão lógica confiável entre Cliente/Servidor. O protocolo é usado desde o surgimento da WWW comercial, em 1990. Sua pri- meira versão foi o HTTP/0.9. Foi seguida pelo HTTP/1.0 e, em 1999, definiu-se o HTTP/1.1, atual versão do HTTP. Segundo Forouzan e Mosharraf (2013, p. 58), o protocolo não oferece nenhuma segurança, porém ele pode ser executado sobre a Camada de Sockets Segura (SSL), conhecido como HTTPS -Hypertext Transfer Protocol Secure-, que assegura aspectos de segurança como confidencialidade, autenticação e integridade dos dados. Todas as mensagens HTTP/1.1 consistem de uma linha inicial seguida de uma sequência de octetos (R. FIELDING, 2014). Mensagens enviadas do cliente, a linha inicial é a linha de requisição, enquanto que do servidor é a linha de resposta. Na requisição, é enviado o método na qual representa a solicitação, a URL e a versão
  • 14. 11 do HTTP. A resposta é dada pela versão do HTTP, um código de 3 dígitos, que representa uma resposta a solicitação do cliente, e uma frase descritiva do código, tais que: (R. FIELDING, 2014) • 1xx: Requisição recebida, continuando processo. • 2xx: Requisição recebida, entendida e aceita. • 3xx: Precisa-se de mais informações. • 4xx: Erro por parte do cliente. • 5xx: Erro por parte servidor. Após a primeira linha, segue-se zero ou mais cabeçalhos que contém informações baseados na requisição, e podem conter dados sobre documentos e imagens envolvidos na tran- sação, por exemplo. Segue-se então uma linha em branco e, finalmente, o corpo da mensagem. Sua existência não é obrigatória e representa o documento ao qual foi solicitado. Em uma simulação, é possível analisar todos os atributos de uma mensagem HTTP/1.1, tais como método utilizado, tempo de resposta, corpo da mensagem, etc. O soft- ware Wireshark, descrito em 1.1.6, será usado neste trabalho com o propósito de capturar cada pacote HTTP trocado na simulação a fim de analisá-los. 2.1.5 GNS3 Em 2005, foi lançado o Dynamips, desenvolvido por Christophe Fillot, um soft- ware multiplataforma que emula roteadores Cisco. Em sua primeira versão, o software oferecia poucas opções e executava em linhas de comando. O projeto parou na versão 0.2.8-RC, porém foi criado, em 2007, um adicional ao Dynamips chamado GNS3, que oferecia uma interface gráfica ao software. Desde então o projeto GNS3 vem adicionando novas funcionalidades a cada versão lançada. O GNS3 é capaz de emular diversos equipamentos de rede, como roteadores, swit- chs, computadores e firewalls, e suporta o Cisco IOS1 usando o Dynamips e é capaz de emular redes de computadores combinando máquinas reais e virtuais juntas, sem precisar de equipa- mentos de hardware (AMYOT, 2014). Isso torna o GNS3 uma ferramenta poderosa para que 1 Software de rede utilizado nos roteadores Cisco
  • 15. 12 profissionais de redes possam criar cenários de teste próximos da realidade sem ter que se pre- ocupar com aquisição de hardware durante os testes. O GNS3 ainda é capaz de interagir com o Wireshark e o Virtualbox, ampliando as possibilidades de simulação. No meio acadêmico, existem limitações para o desenvolvimento de atividades prá- ticas na área de redes, tais como financeiras e alocação de espaços para laboratórios de rede, ou até aspectos de segurança quanto ao manuseio e configuração dos equipamentos. O GNS3, aliado com as ferramentas apresentadas neste trabalho, podem proporcionar uma maneira de realizar atividades práticas seguras e sem muitas exigências de hardware. O GNS3 é compatível com Windows, MacOS e qualquer distribuição GNU/Linux. Os requisitos de hardware recomendados para o uso do GNS3 incluem 8 gigabytes de memória RAM, 35 gigabytes de espaço de disco disponível e processador com 4 ou mais núcleos lógicos. Neste trabalho será usado o GNS3 versão 1.5.2. (GNS3, 2014) 2.1.6 Wireshark O Wireshark é um software utilizado para análise de protocolos de rede, disponível para múltiplas plataformas, incluindo Windows, Linux, MacOS, Solaris, FreeBSD, NetBSD e outras, é distribuído sob a licença GNU General Public License (GPL) v2.02 . Vindo originalmente de um projeto iniciado em 1998 por Gerald Combs, hoje é um dos softwares mais populares em sua categoria, sendo mantido pela Wireshark Foundation. O Wireshark é capaz de capturar todo o tráfego de rede do dispositivo no qual está instalado. Permite, ainda, configurar o processo para capturar apenas pacotes desejados ou realizar capturas em determinados períodos de tempo. O HTTP é visto pelo software, e nele é possível analisar todas as informações referentes ao protocolo, como o cabeçalho, informações de origem e destino e o corpo da mensagem. Existe, também, a opção de analisar, a partir de um referencial de tempo, o momento que cada protocolo é analisado, gerando informações como o tempo de resposta, por exemplo. No contexto deste trabalho, o Wireshark será utilizado para analisar o protocolo HTTP entre máquinas virtuais conectadas por meio do software GNS3. 2 um software que está sob a licença GPL v2.0 deve possibilitar acesso de seus códigos-fonte a terceiros. Esses códigos podem ser alterados e distribuídos livremente, e utilizados em outros programas livres com apenas uma restrição: toda e qualquer redistribuição deve ser feita sob a mesma licença. O software que está sob essa licença pode ser gratuito ou pago.
  • 16. 13 2.1.7 Virtualbox O VirtualBox é um software de virtualização multiplataforma desenvolvido pela empresa alemã Innotek em 2007 sob a licença GNU General Public License (GPL) v2.0. Em 2008, a empresa estadunidense Sun Microsystems adquiriu a Innotek e consequentemente o software. A Sun Microsystems foi, então, comprada em 2009 pela Oracle, juntamente com todos os seus softwares. O VirtualBox é hoje mantido pela Oracle. A empresa oferece tanto uma versão base gratuita sob licença GPL v2.0, quanto uma versão estendida paga sob a licença Personal Use and Evaluation Licence (PUEL). Neste trabalho será usado o VirtualBox versão 5.1.8 gratuita. O software pode ser instalado nos sistemas operacionais Windows, GNU/Linux, MacOS e Solaris e possibilita a criação de uma ou mais máquinas virtuais, propiciando a opor- tunidade de instalação de sistemas operacionais quaisquer nessas máquinas, compartilhando de um mesmo hardware físico. A máquina virtual é vista com uma máquina independente, tanto nos aspectos de software, quanto pela rede local. A criação de um sistema operacional em uma máquina virtual possibilita o uso de mais de um sistema diferente ao mesmo tempo, sem necessitar de um hardware adicional. Neste trabalho, serão criadas duas máquinas virtuais, cada uma com um sistema operacional instalado. Com isso, pode-se usar apenas um computador para criar uma rede si- mulada entre dois computadores virtuais. Para usar mais de um sistema operacional virtualizado em uma máquina, necessita-se uma máquina real com requisitos de hardware altos para a rea- lização. Recomenda-se que, para a simulação proposta, os requisitos de hardware sejam de no mínimo os requisitos propostos no tópico 2.1.5. (Oracle, 2016).
  • 17. 14 3 Configuração da Análise 3.1 Setup Inicial em Debian Utilizou-se o Debian 64 bits como sistema operacional para as máquinas virtuais usadas na simulação. Segundo o próprio autor (SPI, 2012), o sistema proporciona um bom funcionamento com pacotes básicos do sistema. Além disso, o Debian permite um setup padrão rápido para o trabalho com um script bash, podendo ser reproduzido em outras máquinas de forma prática. Inicialmente precisou-se instalar nessas máquinas virtuais as aplicações de software Virtual Box (Oracle, 2006), GNS3 (GNS3, 2014) e Wireshark (Linoxide, 2013), para que se possam realizar os devidos testes. O Código 3.1 mostra como procedeu as instalações. 1 2 # Adicao de R e p o s i t o r i o s e Arquivos 3 sudo add−apt−r e p o s i t o r y ppa : gns3 / ppa 4 5 deb h t t p : / / download . v i r t u a l b o x . org / v i r t u a l b o x / debian x e n i a l c o n t r i b 6 sudo apt−key add oracle_vbox_2016 . asc 7 sudo apt−key add oracle_vbox . asc 8 wget −q h t t p s : / /www. v i r t u a l b o x . org / download / oracle_vbox_2016 . asc −O− | sudo apt−key add − 9 wget −q h t t p s : / /www. v i r t u a l b o x . org / download / oracle_vbox . asc −O− | sudo apt−key add − 10 11 # A t u a l i z a c a o 12 sudo apt−get update 13 14 # I n s t a l a c a o do V i r t u a l Box 15 sudo apt−get i n s t a l l v i r t u a l b o x −5.1 16 17 # I n s t a l a c a o do Wireshark 18 sudo apt−get i n s t a l l wireshark 19 20 # I n s t a l a c a o do GNS3 21 sudo apt−get update 22 sudo apt−get i n s t a l l gns3−gui Código 3.1: Instalação dos Softwares Com estes comandos, o sistema Debian está pronto para que se possam iniciar as devidas configurações para a análise. Vale ressaltar que é possível realizar os mesmos testes em
  • 18. 15 outros sistemas operacionais (outras distribuições linux, Windows e Mac), sendo a escolha do Debian somente por comodidade e conhecimento de todos os integrantes do projeto. 3.2 Configuração do Virtual Box Inicialmente foram criadas duas máquinas virtuais mencionadas anteriormente, am- bas com sistema Debian 64bits. As configurações utilizadas para os seus hardwares simulados são mostradas na tabela 3.1. Tabela 3.1: Tabela de Configurações das Máquinas Virtuais Características Servidor Cliente HDD 8GB 8GB RAM 1024MB 512MB VRAM 16MB 128MB ADAPTADOR DE REDE PRO/1000 MT Server (GNS3) PRO/1000 MT Desktop (GNS3) Fonte: Elaborada pelo autor 3.3 GNS3 Para este projeto, foi utilizado um servidor local do GNS3. Para simular os rote- adores, o GNS3 usa imagens do sistema operacional de roteadores reais, o que garante uma simulação mais fiel às redes de computadores físicas. Os roteadores utilizados nesse projeto usam IOS (Internetwork Operating System) da CISCO para esse propósito (Cisco, 2008). Para se adicionar uma imagem de IOS no GNS3, é necessário ir à aba Preferências -> IOS Routing, e selecionar a devida imagem do sistema que se deseja carregar. A figura 3.1 mostra uma captura de tela dessa seleção da imagem do sistema do roteador. O Roteador utilizado neste setup para a análise será o C1700, que já possui en- trada para duas interfaces, que é o básico necessário para conectar as duas máquinas virtuais já configuradas no Virtual Box. Outra configuração necessária é a adição dos hosts do Virtual Box. Para isso, deve- se abrir a aba de Hosts, e selecionar "New Appliance Template", selecionando em seguida "Add a VirtualBox Virtual Machine", e selecionando as duas máquinas (Cliente e Servidor).
  • 19. 16 Figura 3.1: Seleção da IOS Fonte: Elaborada pelo autor Após estes dois passos, tanto o roteador Cisco C1700 quando as máquinas Cliente e Servidor já estão disponíveis na lista de Templates. A figura 3.2 mostra a lista de roteadores configurados no GNS3 e disponíveis para adicionar à rede, enquanto a figura 3.3 mostra a lista de hosts configurados e disponíveis para esse mesmo propósito. O roteador C1700 vem com duas interfaces WIC (WAN Interface Card) disponíveis. As WICs utilizadas são mostradas na tabela 3.2, e a figura 3.4 mostra uma captura de tela da configuração dessas WICs. Tabela 3.2: Slots de interfaces do Roteador C1700 WIC0 WIC-1ENET WIC1 WIC-1ENET Fonte: Elaborada pelo autor
  • 20. 17 Figura 3.2: Lista de roteadores configurados Fonte: Elaborada pelo autor Figura 3.4: Configuração de WICs do Roteador C1700 Fonte: Elaborada pelo autor
  • 21. 18 Figura 3.3: Lista de hosts configurados Fonte: Elaborada pelo autor A interface WIC-1ENET fornecerá uma entrada Ethernet. Serão utilizadas duas interfaces diferentes para obrigar o roteamento entre interfaces distintas. 3.3.1 Configuração da Topologia A rede contará com um Roteador (C1700), dois switches e as duas máquinas virtu- ais. Tal topologia de rede é mostrada na figura 3.5, onde R1 representa o roteador, SW1 e SW2 são os switches, e Cliente e Servidor são os computadores conectados.
  • 22. 19 Figura 3.5: Topologia utilizada para a Análise Fonte: Elaborada pelo autor Será utilizada esta topologia simples devido às limitações de hardware na realiza- ção deste trabalho, insuficiente para simular redes maiores, devido ao alto uso de memória do simulador, como será discutido adiante no texto. 3.3.2 Configuração do Roteador Cisco C1700 Com o roteador R1 - Cisco C1700 - iniciado, pode-se abrir o seu console para aplicar as devidas configurações desejadas(GNS3 Labs Blog, 2015) (Free CCNA Work Book, 2012). Tais configurações são as seguintes: • Uma única Rede 10.0.0.0/8 com duas subredes. • Interface Ethernet0: 10.0.0.1 (Rede 10.0.0.0/16) • Interface Ethernet1: 10.1.0.1 (Rede 10.1.0.0/16) A figura 3.6 mostra uma captura de tela do terminal de configuração dos roteadores. Os códigos 3.2 e 3.3 mostram todos os comandos utilizados para tais configurações, e a tabela 3.3 mostra as interfaces de rede do roteador R1.
  • 23. 20 Figura 3.6: Visão do Console do roteador Cisco C1700 no GNS3 Fonte: Elaborada pelo autor 1 2 R1# c o n f i g u r e t e r m i n a l 3 Enter c o n f i g u r a t i o n commands , one per l i n e . End with CNTL/ Z . 4 5 R1( config ) # i n t e r f a c e Ethernet0 6 R1( config−i f ) # ip address 1 0 . 0 . 0 . 1 2 5 5 . 2 5 5 . 0 . 0 7 R1( config−i f ) #no shutdown 8 R1( config−i f ) #^Z 9 R1#show run i n t e r f a c e Ethernet0 10 11 Building c o n f i g u r a t i o n . . . 12 13 Current c o n f i g u r a t i o n : 73 bytes 14 ! 15 i n t e r f a c e E t h e r n e t 0 16 ip add ress 1 0 . 0 . 0 . 1 2 5 5 . 2 5 5 . 0 . 0 17 half −duplex 18 end Código 3.2: Configuração do Roteador 1 R1# c o n f i g u r e t e r m i n a l 2 Enter c o n f i g u r a t i o n commands , one per l i n e . End with CNTL/ Z . 3 4 R1( config ) # i n t e r f a c e Ethernet1 5 R1( config−i f ) # ip address 1 0 . 1 . 0 . 1 2 5 5 . 2 5 5 . 0 . 0 6 R1( config−i f ) #no shutdown 7 R1( config−i f ) #^Z
  • 24. 21 8 R1#show run i n t e r f a c e Ethernet0 9 10 Building c o n f i g u r a t i o n . . . 11 12 Current c o n f i g u r a t i o n : 73 bytes 13 ! 14 i n t e r f a c e E t h e r n e t 0 15 ip add ress 1 0 . 1 . 0 . 1 2 5 5 . 2 5 5 . 0 . 0 16 half −duplex 17 end Código 3.3: Configuração do Roteador Tabela 3.3: Tabela de interfaces no roteador R1 Interface IP Mask Ethernet1 10.1.0.0 /16 255.255.0.0 Ethernet0 10.0.0.1 /16 255.255.0.0 Fonte: Elaborada pelo autor Como as duas redes estão ligadas diretamente ao roteador, não será necessário con- figurar a tabela de roteamento do roteador R1. Tal tabela de roteamento é mostrada na tabela 3.4, e ela pode ser acessada através dos comandos mostrados no código 3.4 (9TUT, 2014). 1 R1#show ip route 2 3 Codes : C− connected , S − s t a t i c , R − RIP , M − mobile , B − BGP 4 D − EIGRP , EX − EIGRP e x t e r n a l , 0 − OSPF , IA − OSPF i n t e r area 5 N1 − OSPF e x t e r n a l type 1 , N2 − OSPF NSSA e x t e r n a l type 2 6 E1 − OSPF e x t e r n a l type 1 , E2 − OSPF e x t e r n a l type 2 7 i − IS−IS , su − IS−IS summary , L1 − IS−IS l e v e l −1, L2 − IS−IS l e v e l −2 8 i a − IS−IS i n t e r area , ∗ − c a n d i d a t e d e f a u l t , U − per−user s t a t i c r o u t e 9 o − ODR, P − p e r i o d i c downloades s t a t i c r o u t e 10 11 Gateway of l a s t r e s o r t i s not s e t 12 1 0 . 0 . 0 . 0 / 1 6 i s subnetted , 2 subnets : 13 C 1 0 . 0 . 0 . 0 i s d i r e c t l y connected , E t h e r n e t 0 14 C 1 0 . 1 . 0 . 0 i s d i r e c t l y connected , E t h e r n e t 1 Código 3.4: Tabela de Roteamento Tabela 3.4: Tabela de roteamento, roteador R1 Tipo IP Máscara Próximo Passo C 10.1.0.0 255.255.0.0 Ethernet1 C 10.0.0.0 255.255.0.0 Ethernet0 Fonte: Elaborada pelo autor
  • 25. 22 3.4 Integração externa entre GNS3 e VirtualBox Para configurar os IPs (How to Forge, 2014) das máquinas virtuais, será necessário acesso ao root e alteração dos devidos arquivos. Alguns arquivos básicos de redes utilizados pelo Debian são: • /etc/network/interfaces: Contém as configurações básicas das interfaces de rede. Pode- se configurar tanto IP quanto Máscara da rede de forma estática ou por algum servidor DHCP. • /etc/resolv.conf: Contém as configurações básicas de resolução. Pode-se configurar o servidor DNS. • /etc/hosts: É o arquivo primário da resolução de nomes. Pode-se configurar IPs padrões para solucionar nomes. No teste realizado, será utilizado para acesso ao Servidor. Após qualquer alteração é necessário reiniciar a interface de rede para realizar a releitura dos arquivos para a memória. Tal operação é representada pelo código 3.5. 1 s e r v i c e networking r e s t a r t 2 3 # no Debian 7 4 # / e t c / i n i t . d / networking r e s t a r t 5 6 # para v e r i f i c a r as c o n f i g u r a c o e s da rede 7 i f c o n f i g Código 3.5: Reiniciar a Interface de Rede 3.4.1 Configuração dos IP’s nas Máquinas Virtuais Para alterar o IP, realizou-se a operação de backup das configurações anteriores, mostrado no código 3.6. Após isso, alterou-se o arquivo /etc/network/interfaces original com a seguinte configuração, como mostra no código 3.7. 1 mv / e t c / network / i n t e r f a c e s / e t c / network / i n t e r f a c e s . bak Código 3.6: Backup 1 auto lo 2 i f a c e lo i n e t loopback 3
  • 26. 23 4 i f a c e eth0 i n e t s t a t i c 5 addr ess 1 0 . 1 . 0 . 2 0 6 netmask 2 5 5 . 2 5 5 . 0 . 0 7 network 1 0 . 1 . 0 . 0 8 b r o a d c a s t 10.1.255.255 9 gateway 1 0 . 1 . 0 . 1 Código 3.7: Configuração do arquivo /etc/network/interfaces A tabela 3.5 mostra as configurações de IP utilizadas nas máquinas virtuais, e a figura 3.7 mostra uma captura de tela do arquivo de configuração de redes do Debian . Tabela 3.5: Configuração de IPs das Máquinas Virtuais VM IP Máscara Network Broadcast Gateway Cliente 10.0.0.25 255.255.0.0 10.0.0.0 10.0.255.255 10.0.0.1 Servidor 10.1.0.1 255.255.0.0 10.1.0.0 10.1.255.255 10.1.0.1 Fonte: Elaborada pelo autor Figura 3.7: Arquivo de configuração de redes no Debian Fonte: Elaborada pelo autor 3.4.2 Configuração das Aplicações no Servidor Será utilizado um servidor básico de HTTP para realizar os testes. A instalação deste é dada pelos comandos mostrados no código 3.8 script.
  • 27. 24 1 apt−get i n s t a l l apache2 2 apt−get i n s t a l l php5 php−pear php5−mysql 3 s e r v i c e apache2 r e s t a r t Código 3.8: Instalação do Servidor HTTP 3.5 Confirmação da Configuração 3.5.1 Traceroute Para confirmar se essa configuração está correta, será utilizada a ferramenta Trace- route para Debian, a qual mostrará a rota entre o próprio host até outro host. Sua instalação em ambas as máquinas virtuais é mostrada no código 3.9 (Launchpad, 2011). 1 sudo apt−get i n s t a l l t r a c e r o u t e Código 3.9: Instalação do traceroute 3.5.2 Resultado do Traceroute Executando o Traceroute, confirma-se o funcionamento da Topologia, como mos- trado no script dado no código 3.10. Ambas as máquinas virtuais estão configuradas correta- mente, estabelecendo enlace entre as redes 10.1.0.0/16 e 10.0.0.0/16 separadas pelo roteador R1. Deste modo, a rede simulada está pronta para a realização dos testes. 1 # Executado no C l i e n t e 2 t r a c e r o u t e 1 0 . 1 . 0 . 2 0 3 1 R1 . eth1 1 0 . 1 . 0 . 1 320.320ms 320.119ms 332.241ms 4 2 Deb7Server 1 0 . 1 . 0 . 2 0 129.542ms 350.321ms 734.20ms Código 3.10: Resultado do traceroute
  • 28. 25 4 Análise 4.1 Estudo de caso Em um trabalho intitulado "Development of a Virtualized Networking Lab using GNS3 and VMware Workstation"(MOHTASIN, 2016), foi realizada uma comparação entre uma rede física e uma rede simulada com GNS3, avaliando a aplicabilidade de redes simuladas em laboratórios de ensino de redes de computadores. Está seção descreverá brevemente esse trabalho, e discutirá seus resultados. A figura 4.1 mostra a topologia de rede utilizada nesse trabalho, que inclui três roteadores c2600, três máquinas virtuais com o sistema operacional Windows 7, cada uma com 1 GB de memória RAM e 10 GB de disco rígido, e uma máquina virtual Windows Server 2012. Figura 4.1: Topologia de rede utilizada por Mohtasin et. al. Fonte: (MOHTASIN, 2016) Para essa rede, foi utilizado o protocolo de roteamento RIP, e para o servidor foram definidos serviços como DNS e DHCP. Todos os serviços foram testados e funcionaram como o esperado, mostrando que a simulação é capaz de representar fielmente vários aspectos de uma rede de computadores real. Para esse estudo, foi também configurada uma rede física com a mesma topologia da simulada, e foram realizados dois testes em ambas as redes: ping através da rede, e a trans- ferência de um arquivo de 14,2 MB por FTP. A figura 4.2 mostra os tempos obtidos para o teste de ping, e a figura 4.3 mostra os tempos obtidos para a transferência do arquivo.
  • 29. 26 Figura 4.2: Tempo de ping na rede simulada, em azul, e na rede física, em vermelho Fonte: (MOHTASIN, 2016) Figura 4.3: Tempo da transferência de um arquivo de 14,2 MB na rede simulada, em azul, e na rede física, em vermelho Fonte: (MOHTASIN, 2016) Como se pode ver pelas figuras anteriores, o desempenho da rede física é claramente superior ao da rede simulada. Por outro lado, a rede simulada apresenta vantagens em quesi- tos como custo, facilidade de setup, facilidade de acesso a recursos e quantidade de cenários possíveis de serem estudados. Devido à versatilidade do laboratório virtual e à sua facilidade de implementação, os autores do trabalho concluem que, apesar do baixo desempenho, a simulação de redes é uma ferramenta poderosa para o auxílio do ensino de redes de computadores, permitindo que os estudantes tenham contato com uma grande variedade de topologias de rede com baixo custo.
  • 30. 27 Os autores, porém, destacam que o laboratório virtual não é um bom ambiente para se avaliar o desempenho de dispositivos de rede ou verificar a latência em uma rede. 4.2 Análise da Usabilidade do GNS3 Na aplicação APACHE, operando na Máquina Virtual Servidor (10.1.0.25:3000), foram utilizados dois arquivos HTML diferentes para envio para a máquina Cliente: 1. HTML File: 1.000 (um mil) caracteres aleatórias. 2. HTML File: 10.000 (dez mil) caracteres aleatórias. 3. HTML File: 100.000 (cem mil) caracteres aleatórias. 4.2.1 Teste do tempo de resposta Para este teste, utilizou-se uma aplicação em ruby (Ruby-Doc, 2016) para automatizar requisições e contabilizar o tempo. O código Ruby para essa aplicação é mostrado o código 4.1. 1 r e q u i r e ’ net / h t t p ’ 2 3 puts " Teste 1" 4 5 100. times do 6 tempo0 = Time . now 7 Net : : HTTP . get ( ’ 1 0 . 1 . 0 . 2 5 : 3 0 0 0 ’ , ’ / 1 . html ’ ) 8 tempo1 = Time . now 9 puts ( tempo1 − tempo0 ) . t o _ r 10 end 11 12 puts " Teste 2" 13 14 100. times do 15 tempo0 = Time . now 16 Net : : HTTP . get ( ’ 1 0 . 1 . 0 . 2 5 : 3 0 0 0 ’ , ’ / 2 . html ’ ) 17 tempo1 = Time . now 18 puts ( tempo1 − tempo0 ) . t o _ r 19 end 20 21 puts " Teste 3" 22 23 100. times do 24 tempo0 = Time . now 25 Net : : HTTP . get ( ’ 1 0 . 1 . 0 . 2 5 : 3 0 0 0 ’ , ’ / 3 . html ’ )
  • 31. 28 26 tempo1 = Time . now 27 puts ( tempo1 − tempo0 ) . t o _ r 28 end Código 4.1: Aplicação Ruby Os resultados obtidos seguem nos histogramas abaixo. A figura 4.4 mostra o his- tograma para 100 requisições do arquivo HTML de 1.000 bytes, a figura 4.5 para o arquivo de 10.000 bytes, e a figura 4.6 para o arquivo de 100.000 bytes. A tabela 4.1 mostra os tempos mínimo, máximo e médio dessas requisições. Figura 4.4: Histograma - 100 requisições HTTP - 1.000 bytes em função do tempo Fonte: Elaborado pelo autor
  • 32. 29 Figura 4.5: Histograma - 100 requisições HTTP - 10.000 bytes em função do tempo Fonte: Elaborado pelo autor Figura 4.6: Histograma - 100 requisições HTTP - 100.000 bytes em função do tempo Fonte: Elaborado pelo autor Tabela 4.1: Tabela de tempo mínimo, média e máximo dos testes Tamanho do Documento Menor tempo Tempo médio Maior tempo 1.000 Bytes 0,006 s 0,22 s 0,44 s 10.000 Bytes 0,005 s 2,27 s 4,48 s 100.000 Bytes 0,015 s 7,18 s 15,99 s Fonte: Elaborado pelo autor
  • 33. 30 4.2.2 Teste de fidelidade do protocolo HTTP Com a análise utilizando a aplicação Wireshark, pode-se observar que o protocolo HTTP apresentou todas as características originais devido a fiel implementação do protocolo nas máquinas virtuais. Os códigos 4.2 e 4.3 mostram a requisição enviada ao Servidor, e seu datagrama de resposta ao Cliente. A tabela 4.2 mostra que o GNS3 apresentou suporte total ao protocolo HTTP. 1 GET / 1 . html HTTP / 1 . 1 2 Host : 1 0 . 1 . 0 . 2 5 : 3 0 0 0 Código 4.2: Requisição enviada ao Servidor 1 HTTP / 1 . 1 200 OK 2 Date : Mon, 28 Nov 2016 12:03:34 GMT 3 Server : Apache / 1 . 3 . 2 7 ( Debian ) 4 Last−Modified : Mon, 28 Nov 2016 09:11:55 GMT 5 Content−Length : 1000 6 Connection : c l o s e 7 Content−Type : t e x t / p l a i n 8 [1.000 c a r a c t e r e s a l e a t o r i a s ] Código 4.3: Datagrama de resposta ao Cliente Tabela 4.2: Métodos HTTP suportados na simulação Método Suporte? GET Sim HEAD Sim POST Sim PUT Sim DELETE Sim TRACE Sim OPTIONS Sim CONNECT Sim Fonte: Elaborado pelo autor Além de todos os métodos testados, foi analisado que o protocolo também aceitou Cookies e todos os tipos de MIME.
  • 34. 31 4.3 Características do GNS3 O GNS3 demonstrou fidelidade real na simulação do protocolo HTTP durante a execução dos testes. Esta principal característica do software demonstra seu potencial para uma qualidade de estudo aprofundado no protocolo HTTP utilizando o devido software, visto que ele permite uma análise fiel na transição de dados da rede. O principal fator que contribui para a fidelidade do protocolo HTTP na simulação de redes do GNS3 é: 1. Protocolos de rede implementados pelo sistema operacional das máquinas virtuais utili- zadas. 2. Protocolos de redirecionamento implementados pelo sistema padrão da Cisco nos rotea- dores utilizados na simulação. 3. Simulação baseada em interfaces virtuais de rede para cada Máquina Virtual. 4. Protocolo HTTP implementado conforme a RFC (R. FIELDING, 2014) em ambos os lados (Cliente e Servidor). Como pontos negativos, tem-se a qualidade do hardware necessário para a simula- ção e infidelidade no tempo de resposta. Como mostra o teste do tempo de resposta, o tempo apresenta variações irregulares, diferente de uma rede real. A mesma variação é observada na simulação apresentada no estudo de caso analisado. Um dos principais pontos analisados sobre a dificuldade da simulação com relação ao hardware convém do alto consumo do processador e memória. Para a execução da pilha de softwares para estudo do protocolo HTTP foi necessário utilizar suas máquinas virtuais (com 512MB de RAM), GNS3 e Wireshark. Todos os softwares, em conjunto, consumiram entre 3GB a 4GB de memória RAM e 4 núcleos do processador por análise da ferramenta HTOP(HTOP, 1994). A ferramenta apresenta-se muito efetiva para um estudo e análise aprofundada no protocolo HTTP, porém torna-se ineficiente para a aplicação cotidiana deste objetivo, recomendando-se aplicações superficiais para simulação de redes.
  • 35. 32 5 Conclusão Neste trabalho foi apresentado um estudo do protocolo HTTP em uma rede simu- lada por meio do software GNS3, com objetivo de verificar a aplicação de tal software em um laboratório de estudo de redes de computadores. Foi observado que, apesar de representar satisfatoriamente os aspectos de rede ne- cessários à análise em questão, a alta demanda de memória do GNS3 e das máquinas virtuais dos computadores na rede simulada torna inviável a simulação de uma topologia de rede com um número grande de computadores. No caso analisado pelo grupo, foi possível a simulação de somente dois roteadores e dois hosts, com a troca de mensagens HTTP sendo realizada de um dos hosts ao outro. Além do alto uso de memória, também foi observado que o tempo de comunicação entre os computadores na rede simulada é consideravelmente maior que em uma rede física, o que reforça a dificuldade do uso de simulações para redes com topologias grandes. Tal resultado é reforçado pelo estudo de caso apresentado nesse trabalho, em que foi realizada uma análise semelhante e foram obtidos resultados equivalentes. Ademais desses pontos, também deve-se mencionar o tempo de configuração da rede. Como o GNS3 simula todos os aspectos de rede, inclusive os sistemas dos roteadores, configurar uma rede simulada no GNS3 pode ser tão trabalhoso quanto configurar uma rede entre computadores físicos, de modo que a principal vantagem do GNS3 se dá quando não há outros computadores disponíveis e a despreocupação com a camada física. Com relação ao realismo da simulação, porém, o GNS3 se mostra bastante satisfa- tório, representando com fidelidade todos os aspectos de rede observados. A exemplos dessa fidelidade é o tamanho da janela de transmissão TCP aberta (a qual comporta-se como em uma rede física), a fidelidade do protocolo HTTP e todos os demais protocolos de roteamento entre todos os devidos roteadores. A principal resposta para a Análise do GNS3 como ferramenta ao auxilio do estudo do protocolo HTTP se dá conforme o nível requerido a qual deseja-se analisar a rede. Caso seja de forma superficial e simplista, recomenda-se utilizar outros simuladores de redes de compu- tadores para realizar a devida análise. Porém, se for desejada uma fidelidade real ao protocolo
  • 36. 33 HTTP e todo o backend necessário para isso (aplicações, protocolos bases, ferramenta comple- mentar para a análise da rede, etc) é fortemente recomendado o uso do GNS3.
  • 37. Bibliografia 9TUT. Configure Static Route on GNS3. 2014. Disponível em: <http://www.9tut. com/configure-static-route-gns3-lab>. AMYOT, D. System Analysis and Modeling: Models and Reusability. : Springer, 2014. Cisco. Cisco IOS Software Download. 2008. Disponível em: <https://software. cisco.com/download/navigator.html>. Acesso em: novembro de 2016. Cisco. What is a Network Switch vs. a Router? n.d. Disponível em: <https: //www.cisco.com/cisco/web/solutions/small_business/resource_ center/articles/connect_employees_and_offices/what_is_a_ network_switch/index.html>. Acesso em: novembro de 2016. FOROUZAN, B. A. Redes de Computadores: Uma Abordagem Top-down. : AMGH, 2013. Free CCNA Work Book. Cisco IP Address Configuration. 2012. Disponí- vel em: <https://www.freeccnaworkbook.com/workbooks/ccna/ interface-ip-address-configuration>. GNS3. GNS3 - Linux Install Guide. 2014. Disponível em: <https://www.gns3.com/ support/docs/linux-installation>. Acesso em: novembro de 2016. GNS3 Labs Blog. Basic Commands. 2015. Disponível em: <http://commonerrors. blogspot.com.br/2015/08/cisco-basic-commands-for-beginners. html>. Acesso em: novembro de 2016. How to Forge. Linux Basics - Static IP and Network Configuration on Debian. 2014. Disponível em: <https://www.howtoforge.com/debian-static-ip-address>. HTOP. HTOP Web Site. nov 1994. Disponível em: <https://hisham.hm/htop/>. Acesso em: novembro de 2016. KUROSE, J. F.; ROSS, K. W. Computer Networking: a Top - Down Approach. 6 ed. : Pearson Education, 2013. ISBN 978-0-13-285620-1.
  • 38. 35 Launchpad. Traceroute Packeage and Source in Ubuntu. 2011. Disponível em: <https: //launchpad.net/ubuntu/+source/traceroute>. Acesso em: novembro de 2016. Linoxide. How to install Wireshark on Linux. 2013. Disponível em: <http://linoxide. com/how-tos/howto-install-wireshark-on-linux/>. Acesso em: novembro de 2016. MOHTASIN, R. et al. Development of a virtualized networking lab using gns3 and vmware workstation. In: IEEE WiSPNET. 2016. p. 603. NELSON, T. Literary Machines. : Mindful Press, 1981. Oracle. Virtual Box Linux Install. 2006. Disponível em: <https://www.virtualbox. org/wiki/Linux_Downloads>. Acesso em: novembro de 2016. Oracle. Virtual Box. 2016. Disponível em: <https://www.virtualbox.org/>. Acesso em: novembro de 2016. PAN, J. A Survey of Network Simulation Tools: Current Status and Future Developments. 2008. Disponível em: <http://www.cse.wustl.edu/~jain/cse567-08/ftp/ simtools/>. Acesso em: novembro de 2016. R. FIELDING, E. RFC 7230. 2014. Disponível em: <https://tools.ietf.org/ html/rfc7230>. Acesso em: novembro de 2016. Ruby-Doc. Net::HTTP Class. jul 2016. Disponível em: <https://ruby-doc. org/stdlib-2.3.3/libdoc/net/http/rdoc/Net/HTTP.html>. Acesso em: novembro de 2016. SPI. Sobre o Debian. 2012. Disponível em: <https://www.debian.org/intro/ about>. Acesso em: novembro de 2016.