Terceira Entrega: Exercícios com Simulador de Redes (PMR3412-V2023)
Esta entrega visa criar familiaridade com a configuração e o funcionamento de redes TCP/IP. Para tal, será utilizado o software GNS3, que é uma boa ferramenta para fazer simulações virtuais de diferentes arranjos de redes de computadores.
Preparação: Instalação do GNS3 GUI
O GNS3 é um software virtualizador de ambientes de redes. Desta forma, ele pode ser utilizado para projetar uma arquitetura de redes e realizar testes antes de implementá-las.
Siga as instruções na apostila de intalação do GNS3 GUI em Windows, Linux ou Mac e da máquina virtual do GNS3.
Instalando aplicações de host
Para adicionar templates no GNS3 entre "File" → "New template". Neste menu selecione a primeira opção para instalar os templates via GNS3 server. Usando o campo de busca, instale o webterm e o ipterm, que serão os hosts usados neste exercícios.
Instalando a aplicação do roteador
Nesta entrega, vamos utilizar o OpenWrt, que é um firmware aberto para roteadores, baseado em Linux. Ele é compatível com diversos modelos de roteadores caseiros, cuja lista pode ser encontrada em https://openwrt.org/toh/start.
Para instalar o OpenWrt no GNS3, vá novamente em "File" → "New template" → "Install appliance from the GNS3 server" e busque por "OpenWrt". Dessa vez será necessário fazer o download da imagem do roteador e importar esta imagem. Assim, escolha a versão e clique em "Download", como mostra a imagem
Você deve, então, descompactar o arquivo.
Voltando ao GNS3, clique em "Import" e selecione o arquivo opwnwrt-XX.XX.X-x86-64-generic-ext4-combined.img
.
Depois disso, basta clicar em "Next" para finalizar a instalação.
1. Roteador como servidor DHCP (3 pontos)
Inicie um novo projeto no GNS3 e monte a seguinte arquitetura de rede
O roteador deve estar conectado à rede através da interface "e0". Isto é importante, como será discutido no próximo exercício.
Configurando o endereço IP do roteador
Para configurar o endereço lógico do roteador, é necessário editar o arquivo de texto /etc/config/network
.
Assim, para editá-lo, você pode abrir o console e executar o seguinte comando
$ vi etc/config/network
para abrir o editor de texto vi.
ℹ️ No vi, pressione "i" para entrar no modo edição e adicionar caracteres. Em seguida, use "esc" para sair do modo de edição. Para apagar um caractere, use a tecla "x" e, para apagar uma linha, digite "dd". Outros atalhos podem ser consultados aqui. Por fim, para finalizar, digite ":wq" para salvar e sair.
Utilize este método para configurar do IP do roteador para algum endereço privado, de classe A, B ou C, sendo que um dos octetos deve ser 1XX, onde XX corresponde aos últimos dois dígitos do seu número USP. Após editar e salvar, reinicie o aparelho para aplicar as modificações.
Configurando os endereços IP do ipterm e webterm
No caso do ipterm e webterm, que são hosts baseados em Linux, você deve editar o arquivo /etc/network/interfaces
.
Remova o comentário das linhas removendo #
e edite de modo que:
- o webterm seja configurado para utilizar o DHCP para obter o endereço IP; e
- o ipterm seja configurado com um endereço IP estático.
Antes de reiniciar o webterm, inicie o Wireshark do GNS3 para capturar os pacotes DORA (Discover, Offer, Request, Ack) do DHCP. Depois, utilize o browser do webterm para conectar na interface gráfica do OpenWrt.
No relatório, apresente:
- O endereço da rede escolhida e a máscara de sub-rede. Mostre também o endereço no formato CIDR.
-
Screenshot da saída do comando
ifconfig
para cada um dos equipamentos (ipterm, webterm e roteador), mostrando a configuração da interface conectada à rede. - Screenshot do GNS3 mostrando todos os equipamentos e conexões. Habilite a exibição dos rótulos de interface e insira, para cada interface de todos os hosts, o seu endereço IP.
- Screenshot do Wireshark com os pacotes DORA.
- Screenshot do Wireshark com os pacotes de requisição/resposta HTTP.
2. NAPT para acesso externo (3 pontos)
Adicione um novo roteador e um switch para refletir a seguinte nova arquitetura
Os roteadores OpenWrt já vêm configurados com o NAPT, sendo que a rede interna deve utilizar a interface "e0" e a rede externa a interface "e1". Sendo assim, na nossa simulação, a rede construída no item anterior seria a rede local, enquanto que o roteador R2 estaria em uma rede WAN externa, geralmente conectada à Internet.
O roteador R2 deve ser configurado com um IP público de classe B, sendo o segundo octeto 1XX, onde XX corresponde aos últimos dois dígitos do seu número USP.
Após reiniciar o R2, tente acessar sua interface a partir do webterm para verificar que o NAPT está funcionando.
No relatório, apresente:
- O endereço da rede escolhida na configuração do R2 e a máscara de sub-rede. Mostre também o endereço no formato CIDR.
-
Screenshot da saída do comando
ifconfig
para o roteador R2. - Screenshot do GNS3 mostrando todos os equipamentos e conexões. Habilite a exibição dos rótulos de interface e insira, para cada interface de todos os hosts, o seu endereço IP.
- Screenshot dos terminais do webterm e do ipterm mostrando a resposta do ping no roteador R2.
- Screenshot mostrando a tela do Wireshark com os pacotes de requisição/resposta HTTP, capturados no trecho webterm-R1.
- Screenshot mostrando a tela do Wireshark com os pacotes de requisição/resposta HTTP, capturados no trecho R1-R2.
- Explique, utilizando as informações dos Screenshot anteriores, como o NAPT operou para possibilitar a comunicação entre o webterm-1 e R2.
-
Screenshot dos terminais do webterm e do ipterm mostrando a tabela de roteamento, que pode ser obtida usando o comando
ip route show
. Explique o significado de cada entrada nas tabelas.
3. Roteamento estático (4 pontos)
Para ter a necessidade de configuração manual de roteamento, precisamos criar mais uma rede. Para simplificar, faremos isso em etapas, realizando testes a cada avanço.
Configurando a interface LAN2 no R2
Assim, adicione um novo webterm e conecte à interface "e2" do roteador R2, como mostra a Fig.
A interface "e2" não vem pré-configurada como as demais. Assim, usando o webterm-1, conecte à interface web do R2; vá em "Network" → "Interfaces" → "Add new interface...". Insira os dados abaixo e clique em "Create interface".
Na próxima tela, configure o endereço estático com um endereço IPv4 e máscara de sub-rede de sua escolha. Antes de prosseguir, vá na aba "Firewall Settings" e selecione a zona "lan" para herdar as configurações de firewall, como mostrado na Fig.
Salve e aplique as mudanças clicando em "Save & Apply". Depois, configure o webterm-2 para poder acessar a interface gráfica do roteador R2.
Para testar se está funcionando, verifique se consegue:
- fazer o ping no R2 a partir do webterm-2;
- acessar a interface web de R2 a partir do webterm-2;
- fazer o ping no R1 a partir de R2;
- fazer o ping no R1 a partir do webterm-2.
Configurando a interface LAN2 no R1
Apague a conexão entre o R1 e Switch2; depois reconecte os dois usando a interface e2 de R1, como mostra a Fig.
A partir do webterm-1, use os passos da subseção anterior para configurar a interface LAN2 do roteador R1 para usar o "eth2". Desta vez, selecione "DHCP client" como protocolo, uma vez que o R2 servirá como servidor DHCP. Não se esqueça de modificar as configurações de firewall.
Para testar se está funcionando, verifique se consegue:
- fazer o ping no R2 a partir do R1; e
- fazer o ping no webterm-1 a partir de R1.
Configurando as rotas estáticas
Ainda não é possível realizar comunicação entre os dois webterms, pois os roteadores não estão configurados para processar as rotas. Para tal, é necessário adicionar rotas estáticas nos roteadores; isto é feito na aba "Network" → "Static Routes" → "Add" na interface web.
Após criar as regras em ambos os roteadores, você deve ser capaz de:
- fazer o ping no webterm-2 a partir do webterm-1; e
- fazer o ping no webterm-1 a partir do webterm-2.
No relatório, apresente:
- O endereço da rede escolhida na configuração da LAN2 do R2 e a máscara de sub-rede. Mostre também o endereço no formato CIDR.
-
Screenshot da saída do comando
ifconfig
para o roteador R2 e R1. - Screenshot do GNS3 mostrando todos os equipamentos e conexões. Habilite a exibição dos rótulos de interface e insira, para cada interface de todos os hosts, o seu endereço IP.
-
Screenshot dos terminais do R1 e do R2 mostrando a tabela de roteamento, que pode ser obtida usando o comando
ip route show
. Explique o significado de cada entrada nas tabelas. -
Screenshot do terminal do webterm-1 com a resposta do comando
ifconfig eth0
e o ping no webterm-2, na mesma janela. -
Screenshot do terminal do webterm-2 com a resposta do comando
ifconfig eth0
e o ping no webterm-1, na mesma janela.