RCO-Subsequente-2022-1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Instalação do imunes

Ver anotações do Prof.Odilson - Instalação Imunes

AULA 01 - AULA DIA 31/03/2022

Registrada no SIGAA. Ver pdf de slides e do laboratório.

AULA 02 - AULA DIA 2/04/2022

Registrada no SIGAA. Aula sábado conforme determinação do DEPE. Ver leitura e questionário registrado.

TAREFA MT1.2

AULA 03 - AULA DIA 7/04/2022

Ver slides de apoio no SIGAA.

Laboratório 1

Ver pdf no SIGAA.

Objetivos

Após este laboratório o aluno deverá ser capaz de:

  • Utilizar a ferramenta wireshark para capturar de pacotes da rede, usando o filtro de display;
  • Utilizar a ferramenta imunes para simulação funcional de uma rede de computador;
  • Explanar a estrutura de um pacote de rede caracterizando o encapsulamento devido a múltiplas camadas de protocolos;
  • Explicar o conceito de protocolo através da análise de troca de pacotes com ping e traceroute
  • Utilizar a opção de flow graph para visualizar as trocas de mensagens.
  • Identificar equipamentos em uma rede: hosts, switches e roteadores;
  • Assimilar o conceito de internetwork (conexão entre redes);
  • Identificar a necessidade de uso de endereços e rotas em uma rede de pacotes;

Laboratório 2

Este laboratório não terá relatório a ser registrado no SIGAA. Faremos sob a orientação do professor.

Laboratório 2 - Wireshark: observação simples de pacote e identificação de encapsulamento

FUNDAMENTAÇÃO TEÓRICA: Sobre o analisador Wireshark

O analisador de pacotes exibe os conteúdos de todos os campos dentro de uma mensagem de protocolo. Para que isso seja feito, o analisador de pacotes deve “entender” a estrutura de todas as mensagens trocadas pelos protocolos.

Suponha que estamos interessados em mostrar os vários campos nas mensagens trocadas pelo ping. O analisador de pacotes entende o formato dos quadros Ethernet, e desta forma pode identificar o datagrama IP dentro de um quadro. Ele também entende o formato do datagrama IP, para que ele possa extrair o pacote ICMP usado pelo ping.

Nós utilizaremos o sniffer Wireshark (http://www.wireshark.org) para estes laboratórios, o que nos permite exibir os conteúdos das mensagens sendo enviadas/recebidas de/por protocolos em diferentes camadas da pilha de protocolos. Tecnicamente falando, Wireshark é um analisador de pacotes que pode ser executado em computadores com Windows, Linux/UNIX e MAC.

É um analisador de pacotes ideal para nossos laboratórios, pois é estável, tem uma grande base de usuários e é bem documentado incluindo um guia de usuário (http://www.wireshark.org/docs/wsug_html/), páginas de manual (http://www.wireshark.org/docs/man-pages/), e uma seção de FAQ detalhada (http://www.wireshark.org/faq.html), funcionalidade rica que inclui a capacidade de analisar mais que 500 protocolos, e uma interface com o usuário bem projetada.

OBS: Se o wireshark estiver instalado em sua máquina, para chamá-lo a partir de um terminal deve fazer:

 sudo wireshark

ETAPA 1: Identificando os campos da interface do Wireshark

Quando você executar o programa Wireshark, a interface com o usuário exibida na Figura abaixo aparecerá. Inicialmente, nenhum dado será apresentado nas janelas. A interface do Wireshark tem seis componentes principais:

  1. Os menus de comandos são localizados no topo da janela. Por enquanto, interessam apenas os menus File e Capture. O menu File permite salvar dados de capturas de pacotes ou abrir um arquivo contendo dados de capturas de pacotes previamente realizadas, e sair da aplicação. O menu Capture permite iniciar uma captura de pacotes;
  2. A barra de ferramentas contém os comandos de menu que são mais frequentemente utilizados. Há atalhos para abrir ou salvar dados de captura de pacotes e para iniciar ou parar uma captura de pacotes;
  3. Abaixo da barra de ferramentas, está o campo de filtragem de pacotes exibidos. Nele podem ser digitados nome de protocolo ou outra informação apresentada na janela de listagem de pacotes. Apenas os pacotes que correspondem ao filtro são exibidos;
  4. A janela de listagem de pacotes apresenta um resumo de uma linha para cada pacote capturado, incluindo o número do pacote (atribuído pelo Wireshark; este não é o número do pacote contido no cabeçalho de qualquer protocolo), o tempo que o pacote foi capturado, os endereços fonte e destino do pacote, o tipo de protocolo, e informação específica do protocolo contida no pacote. A lista de pacotes pode ser ordenada conforme qualquer uma destas categorias clicando no nome de uma coluna correspondente. O campo tipo do protocolo lista o protocolo de mais alto nível que enviou ou recebeu este pacote, i.e., o protocolo que é a fonte ou o último sorvedouro para este pacote;
  5. A janela de detalhes de cabeçalho de pacotes fornece detalhes sobre o pacote selecionado na janela de listagem de pacotes. Para selecionar um pacote, basta clicar sobre ele com o botão esquerdo do mouse na janela de listagem de pacotes. Os detalhes apresentados incluem informações sobre o quadro Ethernet e o datagrama IP que contém o pacote. A quantidade de detalhes exibida pode ser expandida ou contraída. Se o pacote foi carregado sobre TCP ou UDP, detalhes correspondentes também são apresentados, os quais também podem ser contraídos ou expandidos. Finalmente, detalhes sobre o protocolo de mais alto nível que enviou ou recebeu este pacote também são apresentados;
  6. A janela de conteúdo de pacotes mostra o conteúdo inteiro do quadro capturado, nos formatos ASCII e hexadecimal.

Figura 3 - Interface com o usuário do Wireshark

ETAPA 2 - Verificando pacotes do ping (ICMP REQUEST/REPLY))

  1. Inicie o navegador web;
  2. Inicie o Wireshark. Inicialmente as janelas estarão vazias, pois não há captura de pacotes em progresso;
  3. Para iniciar uma captura de pacotes, selecione o menu Capture e depois Interfaces. Provavelmente sua interface de rede será a eth0.
  4. Isso faz com que a janela de interfaces de rede disponíveis seja apresentada (Figura 4);
    Figura 4 - Interfaces de rede no Wireshark
  5. O botão Start da interface eth0 deve ser selecionado. Na Figura 4, no Wireshark foi selecionada a interface wlan;
  6. Como nada está acontecendo na rede, a janela apresenta o conteúdo vazio;
  7. Execute um comando ping (endereço na saída da nossa rede - ver aula anterior):
      ping 200.237.201.153
    
  8. Ao voltar para a janela do Wireshark, houve a captura de todos os pacotes envolvidos no process;
  9. Antes de continuar, vamos parar a captura de pacotes e trabalhar com o que temos. Basta clicar em Capture e depois em Stop;
  10. Para testar as capacidades de filtragem, vamos inserir a cadeia “icmp” (sem as aspas e em minúsculo) no especificação do filtro de exibição e depois selecionar Apply (ou Aplicar). Observe que somente os pacotes envolvidos no ping estão sendo mostrados. Os resultados obtidos devem ser similar a tela mostrada na Figura 5.
  11. Selecione a primeira mensagem ECHO REQUEST: as informações dos cabeçalhos do quadro Ethernet, do datagrama IP, do pacote ICMP aparecem na janela de cabeçalhos de pacotes. É possível ver os detalhes, expandido ou comprimindo os itens com um clique na seta ao lado deles.
  12. Selecione uma mensagem ECHO REPLY. Analise o pacote: endereço fonte, endereço destino etc;
  13. Saia do Wireshark.

Figura 5 - Tela Wireshark - Ping

Etapa 3

    1. Com Wireshark ativo (Abra-o novamente) e em modo captura, faça um "ping" para um site conhecido (você pode usar o nome: www.ifsc.edu.br por exemplo).
      1. Aplique um filtro icmp no display. Recorte a tela observada e indique os pacotes ICMP ECHO REQUEST. Discuta quem são os endereços IP e MAC que aparecem no pacote IP e Frame Ethernet.
      2. Aplique um comando Flow Graph e mostre a troca de mensagens do ping através de um recorte da tela;
      3. Encerre e execute novamente o wireshark. Crie um filtro de display de pacotes icmp que SOMENTE saem da sua máquina (ver ip.src). Faça um recorte das telas do filtro.
    2. Faça uma captura de sua escolha usando de forma combinada filtros de captura e de display. Por exemplo, mostre somente pacotes originados e/ou destinados a um determinado host (ip.addr == 192.168..., ip.src, ip.dst).

Laboratório 3

Este laboratório deverá ser registrado no SIGAA. Utilizaremos o simulador IMUNES. Aguarde as orientações básicas de uso.

Laboratório 3 - LANs, WANs, Equipamentos de Redes, Conectividade na rede: Ping

Este laboratório é formado uma mescla de teoria e prática e deverá ser elaborado juntamente com o professor na sala.

ETAPA 1

  1. Criar um documento no google docs. Coloque como título LAB3-LANs-WANs

ETAPA 2

  1. Monte no IMUNES uma LAN com 3 hosts (PCs) e um switch. Identifique cada um deles. Copie e recorte aqui.

ETAPA 3

  1. Monte ao lado da primeira LAN, uma outra LAN com a mesma estrutura. Recorte e coloque as duas LANS isoladas aqui.

ETAPA 3

  1. Interconecte as duas LANs da ETAPA 2 através de uma WAN comutada usando 4 roteadores. Identifique e coloque aqui.Interconecte os roteadores conforme sugerido pelo professor.

ETAPA 4

  1. Executar a simulação (siga as instruções do professor).
  2. Abra um terminal em um host da LAN1 e um host da LAN2. Faça ifconfig e mostre os endereços IPv4 e hardware (edite como mostrado em aula anterior). Cole as telas aqui.

ETAPA 5

  1. Faça um ping de um host da LAN1 em um outro host da LAN1. Cole uma tela mostrando a execução.
  2. Os pacotes do ping passam pelo switch?
  3. Os pacotes do ping passam pelos roteadores? Use o wireshark para mostrar o que chega na interface do roteador de saída da LAN1.

ETAPA 6

  1. Faça um ping de um host da LAN1 em um host da LAN2. Cole a tela mostrando a execução.
  2. Os pacotes do ping passam pelo switch?
  3. Os pacotes do ping passam pelo roteadores? Quais? Use a ferramenta traceroute para identificar a rota seguida por pacotes que saem do host da LAN1 para um host da LAN2, Capture a tela do traceroute e interprete a saída do comando.

ETAPA 7

  1. Executar o ping de um host da LAN1 para um host da LAN2.
  2. Escutar o wireshark em uma interface de um roteador onde os pacotes do ping passam e observar o ping REQUEST e o ping REPLY. Recorte a tela, identifique:
    1. os pacotes e os endereços de destino e fonte IPv4.
    2. os endereços MAC envolvidos. Colar aqui.

AULA 04 - dia 14/04/2021

Objetivos

Após esta aula o aluno deverá:

  • reconhecer o papel da camada de aplicação em uma estrutura de camadas de protocolos;
  • identificar o modelo cliente servidor usado em grande parte de aplicações da Internet;
  • reconhecer a necessidade de endereçamento em nível de processos para identificação de aplicações;
  • observar o processo de encapsulamento/desencapsulamento de dados da aplicação em uma estrutura de camadas de protocolos.

Slides desta aula

Ver sigaa.

Fundamentação Teórica

Camadas de Protocolos e posicionamento da camada de aplicação

Vamos fazer uma analogia com um envio de um livro de um membro de um clube de livro para outro. Observe que o serviço esperado de um protocolo em nível de aplicação é resolver um problema específico já em nível de aplicação. Neste caso, é a transferência de um livro de um local para outro através de entidades de aplicação (pessoas) que estão trocando livros.

Camadas de Protocolos(ícones do www.publicdomainvectors.org)

Camadas de Protocolos(ícones do www.publicdomainvectors.org)

Protocolo e Serviços da Camada de Aplicação

O desenho abaixo mostra um usuário USANDO um serviço de acesso PÁGINAS WEB. Neste desenho pode-se observar:

  • um programa cliente é utilizado pelo usuário para REQUISITAR uma página WEB que se encontra em outro COMPUTADOR;
  • um programa SERVIDOR espera por mensagens de REQUISIÇÃO e RESPONDE enviando a página solicitada;
  • Um PROTOCOLO DE APLICAÇÃO é executado entre as partes (entidades que se comunicam).
  • Observar que tanto cliente como o servidor podem ser ENDEREÇADOS por um número da máquina (IP) e um endereço de porta.
  • Um mecanismos chamado socket (como se fosse um plugue) de uma tomada permite a aplicação se conectar ao protocolo da camada de

baixo.


Protocolo de Aplicação(ícones do www.publicdomainvectors.org) Protocolo da Camada de Aplicação(ícones do www.publicdomainvectors.org)

Laboratório 4

Laboratório 4 - Camada de Aplicação: Colocando no "ar" aplicações cliente servidoras

Neste laboratório vamos construir uma pequena internet, colocando dois serviços no "ar": um web server e um servidor ssh. Mostremos uma visão do posicionamento dos "pacotes de aplicação" capturados para cada um destes serviços.

Os serviços são, portanto:

  • serviço TELNET: terminal remoto. Permite acessar um computador remoto através de um terminal
  • serviço WEB: permite acessar páginas da Internet.


Prepare no google docs um documento para comportar o relatório deste experimento. Indentifique como LAb04-CamadaAplicacao Coloque seu nome e relate as etpas abaixo.

ETAPA 1 - Construindo uma rede para dar suporte aos serviços

Vamos usar o simulador imunes para TER um sentimento do comportamento em camadas em uma rede simples.

Construir no Imunes a rede a seguir. Se preferir importe o arquivo daqui.


Rede Lab4

ETAPA 2 - Colocando serviço (camada aplicação) no AR

Vamos agora executar 3 serviços que se utilizam de protocolos da camada de aplicação:


ETAPA 3 - Iniciando a REDE

Execute

ETAPA 4 - Executando serviço TELNET

Etapa 4.1- Iniciando o servidor

O serviço TELNET pode iniciado a partir da linha de comando no computador onde será executado o lado servidor. Por facilidade, no imunes vamos iniciá-lo conforme abaixo.

TELNET.png

Faça um comando

 ps aux

e mostre que o serviços está se executando na máquina alvo.

ETAPA 4.2 - Criando um usuário no host1 para fazer um acesso remoto

Vamos criar um usuário no host1 para podermos acessar o computador remotamente via TELENET

  1. Abra um terminal no host1
  2. Crie um usuário com o comando:

adduser nome_usuario


Use um nome da sua escolha. Recorte e cole a tela no relatório do experimento.

ETAPA 4.3 - Acessando remotamente o host1 através da conta criada

  1. Abrir uma terminal no pc2
  2. Faça o comando e complete o login

telnet 10.0.9.10


RECORTE E COLE a TELA no relatório.

ETAPA 4.4 - Captura de pacotes do telnet

Agora vamos capturar pacotes do telnet. Basta usar o wireshark em qualquer interface onde passam os pacotes. Por exemplo, no próprio pc2, no host1 ou em qualquer roteador por onde os pacotes passam.

SIGA as instruções do PROFESSOR e recorte a tela do wireshark, filtrando os pacotes do TELNET. Mostre o encapsulamento de pacotes de aplicação e seu posicionamento na estrutura de pacotes.

ETAPA 5 - Executando serviço WEB

Etapa 5.1 - Preparando uma página html para colocar no servidor WEB

Escolha uma máquina para utilizar como Web Server. Prepare uma página html neste SERVIDOR. As páginas do servidor se encontram no diretório /var/www/html

Páginas da internet são construídas usando o formato HTML. Ver aqui o que é uma página HTML e como construir uma ágina simples.

Vá até o diretório /var/www/html e use o editor nano para editar uma página chamada index.html

cd /var/www/html

nano index.html

RECORTE A TELA MOSTRANDO A PÁGINA SENDO EDITADA...


Crie uma página da forma:

<html>
<body>
<h1>Rede de Computadores Subsequente</h1>
<p>Pagina teste do aluno Pedro Alvares Cabral da Silva</p>
</body>
</html>

Etapa 5.2 - Colocando o Web Server no ar

De nada adianta ter uma página html e não ter um programa SERVIDOR que possa enviá-la para um cliente, quando este solicitá-la.

Vamos iniciar o SERVIÇO WEB para testar o protocolo HTTP. Note que HTTP é o protocolo executado entre o cliente e o servidor.

O servidor WEB "cuida" das páginas do site (da rede onde se encontra). O programa servidor disponível é o lightppd Para executá-lo, abrir um terminal no servidor e executar o comando:


 lighttpd -f /etc/lighttpd/lighttpd.conf


RECORTE a tela mostrando o programa se executando no servidor através do comando:

 ps aux

Etapa 5.3 - Acessando o Web Server a partir de um cliente

Faça um acesso a sua página, a partir do firefox (cliente HTTP) em um PC cliente de sua escolha. Coloque a URL (recurso a ser acessado) no topo do firefox.

RECORTE a tela do acesso e corte no relatório.

Etapa 5.4 - Capturando pacotes no cliente e visualizando pacotes http

Faça uma captura de pacotes com wireshark e mostre os pacotes http envolvidos na comunicação.


AULA 5 - DIA 28/04/2022

Objetivos

Após esta aula o aluno deverá ser capaz de:

  • explicar a operação básico do protocolo http;
  • reconhecer a diferença entre as versões 1.0 e 1.1. do protocolo HTTP;

Leitura recomendada

Slides desta aula

Laboratório 5 - HTTP BÁSICO: Desvendando o HTTP com Wireshark


Fonte base: Wireshark - HTTP

Prepare um documento no googledrive para anotar o relatório deste experimento. Coloque o seu nome no início e denomine o arquivo de Lab5-HtmlBasico.

Objetivos

Neste laboratório o aluno deverá explorar aspectos básicos da operação do protocolo HTTP incluindo:

  1. A interação básica GET/resposta do HTTP.
  2. A interação manual GET/resposta do HTTP utilizando o telnet.
  3. A diferenciação do comportamento das versões 1.0 e 1.1 do protocolo HTTP.

PARTE 1 - A Interação Básica GET/Resposta do HTTP

ETAPA 1 - Preparativos Iniciais

  1. Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos. Faça o seguinte:
    1. inicie o navegador;
    2. limpe o cache do mesmo (teclas de atalho para o Firefox: Ctrl + Shift + Del);
    3. inicie o Wireshark, como descrito no Ferramentas básicas;
    4. inicie a captura de pacotes;

ETAPA 2 - Capturando e visualizando pacotes html

  1. digite o seguinte URL no navegador http://tele.sj.ifsc.edu.br/~odilson/RED29004//RED29004.html;
  2. pare a captura de pacotes;
  3. digite “http” (somente as letras, sem as aspas) na caixa de texto de especificação do filtro de exibição, de tal forma que apenas as mensagens HTTP capturadas serão exibidas na janela de listagem de pacotes. (Só estamos interessados em HTTP desta vez, e não desejamos ver todos os pacotes capturados).
    Fig.1 Requisição e Resposta HTTP
  4. O exemplo da figura 1 mostra na janela de listagem de pacotes duas mensagens HTTP capturadas:

ETAPA 3 - Identificando as mensagens GET e a resposta

  1. Localize a mensagem GET (do seu navegador para o servidor web www.sj.ifsc.edu.br) e a mensagem de resposta do servidor para o seu navegador.
  2. A janela de conteúdos de pacotes mostra detalhes da mensagem selecionada (neste caso a mensagem HTTP GET /~odilson/RED29004//RED29004.html, que está em destaque na janela de listagem de pacotes).
RECORTE a tela com as mensagens, cole no relatório e explique o significado das mesmas. Não é necessário explicar cada campo dos headers, mas passar uma noção do significado das mensagens.

ETAPA 4- Identificando o encapsulamento do "pacote" html na camada de transporte

  1. A mensagem HTTP transportada em um segmento TCP, que é carregado em um datagrama IP, que é levado em um quadro Ethernet com 5728 bits no fio. Isso é observado de baixo para cima na janela de detalhes do cabeçalho do pacote selecionado. O Wireshark exibe informações sobre o quadro, IP, TCP e HTTP. Você deve expandir as informações, por exemplo, do HTTP clicando na seta ao lado esquerdo de “Hypertext Transfer Protocol”.
 RECORTE a tela com detalhe do encapsulamento de uma mensagem html nas camadas inferiores. Discuta este encapsulamento.

ETAPA 5 - Identificando o texto html no pacote http de resposta

Observe as informações das mensagens HTTP GET e de resposta. Você consegue inclusive enxergar a mensagem (página) mostrada no navegador: RED29004! Página de teste. Indique em que parte da mensagem você encontrou a informação que responde às questões.

 RECORTE a tela e mostre onde está o texto html no pacote http.

ETAPA 6 - Responda as perguntas abaixo

  1. Responda às seguintes perguntas e imprima as mensagens indicando a parte da mensagem você encontrou a informação que responde às questões.
  1. O seu navegador executa HTTP 1.0 ou 1.1?
  2. Qual a versão de HTTP do servidor?
  3. Quais idiomas (se algum) o seu navegador indica ao servidor que pode aceitar?
  4. Qual o endereço IP do seu computador?
  5. E do servidor tele.sj.ifsc.edu.br?
  6. Qual o número da porta utilizada no seu computador?
  7. E do servidor tele.sj.ifsc.edu.br?
  8. Qual o código de status retornado do servidor para o seu navegador?
  9. Quando o arquivo em HTML que você baixou foi modificado no servidor pela última vez?
  10. Qual a diferença entre os endereços IP e porta de origem e destino entre a mensagem GET e a de resposta do HTTP?

PARTE 2 - Interação Básica GET/Resposta do HTTP usando TELNET e REQUISIÇÃO MANUAL

Vamos repetir o acesso aos links acima, porém sem usar o navegador. A ideia é que nós façamos o papel de navegador. Isso deve ser feito com os seguintes passos:

ETAPA 1 - Preparativos iniciais

  1. Coloque o Wireshark para capturar pacotes
  2. Abra um terminal de texto no Linux.

ETAPA 2

  1. Execute este comando:
    telnet -4 tele.sj.ifsc.edu.br 80
    
  2. Após aparecer esta linha:
    Trying 200.135.37.75...
    Connected to tele.sj.ifsc.edu.br.
    Escape character is '^]'.
    
    digite o seguinte:
    GET /~odilson/RED29004//RED29004.html HTTP/1.0
    
    <Enter> <Enter>
RECORTE A TELA e analise/responda a pergunta abaixo
  1. Identifique a página html que foi enviada como resposta. Ela espeita o protocolo HTTP? Houve erro?
  2. Quanto tempo levou para fechar a conexão (após o duplo Enter)? Foi breve ou demorou?

ETAPA 3

  1. Refaça um pedido em que o recurso é inexistente no servidor (ex: página html com nome/URL inexistente). Observe a resposta. Qual é o código da mensagem recebida?
 RECORTE A TELA e discuta.

ETAPA 4

  1. Refaça a conexão com o servidor:
    telnet -4 tele.sj.ifsc.edu.br 80
    
  2. Refaça o pedido, mas agora utilizando o HTTP/1.1, e tente inferir a diferença da versão 1.0. Note que o GET nesta versão deve ser realizado com o campo Host:
    GET /~odilson/RED29004//RED29004.html HTTP/1.1
    Host: tele.sj.ifsc.edu.br
    
    <Enter>/<Enter>
  3. Quanto tempo levou para fechar a conexão (após o duplo Enter)?

ETAPA 5

  1. Refaça a conexão com o servidor:
    telnet -4 tele.sj.ifsc.edu.br 80
    
    1. Refaça o pedido, mas agora utilizando o HTTP/1.1:
      GET /~odilson/RED29004//RED29004.html HTTP/1.1
      Host: tele.sj.ifsc.edu.br
      
      <Enter>/<Enter>
    2. Antes do fechamento da conexão, faça um novo pedido na conexão já aberta:
      GET /~odilson/RED29004//RED29004_arq3.html HTTP/1.1
      Host: tele.sj.ifsc.edu.br
      
      <Enter>/<Enter>

ETAPA 6

  1. O que explica a diferença de tempo para fechamento de conexão entre as versões HTTP 1.0 e 1.1?
  2. Descreva qual seria o procedimento para o download de dois objetos, via telnet, nos protocolos HTTP 1.0 e 1.1?


PARTE 3 - Desafio - Um cenário com dois web servers e referências de páginas entre sites

Construir um cenário no IMUNES usando dois web servidores. Fazer duas páginas uma em cada servidor. Uma página deve conter o link para a outra. Examinar

AULA 6 - DIA 5/05/2022

Objetivos

PARTE 1

Após esta aula o aluno deverá ser capaz de:

  • Explicar o comando GET Condicional/Resposta no protocolo HTTP;
  • Explicar o comportamento do http com documentos HTML com Objetos Incluídos;

PARTE 2

  • explicar as funcionalidades básicas do DNS, observando pacotes gerados pelo mesmo em uma consulta básica.

Leitura recomendada

PARTE 1 da AULA - Características adicionais do HTTP

LABORATÓRIO 06 - Características adicionais do HTTP

Laboratório 6 - Características adicionais do HTTP


Não é necessário relatório para este laboratório.

PARTE 1 - A Interação HTTP GET Condicional/Resposta

A maioria dos navegadores web tem um cache (seção 2.2.6 do livro) e, desta forma, realizam GET condicional quando pretendem baixar um objeto HTTP já presente em seu cache.


ETAPA 1 - Preparativos Iniciais

  1. Inicie o Chrome;
  2. Limpe o cache do seu navegador(Ctrl + Shift + Del);
  3. Inicie o Wireshark;
  4. Digite o URL no navegador http://tele.sj.ifsc.edu.br/~odilson/RED29004//RED29004.html.
  5. Seu navegador deve exibir um arquivo em HTML muito simples com duas linhas;
  6. Pressione o botão refresh (F5) no navegador (ou digite o URL novamente);
 Recorte a tela e mostre a tela capturada com a devida URL

ETAPA 2 - Verificando o acesso da página

  1. Pare a captura de pacotes, e digite “http” na caixa de texto de especificação de filtro, para que apenas as mensagens HTTP sejam apresentadas na janela de listagem de pacotes.
    • Se você realizou o procedimento corretamente, você visualizará um total de 6 mensagens no Wireshark: três GETs e três respostas.
    • Obs: Para fins de análise, despreze a solicitação e resposta relativa ao favicon.ico, que é relativa ao download do ícone do IFSC.

ETAPA 3 - Identificando o uso do campo "If-Modified-Since"

  1. Inspecione o conteúdo da primeira mensagem HTTP GET do seu navegador para o servidor tele.sj.ifsc.edu.br. Você vê uma linha “If-Modified-Since”?
  2. Inspecione o conteúdo da primeira resposta do servidor. O servidor retornou explicitamente o conteúdo do arquivo? Como você pode dizer isso?
  3. Agora inspecione o conteúdo da segunda mensagem HTTP GET do seu navegador para o servidor. Você vê uma linha “If-Modified-Since”? Caso a resposta seja afirmativa, qual informação segue o cabeçalho “If-Modified-Since”?

ETAPA 4 - Encontrando explicações para o cenário observado

  1. Qual é o código de status e a frase retornada do servidor na resposta à segunda mensagem HTTP GET? É diferente do código de retorno da primeira mensagem?
  2. O servidor retornou explicitamente o objeto HTTP na segunda requisição? Explique.
  3. Qual o tamanho da primeira e segunda mensagem de retorno do servidor? O que explica a diferença de tamanho?


PARTE 2 - Documentos HTML com Objetos Incluídos

ESTE laboratório é somente demonstrativo.

Agora que vimos como o Wireshark mostra o tráfego capturado para arquivos em HTML simples, também podemos observar o que acontece quando o seu browser baixa um arquivo com objetos incluídos, no nosso exemplo, imagens que estão armazenadas em outros servidores.

Faça o seguinte:

  1. Inicie o Firefox;
  2. Limpe o cache do seu navegador;
  3. Inicie o Wireshark;
  4. Digite o URL no navegador http://tele.sj.ifsc.edu.br/~odilson/RED29004/RED29004_arq3.html;
  5. Seu navegador deve exibir um arquivo pequeno em HTML com duas imagens incluídas.
    • Estas duas imagens estão referenciadas no objeto HTML. Isto é, as imagens não estão contidas no objeto HTML e sim referenciadas no mesmo, um URL para cada imagem.
    • Como discutido no livro, seu navegador terá que baixar estas imagens dos locais correspondentes.
  6. Verifique o código fonte da página, clicando com o botão direito do mouse sobre ela no navegador e em inspecionar.
    • Observe os links dentro do código html.
  7. Digite o URL no navegador http://tele.sj.ifsc.edu.br/~odilson/RED29004/RED29004_arq4.html.
  8. Seu navegador deve exibir um arquivo pequeno em HTML com cinco imagens incluídas.
    • Estas cinco imagens,diferentemente do caso anterior, estão depositadas no próprio sítio do professor;
  9. Verifique o código fonte da página, clicando com o botão direito do mouse sobre ela no navegador e em inspecionar.
    • Observe os links dentro do código html.
  10. Pare a captura de pacotes, e digite “http” na caixa de texto de especificação de filtro, para que apenas as mensagens HTTP seja exibidas.

Tarefa:

  1. Quantas mensagens HTTP GET foram enviadas pelo seu navegador em cada acesso?
  2. Para quais endereços na Internet (URI = Hosta + URL) estas mensagens foram enviadas em cada acesso?
  3. Você consegue dizer se o seu navegador baixou imagens com ou sem paralelismo? Explique e diferencie o comportamento em cada um dos casos, em sítios diferentes e no mesmo sítio.

PARTE 2 DA AULA Introdução ao Serviço DNS

Referências

Laboratório 7 - Introdução ao Serviço DNS

LABORATÓRIO 7 - Introdução ao DNS

Neste laboratório vamos explorar algumas características do sistema DNS. Utilizaremos máquinas reais inicialmente.

ETAPA 1

CRIAR um arquivo no google docs (nome LAB07-IntroducaoDNS) para construir o relatório simplificado deste experimento. Coloque seu nome. Responda cada etapa que se segue.

ETAPA 2 - FUNDAMENTAÇÃO TEÓRICA - O que é o DNS

Com a ajuda de explicações do professor, dos slides da aula passada e das referências da minha biblioteca responda com as SUAS palavras:

  • Para que serve o Sistema DNS?
  • Quais os dois componentes principais (ver slides e leitura complementar)
  • Em qual camada se encontra o protocolo usado no DNS?
  • Qual protocolo de transporte é usado pelo DNS?

Leitura Complementar

ETAPA 3 - FUNDAMENTAÇÃO TEÓRICA - Consulta ao sistema DNS

Explique com as suas palavras o cenário (slide 6/9) do DNS estudado em sala. Imagine que o computador cis.poly.edu quer realizar um ping no computador gaia.cs.umass.edu conforme indicado abaixo. Explique cada mensagem realizada (identifique a mensagem pelo numero).

ping gaia.cs.umass.edu

ETAPA 4 - FUNDAMENTAÇÃO TEÓRICA - Nome de domínios e tipo de registros DNS

Leia um pouco sobre o nome de domínios em [1].

  1. Considere o domínio sj.ifsc.edu.br. Quais seriam os níveis de domínios deste nome?
  2. Quais os tipos de registros descritos nos slides? Qual registro está associado a resolução de nome em endereço IPv4?

Leitura Complementar

ETAPA 5 - PRÁTICA - Vendo qual servidor DNS está configurada na máquina

Qualquer consulta a um nome deve ser realizada a um primeiro SERVIDOR DNS (não é AUTORITATIVO necessariamente) que provavelmente se encontra em sua rede local. NO SEU computador deve estar armazenado o IP deste servidor.

Execute e explique o comando abaixo. Recorte a tela e cole no relatório.

 cat /etc/resolv.conf

Note que este comando é para um Linux

  RECORTE A TELA, cole no relatório e discuta.

ETAPA 6 - PRÁTICA - Consulta simples ao DNS gerada a partir de um comando ping

Baseado em do Prof.Odilson

Nesta etapa vamos verificar o momento em que é realizada uma consulta ao DNS por ocasão da realização de um ping. Vamos usar o wireshark para verificar os pacotes DNS antes do envio de pacotes do ping.

O comando ping pode ser usado tanto com um endereço IP como com um nome de host.

  • Em última instância, ele sempre enviará pacotes para um endereço IP.
  • No caso de ser usado o endereço de host, ele tentará resolver (mapear) este nome em um endereço IP usando um servidor DNS (local).
  • Ele gera uma pergunta para o servidor (ou para os servidores, caso exista mais de um configurado).
  • Esta experiência mostra como verificar os servidores instalados e, através de uma captura de pacote mostra a estrutura dos cabeçalhos DNS.
  1. Inicie o wireshark para capturar os pacotes.
  2. Execute o ping para um endereço de host conhecido
    ping -4 -c 3 www.sorbonne.fr
    
  3. Pare a captura de pacotes no Wireshark e coloque um filtro de display para mostrar apenas mensagens DNS e de ICMP
    dns || icmp
    
 RECORTE A TELA neste ponto e cole no relatório.

ETAPA 7 - Discussão da captura realizada

  1. Observe os pacotes capturados e responda
        1. O ping gerou pergunta para cada um dos servidores configurados em sua máquina, ou somente para um?
        2. Qual o tipo da RR associada a pergunta (Queries). O que significa?
        3. Qual endereço IP retornado para o www.sorbonne.fr?
        4. Qualo nome canônico de www.sorbonne.fr?
        5. Qual endereço IP de destino usado no ping (ver pacote REQUEST ICMP)?
        6. Qual protocolo de transporte, camada 4, que foi usado para transportar as mensagens de aplicação DNS?


ETAPA 8 - PRÁTICA - Consultas DNS por meio de ferramentas especializadas - Consulta simples (tipo registro A)

Usando o programa host ou dig, que são executados no terminal, descubra e anote no relatório os endereços IP associados aos seguintes nomes de hosts (máquinas):

  • www.sj.ifsc.edu.br
  • www.ifsc.edu.br
  • www.google.com
  • www.gmail.com

Exemplo:

 host www.ifsc.edu.br
  RECORTE A TELA e cole no relatório. Discuta o que o comando faz.

ETAPA 9 - PRÁTICA - Consultas DNS por meio de ferramentas especializadas - Consulta simples (tipo registro NS)

Agora descubra e anote no relatório quais são os servidores DNS responsáveis por cada um dos domínios dos nomes acima.

    • Para isso consulte o valor do registro NS associado a esses domínios.
    • Por exemplo, com o programa host ou dig isso pode ser feito assim:
      host -t ns ifsc.edu.br
      
  RECORTE A TELA e cole no relatório. Discuta o que o comando faz.

AULA 7 - DIA 7/05/2022

Objetivos

  • Outros protocolos de aplicação e revisão do HTTP

Aula assíncrona no SÁBADO conforme DEPE.

AULA 8 - DIA 12/05/2022

Objetivos

Após esta aula o aluno deverá


  • Saber o conceito de ZONA e DOMÍNIO no DNS
  • entender a necessidade de um servidor (autoritativo) de DNS
  • Estabelecer um serviço de DNS e fazer com que um cliente acesse este servidor.
  • Verificar a troca de msgs DNS entre cliente e servidor (registro A)
  • Visualizar de forma geral serviços em nível de camada de aplicação com o DNS.
  • Ter uma visão do posicionamento dos "pacotes de aplicação" capturados para cada um destes serviços.
Laboratório 8 - Uma mini Internet com DNS


Camada de Aplicação: Colocando no "ar" aplicações servidoras com DNS

Descrição do Laboratório

Neste laboratório construiremos uma MINI INTERNET com alguns serviços da camada de aplicação e com o apoio do DNS. Vamos investigar novamente o comportamento do DNS. VocÊ terá a oportunidade de iniciar um servidor DNS responsável por um domínio (redes.edu.br). Outros computadores do mundo da MINI INTERNET poderão usufruir deste servidor, quando devidamente configurados.

Os serviços iniciador serão, portanto:

  • serviço DNS: Vai permitir a navegação através de nomes de máquinas.
  • serviço WEB: permite hospedar e acessar remotamente páginas da Internet.
  • serviço SSH: Secure Shell, terminal remoto. Permite acessar um computador remoto através de um terminal.

Rede a ser implementada

Rede Lab4


PARTE 1 - Criando um domínio DNS na MINI INTERNET

Construir no googledrive o relatório com as etapas abaixo. Coloque o nome do arquivo de LAB8-MINI-INTERNET-DNS. Coloque o seu nome no relatório.

ETAPA 0 - Construindo a MINI INTERNET

  1. Vamos usar o simulador imunes para nos apropriarmos do sentimento do comportamento em camadas em uma rede simples. Construir no Imunes a rede a seguir ou, se preferir, importe o arquivo (clique com o direito do mouse e mande baixar) Arquivo IMUNES da MINI INTERNET.
  2. Inicie o Imunes e carregue o arquivo salvo (Camada_aplicacao.imn).
  3. Acrescente um PC rede MinhaRedeDeCasa. Coloque um nome significativo (pc-nomealuno) na rede.
  4. Rotule o host2 como DNS SERVER, pois vamos configurá-lo para tal.
  5. Iniciando a REDE:
    Experiment >> Execute
    
RECORTE A TELA E MOSTRE A TOPOLOGIA DA REDE e mostre uma tela mostrando a execução de um ifconfig no PC criado. Indique qual é o endereço IP do mesmo.

ETAPA 1 - Configuração do serviço DNS

  1. Vá até o diretório de configuração do BIND, por exemplo vamos fazer isso no host2 da LAN inferior:
    cd /etc/bind
    
  2. Defina uma zona de nome redes.edu.br. Isto é feito editando o arquivo named.conf.default-zones. Abra o terminal do host2 e digite:
    nano named.conf.default-zones
    
  3. Acrescente ao final do mesmo o seguinte conteúdo:
    zone "redes.edu.br" {
            type master;
            file "/etc/bind/db.redes";
    };
    
    • Ao terminar de editar digite <ctrl> + <x> e, em seguida, Y e <Enter>.
    • Este arquivo definirá uma nova zona (domínio) DNS.
  4. Na zona criada atribua endereços IPv4 (A) as máquinas em db.redes (base de dados do DNS):
    nano db.redes
    
  5. Cole o seguinte conteúdo no arquivo e salve::
    $TTL    86400
    @       IN      SOA     ns.redes.edu.br. root (
                    2022051200      ; Serial
                    604800          ; Refresh
                    86400           ; Retry
                    2419200         ; Expire
                    86400 )         ; Negative Cache TTL
    ;
    @               IN      NS      ns.redes.edu.br.
    $ORIGIN redes.edu.br.
    ns              IN  A   10.0.6.10
    web             IN  A   10.0.9.11
    ssh             IN  A   10.0.9.10
    www             IN  CNAME       web.redes.edu.br.
    
  6. Reinicie o serviço DNS:
     /etc/init.d/bind9 restart
    
  7. Faça um teste com consulta ao seu servidor com o comando, por exemplo:
     dig @localhost www.redes.edu.br
    
    • O resultado obtido deve conter algo do tipo:
      ;; ANSWER SECTION:
      www.redes.edu.br.       86400   IN      A       10.0.9.11
      
  COLE A TELA e discuta o resultado.

ETAPA 2- Configurando as máquinas para acessarem o DNS

  1. Em qualquer máquina que desejar navegar por nomes, declare o servidor host2 como servidor DNS com o seguinte comendo digitado no respectivo terminal:
    echo nameserver 10.0.6.10 >> /etc/resolv.conf
    
  2. Faça alguns testes simples via ping, por exemplo:
    ping web.redes.edu.br
    ping www.redes.edu.br
    
  RECORTE as TELAS ACIMA e discuta o resultado.

ETAPA 3 - Configure o PC que você criou

Baseando-se nas configurações acima coloque na base de dados do DNS o PC que vocÊ criou. Vá com cuidado pois qualquer erro levará a um problema. A partir do pc3 faça um ping no PC que você criou.

  Registre as várias telas que mostram os resultados.

ETAPA 4 - Capture pacotes na execução do ping

Capture pacotes com o wireshark e mostre a execução do DNS e do ping. Indique onde você realizou a captura. Discuta os resultados.

PARTE 2 - Servidor WEB

Esta parte não é nova para você. Apenas vamos colocar no AR o serviço WEB e acessá-lo pelo nome.

ETAPA 1 - Preparando uma página HTML para colocar no servidor WEB.

    • Páginas da internet são construídas usando o formato HTML.
    • Ver aqui o que é uma página HTML e como construir uma página simples.
    1. No terminal da máquina WEB SERVER entre no diretório diretório /var/www/html:
      cd /var/www/html
      
    2. Use o editor nano para editar uma página chamada index.html:
      nano index.html
      
      • Salve um print com o editor aberto.
    3. Crie a página com o seguinte conteúdo:
      <html>
      <body>
      <h1>Redes de Computadores</h1>
      <p>Pagina teste do aluno Pedro Alvares Cabral da Silva</p>
      </body>
      </html>
      
      • Ao terminar de editar digite <ctrl> + <x> e, em seguida, Y e <enter>.
    4. Verifique se o conteúdo está correto:
      cat index.html
      
    5. Inicie o SERVIÇO WEB para testar o protocolo HTTP. O servidor WEB irá disponibilizar a página criada para acesso remoto via protocolo HTTP:
      /etc/init.d/lighttpd start
      
    6. Confira se o programa está executando no servidor através do comando:
      ps aux
      

ETAPA 2 - Capturando pacotes

  1. No router2 deixe o Wireshark capturando pacotes.

ETAPA 3 - Acessando o servidor WEB pelo nome

  1. Faça um acesso a sua página, a partir do firefox (cliente HTTP) em um PC cliente de sua escolha:
    Clique com o botão direito do mouse sobre, por exemplo, o pc1
    Clique sobre Web Browser
    Digite no navegador: www.redes.edu.br ou 10.0.9.11
    
    • RECORTE a tela com a página em destaque no navegador e cole no relatório.
  2. Salve um print da tela do Wireshark destacando a troca de mensagens HTTP e o conteúdo HTML de uma das páginas acessadas. Tente identificar o acesso ao DNS.

PARTE 3 - Servidor SSH - acessando o serviço pelo nome

ETAPA 1 - Configurando e executando o serviço SSH

O serviço SSH será iniciado no servidor SSH (SSH SERVER).

  1. Primeiramente vamos atribuir uma senha ao usuário root no servidor. Atribua senha root (SSH SERVER) com o seguinte comando no terminal:
    passwd
    
    • Enquanto digita-se a senha o terminal nada apresenta, é normal.
    • Ao terminar de digitar a senha tecle <Enter>. Será solicitado a confirmação da senha com o mesmo procedimento.
  2. Em seguida vamos fazer uma pequena configuração no servidor SSH (SSH SERVER), através do comando:
    echo PermitRootLogin yes >>/etc/ssh/sshd_config
    
  3. Iniciamos o serviço, através do comando:
    /etc/init.d/ssh start
    /etc/init.d/ssh reload
    
  4. Confira se o serviço está rodando:
    ps aux
    
    • Observe se há um processo do tipo, última coluna a direita: /usr/sbin/sshd
  RECORTE as telas e documente esta etapa.

ETAPA 2 - Acessando o ssh da máquina quen você criou

  1. Agora vamos testar a conectividade do serviço fazendo uma acesso remoto a partir da máquina que você criou:
    ssh.redes.edu.br
    
    • Na primeira pergunta responda com yes
    • Na segunda pergunta preencha com a senha: root
  2. Observe e salve que o prompt do seu terminal mudou para root@ssh:~#, isso significa que, apesar de você estar no terminal da sua máquina, vocês está conectado no SSH SERVER. Tudo que você digitar estará sendo executado no SSH SERVER.

ETAPA 3 - Capturando pacotes do ssh e do ICMP

  1. No terminal da sua máquina, que na verdade está conectado ao servidor SSH SERVER, vamos deixar um ping testando a conectividade com o pc2:
    ping 10.0.8.20
    
  2. Agora vamos capturar pacotes do ssh. Basta usar o Wireshark em qualquer interface onde passam os pacotes. Por exemplo, no router2.
    Clique com o direito do mouse sobre o router2 >> Wireshark >> eth0
    
  3. Recorte a tela do Wireshark, filtrando os pacotes do ssh. Mostre o encapsulamento de pacotes de aplicação e seu posicionamento na estrutura de pacotes.
  4. Recorte a tela do Wireshark, filtrando os pacotes do icmp. Comprovando que os pacotes do ping estão passando pelo router2.
  5. Para encerrar a conexão ao SSH SERVER, no terminal do pc2 digite:
    exit
    
    • Observe e salve que o prompt do seu terminal mudou para root@pc2:~#, isso significa que a conexão foi encerrada.

FINALIZAR O EXPERIMENTO E FECHAR O IMUNES. PREPARAR E ENVIAR O RELATÓRIO PELO SIGAA.


AULA 9 - DIA 19/05/2022

Objetivos

Avaliação 1 - Ver SIGAA

AULA 10 - DIA 26/05/2022

Objetivos

Após esta aula o aluno deverá:

  • Saber explicar o papel da camada de transporte no contexto de redes de computadores;
  • Diferenciar o TCP do UDP
  • Identificar pacotes UDP pelo wireshark verificando alguns aspectos. do cabeçalho.

Referências


Laboratório 11 - UDP Básico


Desvendando o UDP - Básico

Objetivos

  • Familiarizar-se com o UDP
  • Entender a estrutura do pacote UDP
  • Entender o conceito de portas
  • Entender o conceito de multiplexação

Fonte Base

Parte 1 - Fluxo único UDP

Criar um documento no googledrive com o nome LAB-11-UDP-Basico. Este documento será usado para registrar o laboratório de hoje. Coloque seu nome no documento.

Nesta parte 1 vamos transmitir dados localmente com o UDP. Usaremos dois terminais para execução do experimento.Um terminal escutará na porta 5000 e a outro transmitirá uma mensagem nessa porta. Os processos de transmissão e recepção podem ocorrer simultaneamente, em terminais distintos.

ETAPA 1

Abrir duas janelas de terminal. Abrir o Wireshark, interfaces any, para escuta das portas no protocolo UDP usando um filtro:
udp.port==5000

ETAPA 2

Em um dos terminais coloque em execução um programa que permite escutar por pacotes UDP na porta 5000:

 netcat -lk -u 5000 

RECORTE a tela do terminal e cole no relatório.

ETAPA 3

No segundo terminal, que irá transmitir para a porta 5000 aberta no primeiro terminal, execute:
netcat -u IP_DEST 5000
onde IP_DEST é o número IP de sua própria máquina.

Em seguida escreve no terminal uma mensagem de até 20 caracteres, ao teclar <enter> a mensagem será enviada.

RECORTE as telas dos terminais mostrando que foi realizada a comunicação.

ETAPA 4

O wireshark deve ter capturado os pacotes UDP.

  1. Identifique e anote os seguintes dados na captura do wireshark:.
    1. PORTAS FONTE E DESTINO.
    2. Campo de protocolo no pacote IP (Na janela central, clique sobre o Internet Protocol e observe o campo Protocol).
    3. Campo de tamanho (anote o tamanho) e checksum no pacote (datagrama) UDP (Na janela central, clique sobre o User Datagram Protocol).
    4. O campo de dados no pacote UDP.

RECORTE A TELA E EDITE EM UM EDITOR GRÁFICO, colocando flechas para os campos indicados.


ETAPA 5

  1. Transmita sequencialmente várias mensagens, devendo identificar múltiplos datagramas UDP.


 RECORTE as telas do terminal e do wireshark mostrando os vários pacotes.

ETAPA 6

PERGUNTAS baseadas na captura e em seus conhecimentos teóricos:

  1. Qual o valor de cada campo do cabeçalho do pacote UDP?
  2. Qual o tamanho máximo do número de porta?
  3. Qual o número identificador de protocolo UDP no pacote IP? (igual acima)
  4. Em algum momento foi identificado algum procedimento para estabelecimento de conexão?
  5. Em algum campo do UDP existe numeração de mensagens?

Parte 2 - Experimento com UDP - MUX e DEMUX

  1. Conceber um adendo ao experimento anterior para demonstrar a multiplexação e demultiplexação de informação.
    • Obs.:No experimento anterior o terminal 1 fazia o papel de servidor e o terminal 2 o papel de cliente.
    • Obs.:Lembre-se que a demultiplexação permitirá que diferentes fluxos sejam encaminhados para diferentes processos. Nesse sentido, por exemplo, em uma mesma máquina pode-se abrir dois os mais terminais onde, em cada um deles, pode-se gerar ou aguardar fluxos distintos (diferenciados pelas portas).
    1. 1 servidor com 2 clientes enviando mensagens distintas.
    2. 2 servidores (portas distintas) com 1 cliente para cada servidor, enviando mensagens distintas.
  2. Capture os pacotes com o Wireshark e caracterize quais pacotes pertencem a cada fluxo (porta).

Parte 3 - Comunicação com UDP entre máquinas distintas

Repita a Parte 1 - ETAPAS DE 1 a 4, mas desta vez converse com o colega ao lado e obtenha o endereço IP e a porta que será "escutada". Combine quem executará o programa servidor UDP e que será o cliente. Capture os pacotes e documente caracterizando os IPs e portas envolvidas (Etapa 4).

 Documente as telas no relatório.

Parte 4 - Observando a característica SEM CONEXÃO x COM conexão

Neste experimento vocÊ NÃO DEVE transmitir dados!

ETAPA 1

No wireshark, faça um filtro para captura de pacotes UDP e TCP nas portas 5000. Coloque o wireshark a capturar pacotes.

RECORTE a tela e cole no relatório

ETAPA 2

Abra quatro terminais. Um configurado para escuta UDP porta 5000, outro configurado para escuta TCP na porta 5000:

TERMINAL 1 - TCP server

  netcat -l 5000

TERMINAL 2 - UDP "server"

  netcat -lk -u 5000

Execute os clientes nos dois outros terminais. Não transmita dados.


ETAPA 3

Observe a captura de pacotes no wireshark. Documente a tela de captura no relatório. Qual a conclusão?


AULA 11 - DIA 2/06/2022

Objetivos

Após esta aula o aluno deverá:

  • Saber explicar as funcionalidades básicas do TCP;
  • Compreender e identificar através da análise de pacotes: as fases de estabelecimento de conexão e desconexão bem como a troca de dados com a numeração de btes em segmentos;
  • Verificar o controle de erros no TCP: Significado de Número de Sequência, ACK
  • Verificar o controle de fluxo no TCP: Significado do campo Windows Size; Funcionamento do controle de fluxo;
  • Verificar o comportamento Full-Duplex no TCP.

Referências


Laboratório 12 - TCP Básico


Laboratório 12 - TCP Básico

PARTE 1 - Verificando o estabelecimento, troca de dados e finalização da conexão

O roteiro será executado sobre 2 máquinas virtuais, através do uso do Imunes. Abra o Imunes e crie uma rede extremamente simples com somente dois PCs, conforme a figura.
2PCs.png

ETAPA 0

  1. Execute o Imunes e monte a rede conforme a figura.
  2. Inicie a simulação:
     Experiment >> Execute
    
  3. Executar no pc2 um servidor TCP aguardando na porta 5555 na forma:
     netcat -l -n -vv -p 5555
    
    • Dica: para copiar o comando para o terminal do Imunes: copie da Wiki e cole com < Ctrl > + < Shift > + < V > ou clicando sobre a rodinha do mouse.
    • Em uma comunicação TCP um processo é servidor (aguarda pedido de conexão) e um processo é o cliente, que gera um pedido de conexão
  4. Executar o Wireshark na eth0 do pc1 (clique com o botão direito do mouse sobre o ícone do pc1 >> Wireshark >> eth0).
    • Aplique um filtro "tcp" para limpar a apresentação.
  5. Executar no pc1 um cliente TCP que solicita uma conexão ao servidor:
      netcat -vv -n 10.0.0.21 5555
    
    NÃO TRANSMITA NADA AINDA!!!
  6. O processo de conexão do TCP envolve a troca de 3 pacotes e é sempre iniciado pelo cliente. O cliente envia um pacote SYN, o servidor responde com um SYN-ACK e o cliente finalmente responde com ACK. Observe estes pacotes no wireshark.
  RECORTE A TELA DO WIRESHARK, identificando os pacotes relacionados com o estabelecimento de conexão. Pode usar o número de identificação do pacote para fins de referência.

ETAPA 2

  1. Enviar uma pequena mensagem de 5 caracteres, e no final teclar ENTER.
  2. Observe que no Wireshark os pacotes de dados do TCP. Um exemplo dessa captura encontra-se na Figura 2.
Fig.2 -- Protocolo TCP


RECORTE A TELA identificando os pacotes relacionados com a troca de dados. inclua os pacotes de conexão para caracterizar a comunicação)

ETAPA 3 - DESCONEXÂO

    • FAÇA um CTRL-C no netcat para encerrar a conexão no netcat.
RECORTE A TELA DO WIRESHARK identificando a fase de desconexão. Quantos pacotes foram trocados.

ETAPA 4 - Algumas perguntas sobre a comunicação

  1. Baseado na captura de pacotes realizada responda:
    1. Quais foram as portas de origem e destino usadas?
    2. Quais os tamanhos das janelas informadas, tanto pelo cliente quanto pelo servidor?
    3. Quais os números de sequência informado pelo Wireshark e o número que consta no campo Data em bytes. Qual é relação entre esses números?
    4. Em qual mensagem (número) aparece a texto que você digitou?
    5. Qual o número identificador de protocolo TCP no pacote IP? (Na janela central, clique sobre o Internet Protocol e observe o campo Protocol).
    • Um dos objetivos do
    • O Wireshark converte a numeração para mostrar a partir do 0 mas o número inicial de sequência é criado randomicamente por cada lado. (ver [2])

ETAPA 5 - Obtendo uma visão geral da comunicação

  1. Gere com o Wireshark um diagrama da comunicação, ou diagrama de troca de mensagens, somente da conexão TCP estabelecida (não deve conter outras mensagens). Insira-o no relatório:
      Statistics >> Flow Graph >> OK
    
  2. Analise esse diagrama, observando qual pacote contém os dados, ou seja, o texto que você digitou.
  3. Analise também o estabelecimento e fechamento de conexão, confere com o apresentado na teoria?
 RECORTE A TELA e cole no relatório. Apresente a análise acima.

PARTE 2 - TCP - Número de Sequência, Controle de Erros e de Fluxo

ETAPA 6 - Iniciar o novo experimento

  1. Encerre a execução do experimento anterior no IMUNES.
  2. Abra um terminal e baixe o aquivo de configuração da rede a ser utilizada e um arquivo auxiliar de dados:
    cd ~
    wget -4 http://docente.ifsc.edu.br/odilson/RED29004/TCP_Num_Seq_Erro.imn 
    wget -4 http://docente.ifsc.edu.br/odilson/RED29004/arq30Bytes.txt
    
  3. Execute o Imunes (se não estiver em execução...): num terminal execute:
     sudo imunes
    
  1. Carregue o arquivo:
     File >> Open >> TCP_Num_Seq_Erro.imn
    
    • Será apresentada uma simples rede a ser utilizada no experimento, composta de 2 PCs: Transmissor e Receptor.
  2. Inicie a simulação da rede no Imunes:
    Experiment >> Execute
    
    • Dica: para abrir um terminal de uma das máquinas da rede a ser simulada basta dar um duplo clique sobre a mesma.
  3. Copie o arquivo arq30Bytes.txt para a máquina Transmissor do Imunes. No terminal da máquina hospedeira (NÃO do Imunes) digite::
    sudo hcp arq30Bytes.txt Transmissor:
    
  4. abra um terminal no Transmissor e liste o arquivo que foi copiado.
  Mostre a  TELA da listagem aqui.

ETAPA 7 - Transmissão sem erros: Verificação de Número de Sequência e Reconhecimentos

  1. Execute o Wireshark no Receptor:
    Clique direito do mouse sobre o ícone do Receptor >> Wireshark >> eth0..
    
  2. Execute o processo servidor no Receptor e prepare o mesmo para limitar a sua capacidade de recepção em cerca de 20 bytes (tamanho do buffer). Isto permitirá ver a quebra do arquivo de 30 bytes em alguns segmentos TCP:
    sysctl -w net.ipv4.tcp_rmem='20 20 20'
    nc -vvnl -p 5555 > ArqRecebido.txt
    
    • Dica: para copiar textos para o Imunes, copie normalmente o texto, por exemplo, da Wiki, com o < Ctrl > + < C > e cole com < Ctrl > + < Shift > + < V > ou clicando sobre a rodinha (scroll) do mouse.
  3. Envie o arquivo arq30Bytes.txt da máquina Transmissor:
    nc -vvn 10.0.0.21 5555 < arq30Bytes.txt
    
  4. Pare os processos rodando nos terminais do Transmissor e Receptor com:
    Ctrl + c
    
  5. Pare a captura de pacotes no Wireshark.
  6. Na tela do Wireshark você terá algo parecido com o apresentado na Figura 1.
    Fig.1 -- Protocolo TCP
    • O comportamento padrão do Wireshark é redefinir o número de sequência para sempre iniciar em 0. Este comportamento pode ser alterado conforme nossas necessidades:
      Edit >> Preferences >> Protocols >> TCP >> (Habilite/Desabilite) Relative sequence numbers >> OK
      
 RECORTE A TELA DOS PACOTES CAPTURADOS E COLE NO RELATÓRIO

ETAPA 8 - Análise dos pacotes capturados

Nas análises a seguir use como apoio o número do pacote na primeira tela do Wireshark.


  1. Qual o número de sequência (normalizado pelo Wireshark) de cada segmento de dados transmitido (de PC1 para PC2) e qual o significado do número de reconhecimento em cada um deles?
  2. Como foi reconhecido cada segmento enviado?
  3. Pare o experimento no Imunes:
    Experiment >> Terminate
    

PARTE 3 - Transmissão com erros: retransmissões

ETAPA 9

  1. Inicie a simulação da rede no Imunes:
    Experiment >> Execute
    
    • Dica: para abrir um terminal de uma das máquinas da rede a ser simulada basta dar um duplo clique sobre a mesma.
  2. Copie o arquivo arq30Bytes.txt para a máquina Transmissor do Imunes. No terminal da máquina hospedeira (NÃO do Imunes) digite::
    sudo hcp arq30Bytes.txt Transmissor:
    
  3. Execute o Wireshark no Receptor:
    Clique direito do mouse sobre o ícone do Receptor >> Wireshark >> eth0..
    
  4. Execute o processo servidor no Receptor e prepare o mesmo para limitar a sua capacidade de recepção em cerca de 20 bytes (tamanho do buffer) e perda de dados em torno de 40%. Isto permitirá ver a quebra do arquivo de 30 bytes em alguns segmentos TCP:
    sysctl -w net.ipv4.tcp_rmem='20 20 20'
    tc qdisc replace dev eth0 root netem loss 40% 
    nc -vvnl -p 5555 > ArqRecebido.txt
    
    • Dica: para copiar textos para o Imunes, copie normalmente o texto, por exemplo, da Wiki, com o < Ctrl > + < C > e cole com < Ctrl > + < Shift > + < V > ou clicando sobre a rodinha (scroll) do mouse.
  5. Envie o arquivo arq30Bytes.txt da máquina Transmissor:
     nc -vvn 10.0.0.21 5555 < arq30Bytes.txt
    
    • Obs: Caso receba uma mensagem "No route to host", repita o comando acima. O problema é gerado por perdas sucessivas de mensagens de estabelecimento de conexão do TCP, devido à perda de dados estabelecida em 40%.
  6. Pare os processos rodando nos terminais do Transmissor e Receptor com:
    Ctrl + c
    
  7. Pare a captura de pacotes no Wireshark.
  8. Adicione o filtro tcp ao Wireshark, para limpar os dados apresentados.
 RECORTE A TELA E MOSTRE A CAPTURA DOS PACOTES (a tela 1 do WIreshark)

ETAPA 10

  1. Analise como os dados foram transmitidos e reconhecidos, respondendo as perguntas que se seguem:
  2. Perguntas:
    1. Houve perda de pacotes? Como você identificou isso?
    2. Os pacotes perdidos foram retransmitidos? Justifique.
  1. Pare o experimento no Imunes:
    Experiment >> Terminate
    

PARTE 4 - Testando a capacidade do TCP de enviar dados de forma duplex

  • Agora vamos fazer um pequeno teste de transmissão de arquivos entre dois PCs e observar o comportamento full-duplex.
  • No experimento, o arquivo de uma máquina será transmitido para outra e vice-versa.

NÃO É NECESSÁRIO COLOCAR TELAS NO RELATÓRIO. SOMENTE FAÇA UM TEXTO CONCLUINDO SOBRE A QUESTÃO FULL-DUPLEX NO TCP

  1. Inicie a simulação da rede no Imunes:
    Experiment >> Execute
    
  2. Num terminal da máquina do hospedeira/Linux (Não do Imunes) baixe os arquivos para o experimento e salve-os a pasta pessoal de seu usuário:
    cd ~
    wget -4 http://docente.ifsc.edu.br/odilson/RED29004/Servidor.tx -O Servidor.tx
    wget -4 http://docente.ifsc.edu.br/odilson/RED29004/Cliente.tx -O Cliente.tx
    
  3. Copie os arquivos para as máquinas do Imunes. No terminal da máquina hospedeira/Linux (NÃO do Imunes) digite:
    sudo hcp Servidor.tx Transmissor: 
    sudo hcp Cliente.tx Receptor:
    
  4. Execute o Wireshark no Receptor:
    Clique direito do mouse sobre o ícone do Receptor >> Wireshark >> eth0..
    
  5. Limite o tamanho do buffer do TCP tanto no Transmissor quanto Receptor:
    sysctl -w net.ipv4.tcp_rmem='10000 10000 10000' 
    tc qdisc replace dev eth0 root netem loss 0%
    
  6. No Transmissor, que fará o papel de servidor por aguardar a conexão do cliente, execute o comando abaixo. Perceba que o Servidor vai enviar (o sinal < indica isso) um arquivo e vai receber e salvar (o sinal > indica isso) outro do Cliente.
    nc -vvnl -p 5555 < Servidor.tx > Arq_recebido.rx
    
  7. No Receptor, que fará o papel de cliente, execute o comando abaixo. Perceba que ele também vai enviar e receber arquivo do servidor.
    nc -vvn 10.0.0.20 5555 < Cliente.tx > Arq_recebido.rx
    
  8. Pare os processos rodando nos terminais do Transmissor e Receptor com:
    Ctrl + c
    
  9. Confira o conteúdo dos arquivos recebidos no Transmissor e Receptor:
    cat Arq_recebido.rx
    

  10. Pare a captura de pacotes no Wireshark.
  11. Adicione o filtro tcp ao Wireshark, para limpar os dados apresentados.
  12. Analise como os dados foram transmitidos e reconhecidos.


AULA 12 - Dia 4/6/2021 - Camada de Transporte

Aula ANP Camada de Transporte TAREFA MT2.3 - QUESTIONÁRIO UDP E TCP

AULA 13 - Dia 9/6/2021 - Camada de Rede - IP Básico

  1. Introdução a camada de rede
  2. Estrutura do Pacote IP
  3. O processo de encaminhamento de pacotes

REFERÊNCIAS

Extra:

Laboratório 13 - Interligação de duas redes através de um roteador

LABORATÓRIO 13 - Interligação de duas redes através de um roteador

Objetivos do Laboratório

  1. Introdução ao mundo IP
  2. Verificação das configurações de interfaces de rede
  3. Verificação de tabelas de roteamento nos hospedeiros e no roteador
  4. Verificação de movimentação de pacotes (rotas) em roteadores

Usaremos como base a seguinte arquitetura de rede:

2 sub-redes com 1 roteador.png

Procedimento

  1. Baixe o arquivo de configuração da rede, no terminal digite:
    wget -4 http://docente.ifsc.edu.br/odilson/RED29004/Roteador_com_duas_redes.imn
    
  2. Execute o Imunes.
    sudo imunes
    
  3. Carregue o arquivo de configuração:
    File >> Open >> /home/aluno/Roteador_com_duas_redes.imn
    
  4. Inicie a simulação no Imunes:
    Experiment >> Execute
    
    • Ignore (dismiss) a mensagem de erro apresentada. O erro é proposital.
    • Observe que a rede é composta de 4 PCs (pc1 - pc4), 1 roteador (router1) e 2 switchs. O roteador possui duas interfaces de rede, com seus respectivos IPs - camada 3, que interliga as duas sub-redes. Cada switch tem 3 interfaces, mas sem IPs, camada 2.
  5. Anotar os endereços de hardware (ou MAC) e IP de cada dispositivo na rede. No terminal de cada PC execute:
    ifconfig
    
    ou
ip a
  1. Observar, interpretar e anotar a tabela de roteamento em todos os hospedeiros pc1 - pc4 e no roteador router1. Identificar os default gateways em cada PC.
    route -n
    
  2. Observar, "provar" e anotar que pacotes indo do pc1 para pc2 são enviados diretamente para pc2, ou seja, entrega direta. Explique a entrega direta.
    1. Deixe o ping entre pc1 e pc2, em pc1 execute:
      ping 10.0.0.21
      
    2. No router1 capture pacotes com o Wireshark na interface eth0:
      Clique com o botão direito do mouse sobre o router1 >> Wireshark >> eth0...
      
    3. Observe que não há tráfego de pacotes no router1, portanto, entrega direta.
  3. Observar, "provar" e anotar que pacotes indo de pc1 para pc4 são encaminhados ao roteador e, em seguida, entregues ao destino, ou seja, entrega indireta. Explique a entrega indireta.

Configuração básica de interface de rede

  1. No pc3 teste a conectividade com os demais PCs, por exemplo, fazendo pings para o pc1 e pc4:
    ping 10.0.0.20 
    ping 10.0.1.21
    
    • Perceba que não há conectividade, não há resposta aos pings, dado que a interface de rede do pc3 não está devidamente configurada.
  2. Assim sendo, configure a interface de rede no pc3.
    • Anote todos os comandos executados.
    1. Inicie configurando o IP com o comando ifconfig (man ifconfig) ou ip (man ip). Dica: Observe a configuração de rede do pc4, que está na mesma sub-rede, e tente adaptá-la para o pc3.
      • Assim que a configuração do IP for bem sucedida o ping para o pc4 deverá funcionar.
    2. Tente "pingar" para o pc1. Ainda não haverá sucesso, pois não há um roteador devidamente configurado no pc3.
    3. Configure o roteador default no pc3 com o comando route (man route).
      • Assim que a configuração do roteador for bem sucedida o ping para o pc1, e qualquer outro PC da rede, deverá funcionar.
    4. O mesmo deverá ser capaz de "pingar" para qualquer outro PC ou ser "pingado".
    5. Execute o comando ping do pc3 para o pc4. Obteve sucesso? Se não corrija as configurações.
    6. Execute o comando ping do pc3 para o pc1. Obteve sucesso? Se não corrija as configurações.
    7. Execute o comando ping do pc2 para o pc3. Obteve sucesso? Se não corrija as configurações.

AULA 14 - DIA 18/6/2022

ANP Sábado

Camada de Rede

AULA 15 - DIA 23/6/2022

  1. Introdução a camada de rede
  2. Estrutura do Pacote IP
  3. O processo de encaminhamento de pacotes

REFERÊNCIAS

Extra:

Laboratório 14 - Roteamento Estático - Entrega Direta e Indireta - Campo TTL


LABORATÓRIO 14 - Roteamento Estático - Entrega Direta e Indireta - Campo TTL

Tabelas Estáticas de Roteamento

Objetivos

  • Analisar o funcionamento de roteadores com tabelas estáticas de roteamento.
  • Verificar a entrega direta e indireta de pacotes.
  • Analisar loops em rede.

Arquitetura de rede

Em todos os experimentos será utilizado como base a seguinte arquitetura de rede:

3 roteadores tab estaticas.png

PROCEDIMENTO 1 - Verificação e Configuração de Tabelas Estáticas de Roteamento

ETAPA 0

Prepare um arquivo no googledrive (logar no domínio IFSC). Coloque como título LAB14-RCO. Coloque o seu nome. Resitre as etapas conforme solicitado na sequência.

ETAPA 1

  1. Baixe o arquivo de configuração da rede. No terminal digite:
    wget -4 http://docente.ifsc.edu.br/odilson/RED29004/3_roteadores_tab_estaticas.imn
    
  2. Execute o Imunes.
  3. Carregue o arquivo de configuração:
    File >> Open >> /home/aluno/3_roteadores_tab_estaticas.imn
    
  4. Inicie a simulação no Imunes:
    Experiment >> Execute
    
    • Observe que a rede é composta de 3 PCs (pc0 - pc2) e 3 roteadores roteador (R0 - R2).
  5. Teste a conectividade de enlace e a configuração do default gateway.
    1. No pc0 execute o comando:
       ping 10.0.0.1
      
      Obteve sucesso? Sim ou não e por quê?
    2. Teste a conectividade do pc0 executando o comando:
       ping 10.0.10.1
      
      Obteve sucesso? Sim ou não e por quê? Qual foi o erro observado?
    3. Por exemplo, no pc0 execute o comando:
       ping 10.0.10.2
      
      Obteve sucesso? Sim ou não e por quê? Qual foi o erro observado?
 RECORTE A TELA E COLE NO RELATÓRIO

ETAPA 2

  1. Configure o roteador padrão em todos os PCs. Adapte o comando exemplo do pc0 para todos os PCs:
     route add -net default gw 10.0.0.1
    
    • Com este comando estamos: i) adicionando (add) uma rota ii) do tipo rede (net) iii) rota padrão (default), que é equivalente a 0.0.0.0 iv) com o roteador (gw - gateway) v) 10.0.0.1 que identifica a interface do roteador, R0, diretamente conectado ao host pc0, no caso.
    1. Teste novamente a conectividade, no pc0 execute o comando:
       ping 10.0.10.1
      
      e
       ping 10.0.10.2
      
      Obteve sucesso? O comportamento foi o mesmo das tentativas anteriores? Sim ou não e por quê? Qual foi o erro observado?
 RECORTE A TELA E COLE NO RELATÓRIO

ETAPA 3

  1. Com os ping do item anterior ativos (um a cada tempo) rode o Wireshark no R0 (clique com o botào direito do mouse sobre o R0 e em seguida no menu wireshark eth0).
    1. Qual a origem e destino dos pacotes? Explique?
    2. Qual a diferença no ping entre os dois itens?
RECORTE A TELA DO WIRESHARK E COLE NO RELATÓRIO.

ETAPA 4

  1. Iniciando o roteamento.
    1. Deixe o ping do do pc0 para o R1 e o wireshark - eth0 no R0 rodando e estabeleça uma rota no roteador R1 com o comando:
       route add -net 10.0.0.0/24 gw 10.0.10.1
      
      O que ocorreu com o ping e o wireshark? Por quê?
      • Com este comando estamos: i) adicionando (add) uma rota ii) do tipo rede (net) iii) para a rede 10.0.0.0/24 iv) com o roteador (gw - gateway) v) 10.0.10.1 que identifica a interface do roteador, R0, diretamente conectado ao roteador R1.
    2. Em todos os roteadores crie rotas para todas as redes. Em cada roteador deve-se criar 3 rotas, para as sub-redes "distantes", não diretamente conectadas. Lembre-se que os enlaces diretos já criam automaticamente rotas para as respectivas sub-redes diretamente conectadas ao equipamento, ou seja, entrega direta. Se tudo estiver correto, todos os PCs e roteadores devem pingar entre si.
      • Crie rotas sempre pelo caminho mais curto, por exemplo, do R0 para a rede do pc1 e pc2 passando por R1 e para R2 respectivamente.
    3. Trace e anote as rotas entre os hosts através do traceroute.
 RECORTE AS TELAS MOSTRANDO UM PING ENTRE REDES FUNCIONANDO. MOSTRE TAMBÉM AS TABELAS DE ROTEAMENTO DE TODOS OS ROTEADORES.
 EXPLIQUE A TABELA DE ROTEAMENTO DE R1.

ETAPA 5 - Testando a queda de enlace.

  1. Com todas as rotas em perfeito funcionamento, gere um ping do pc0 para o pc2 e execute wireshark eth0 no R0 , em seguida "derrube" o enlace entre o R0 e R2. Por exemplo, no R2 execute o comando:
     ifconfig eth1 down
    
    ou
     ip link set eth1 down
    
    O que ocorreu com o ping e o wireshark? Por quê? Com este enlace comprometido qual seria a solução para a continuidade de funcionamento de toda a rede?

PROCEDIMENTO 2 - Testando o campo TTL com loop na rede

ETAPA 1

  1. Baixe o arquivo de configuração da rede, no terminal digite:
    wget -4 http://docente.ifsc.edu.br/odilson/RED29004/3_roteadores_tab_estaticas_com_loop.imn
    
  2. Execute o Imunes.
  3. Carregue o arquivo de configuração:
    File >> Open >> /home/aluno/3_roteadores_tab_estaticas_com_loop.imn
    
  4. Inicie a simulação no Imunes:
    Experiment >> Execute
    
  5. Execute o Wireshark na interface eth1 de todos os roteadores e na interface eth0 do pc0.

ETAPA 2

  1. Gere um tráfego único a partir do pc0 para o pc2:
    ping -c1 10.0.2.20
    
  2. Pare a captura em todos os Wiresharks.
  3. Qual mensagem de erro foi recebida no terminal do pc0?
  4. Analisando as capturas dos Wireshark responda:
    1. Aproximadamente em qual roteador o pacote foi descartado? Procure pelo menor valor de ttl.
    2. Qual o significado da linha com o seguinte conteúdo parcial: Time-to-live exceeded (Time to live exceeded in transit)?
    3. Explique qual o objetivo do campo ttl no cabeçalho IP?
RECORTE AS TELAS NECESSÁRIAS PARA DOCUMENTAR A ETAPA.

AULA 16 - DIA 30/6/2022

Após esta aula o aluno deverá:

  • Utilizar o conceito de máscaras de tamanho variável para projetar subredes (co apoio de software)

REFERÊNCIAS

EXERCÍCIO PARA CÁLCULO DE SUBREDE

Um provedor de acesso a Internet possui o seguinte bloco de endereços IP: 10.17.192.0/18. Os endereços IP de 10.17.192.0 até 10.17.207.255 já estão alocados para clientes deste provedor (números fictícios). Este provedor precisa atender a 3 novos clientes. uUm deles necessita de rede com pelo menos 2000 endereços de IP válidos. Os demais necessitam de rede com pelo menos 60 e 40 IP válidos.

1) Faça uma proposta para alocação de endereços IP para estes clientes. Construa uma tabela com o nome da rede, endereço e máscara da subrede, a faixa de endereçamento de hospedeiros e o número toral de hospedeiros.

2) Baixe o arquivo abaixo e construa uma rede "roteável" externamente para todas as redes projetadas acima. Coloque pelo menos dois PCs em cada rede. Estes PCs deverão estar nos limites iniciais da faixa. O endereço final da faixa deve ficar no roteador da rede.

Fazer:

 a) Todas as configurações de IPs  (salvar o arquivo)
 b) Todas as configurações de rede (salvar o arquivo)
 c) Testar a conectividade entre redes ISP
 d) Testar a conectividade a partir do mundo externo

REGISTRAR as tabelas de roteamento dos roteadores no relatório do experimento. Fazer uma TELA do ping do pc externo para um PC dentro do ISP, mostrando que as rotas estão funcionando.

USAR o arquivo base: LabSubredes.imn

AULA 17 - DIA 07/7/2022

Tecnologia de Enlace Ethernet

Objetivos

  • Compreender que Ethernet não é Internet e que não é necessário o mundo IP para haver comunicação.
  • Compreender o papel do protocolo ARP

Fonte Base

Animação Pearson/Kurose

Funcionamento de um Switch
Laboratório 16 - Tecnologia Ethernet

Laboratório Tecnologia Ethernet

PARTE 1 - Explorando o SWITCH e o endereço de Broadcast Ethernet

  1. Baixe o arquivo de configuração da rede, no terminal digite:
    wget -4 http://docente.ifsc.edu.br/odilson/Redes/switch.imn
    
  2. Execute o Imunes.
  3. Carregue o arquivo de configuração:
    File >> Open >> /home/aluno/switch.imn
    
  4. Inicie a simulação no Imunes:
    Experiment >> Execute
    
  5. Identificar o endereço de Hardware (MAC) do PC2. Use o ifconfig ou ip. Note que NÃO existe endereço IPv4 configurado.
  6. Baixe o arquivo MacEnvioMsg.py, no terminal da máquina real digite:
    wget -4 https://docente.ifsc.edu.br/odilson/Redes/MacEnvioMsg.py
    
  7. Copiar o arquivo para a Máquina Virtual PC1. No terminal da máquina real digite:
    sudo hcp /home/aluno/MacEnvioMsg.py pc1:
    
  8. Executar o Wireshark no PC2, PC3 e PC4.
  9. No PC1 enviar uma mensagem para o PC2 usando o endereço de hardware (MAC) identificado anteriormente, Lembre-se se substituir o ENDERECO_MAC pelo MAC adequado:
    python MacEnvioMsg.py -s ENDERECO_FONTE -d ENDERECO_MAC -i Alo-Mundo
    
    • Observe nos Wiresharks quem recebeu a mensagem.
    • Somente o PC2 deve receber pois o switch entrega o quadro somente para a porta de saída associada ao respectivo MAC destino.
    • CASO todos PCs tenham recebido, isto é devido ao fato de o switch ainda não ter aprendido quem está conectado em cada porta. Neste caso, num segundo envio, o switch já terá associado os MAC dos PCs às respectivas portas e o envio deve ser somente ao PC2.
  10. Perguntas:
    1. Quais PCs receberam a mensagem?
    2. Quantas e quais camadas se observa na mensagem? Obs.: observe a janela intermediária do Wireshark.
    3. Quais foram os MACs de origem e destino? A que PCs pertencem os mesmos?
    4. Há camada de rede, IP, na mensagem?
  11. No PC1 enviar uma mensagem em broadcast (endereço FF:FF:FF:FF:FF:FF)
    python MacEnvioMsg.py -s ENDERECO_FONTE -d FF:FF:FF:FF:FF:FF -i GritoNaRede
    
  12. Perguntas:
    1. Quais PCs receberam a mensagem?.
    2. Quais foram os MACs de origem e destino? A que PCs pertencem os mesmos?

PARTE 2 - Explorando o ARP

O protocolo ARP serve como apoio para descoberta do endereço MAC dado que se sabe o endereço IP de uma máquina. Quando um PC deseja enviar um pacote IP para uma máquina na rede local, ele necessita descobrir o endereço MAC desta máquina. O protocolo ARP usa o broadcast ETHERNET para perguntar para todas as máquinas na rede QUEM tem o endereço IP em questão. A máquina que possui o endereço responderá informando o seu MAC.

  1. Configure o IP de todos os PCs. Todos devem pertencer a rede 10.0.0.0/24. Por exemplo, no pc1:
    ifconfig eth0 10.0.0.1/24
    
  2. Rode o Wireshark no PC2.
  3. Faça um ping do PC1 no PC2 e observe a sequência de pacotes trocados. Faça um diagrama no tempo mostrando a troca de pacotes até a realização do ECHO REQUEST do ping. Os resultados do Wireshark devem ser similares a: Troca de pacotes ARP e PING
  4. Confira e anote o cache do arp no PC1 fazendo:
      arp -a
    
  5. Confira e anote o cache do arp no PC2 fazendo:
      arp -a
    
  6. Confira e anote o cache do arp no PC3 fazendo:
      arp -a
    
    1. Faça um ping do PC1 no PC3.
    2. Confira e anote novamente o cache do arp no PC3 fazendo:
        arp -a
      
      • A tabela foi atualizada após o ping?

AULA 18 - DIA 14/7/2022

Objetivos

  • Introdução ao IPv6
  • Introdução ao DHCP e NAT


Referências Adicionais

Laboratório 17 - Introdução ao DHCP

PARTE 1 - Laboratório DHCP

Atenção: Relatório simplificado. Fazer somente

ETAPA 1

Criar uma rede simples com um servidor e um pc conforme orientado pelo professor.

  • Desconfigurar o ip do PC

ETAPA 2

No servidor (host1) ir em /etc/dhcp

Editar o arquivo dhcp.conf da forma:


subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.50  10.0.0.100;
  option routers ip_do_roteador;
}

ETAPA 3

Criar um arquivo leases vazio:

touch /var/lib/dhcp/dhcpd.leases

ETAPA 5

Partir o servidor:

 dhcpd -cf ./dhcpd.conf

ETAPA 6

Colocar o wireshark escutando na eth0 no host1

ETAPA 7

Executar dhclient no pc1:

  dhclient eth0

ETAPA 8

Conferir a configuração do pc1

ETAPA 9

Cortar e colar no MINI-RELATÓRIO os pacotes correspondentes a troca de msgs de DHCP. Discutir se troca de msgs coincide com o que foi apresentado nos slides.

AULA 19 - Dia 21/07/2022 - Avaliação 2

Aula com laboratório avaliativo.

  • VER PDF no SIGAA

PARTE 2 - Neighbor Discovery e roteamento estático no IPv6

Roteiro do Prof.Odilson baseado no material disponível no Livro - Laboratório de IPv6.

Slides de endereçamento IPv6.

Objetivos do laboratório:

  • Um primeiro contato com o protocolo IPv6
  • Compreender o funcionando do Neighbor Discovery, o equivalente ao ARP (Address Resolution Protocol) do IPv4, que em resumo é uma tabela contendo a relação ente IPs e MACs.
  • Aprender configurações básicas de interfaces IPv6 no Linux
  • Aprender configurações básicas de rotas IPv6

Introdução teórica

Obs.: texto copiado literalmente de: Laboratório de IPv6.

A descoberta de vizinhança por meio do protocolo Neighbor Discovery no IPv6 é um procedimento realizado pelos nós de uma rede para descobrir endereços físicos dos dispositivos vizinhos presentes no mesmo enlace. A função deste protocolo se assemelha à função do ARP e do RARP no IPv4.

  • O procedimento é iniciado quando um dispositivo tenta enviar um pacote cujo endereço físico de destino é desconhecido. O nó solicitante envia uma mensagem Neighbor Solicitation (NS) para todos os nós do enlace pertencentes ao grupo multicast solicited-node (ff02::1:ffXX:XXXX), de modo que XX:XXXX são os últimos 24 bits do endereço IPv6 em que está interessado.
  • É possível notar que, por uma coincidência dos últimos 24 bits, é bastante provável que apenas o nó de destino faça realmente parte deste grupo. Isto é um truque interessante do IPv6 para diminuir o tráfego deste tipo de pacote na rede.
  • Na mensagem NS, o endereço IPv6 a ser resolvido é informado no campo Target. O campo Source link-layer address informa ao nó de destino o endereço MAC do nó de origem, poupando-o de ter que fazer o mesmo procedimento no sentido inverso.
  • O nó de destino, dono do IPv6 requisitado, ao receber este pacote, envia uma mensagem Neighbor Advertisement (NA) como resposta diretamente ao nó requisitante. O seu endereço físico será informado no campo Target link-layer address.
  • A informação de mapeamento entre endereços IP e endereços físicos é armazenada em uma tabela chamada neighbor cache. Nela também fica registrado o status de cada destino, informando se o mesmo é alcançável ou não.

Roteiro de atividades:

Laboratório 18 - Básico do Ipv6

A figura abaixo apresenta o diagrama esquemático da rede a ser montada/analisada. Observe que todos os IPv6 Global Unicast já estão definidos na mesma, são esses IPs que utilizaremos em nosso experimento.

IPv6.png

  1. Baixe o arquivo de configuração da rede, no terminal digite:
    wget -4 http://docente.ifsc.edu.br/odilson/RED29004/IPv6.imn
    
  2. Execute o Imunes.
  3. Carregue o arquivo de configuração:
    File >> Open >> /home/aluno/IPv6.imn
    
  4. Inicie a simulação no Imunes:
    Experiment >> Execute
    
    • Ignore a mensagem de erro, o mesmo é proposital.
    • Observe que a rede é composta de 4 PCs (pc0 - pc3) e 2 roteadores (R0 - R1) e 1 switch.
  5. Execute o wireshark em R1:
    clique com o botão direito do mouse sobre seu ícone >>  Wireshark >> eth0...
    
  6. Vamos testar o Neighbor Discovery, anote a saída do comando. A partir do pc2 execute:
    ndisc6 -m fc00:2::1 eth0
    
    • Esse comando descobre e retorna o MAC address da interface de rede que possui o endereço IPv6 informado. É equivalente ao protocolo ARP do IPv4.
  7. Observe que todas as interfaces de rede já estão pré-configuradas, exceto do pc3.
  8. Vamos adicionar o endereço IPv6 à interface de rede no pc3:
    ip addr add fc00:2::21/64 dev eth0
    
  9. Faça um ping6 entre o pc3 ao pc2:
    ping6 fc00:2::20
    
    • Se tudo estiver devidamente configurado, deve-se obter sucesso no ping entre o pc3 e pc2. Entrega direta ou indireta?
  10. Faça um ping6 entre o pc3 ao pc0.
    • Obteve sucesso? Sim ou não e por quê?
  11. No pc3 use o seguinte comando para verificar como ficou a configuração dos endereços da interface de rede. O resultado é similar ao apresentado pelo comando ifconfig:
    ip addr show dev eth0
    
  12. No pc3, liste a tabela de roteamento com o comando:
    ip -6 route show
    
  13. No pc3, acrescente o default gateway com o seguinte comando:
    ip -6 route add default via fc00:2::1 dev eth0
    
    • Confira novamente a tabela de roteamento do pc3.
  14. Faça novamente um ping6 entre o pc3 ao pc0.
    • Obteve sucesso? Sim ou não e por quê?
  15. Pode-se conferir se as rotas, nos roteadores ou qualquer host, com o comando:
    ip -6 route show
    
  16. A partir do computador pc0 use o comando traceroute6 IPv6_DE_DESTINO e anote a rota para todos os demais PCs. Ex:
    traceroute6 fc00:1::20
    
  17. Pare a captura no Wireshark.
  18. Baseado na captura de pacotes do Wireshark explique o processo de descoberta de vizinhança (Neighbor Solicitation - NS e Neighbor Advertisement - NA), citando os endereços de multicast e link local utilizados. Obs.: ao final do roteiro há alguns exemplos de mensagens.
  19. Numa mensagem do tipo Neighbor Solicitation qual é o endereço IPv6 de origem e destino? Explique/defina ambos.
  20. Em todos os hosts rode o comando
     ip -6 neighbor show
    
    1. Qual é a funcionalidade desse comando?
    2. Qual é o significado do conteúdo dessa tabela?
    3. A tabela mostrada em cada um dos casos é compatível com o diagrama da rede montado?
    4. Por que, por exemplo, na tabela do pc2 não há uma referência explícita ao pc0?
  21. Explique sucintamente as diferenças na comunicação baseada em IPv4 e IPv6.
  • Alguns exemplos de campos visualizáveis para uma mensagem do tipo Neighbor Advertisement, presentes nas camadas destacadas:
  1. Source (camada Ethernet)
    • A origem é o endereço MAC da interface do dispositivo que enviou a resposta.
  2. Protocol (camada Ethernet)
    • Indica que a mensagem utiliza IPv6.
  3. Next header (camada IPv6)
    • Indica qual é o próximo cabeçalho. Neste caso, o valor 58 (0x3a) refere-se a uma mensagem ICMPv6.
  4. Source (camada IPv6)
    • A origem é o endereço IP da interface diretamente ligada ao enlace em que a requisição foi recebida.
  5. Destination (camada IPv6)
  6. Type (camada ICMPv6)
    • Indica que a mensagem é do tipo 136 (Neighbor Advertisement).
  7. Flags (camada ICMPv6)
    • Uma mensagem NA possui três flags:
    1. Indica se quem está enviando é um roteador. Neste caso, o valor marcado é 0, pois não é um roteador.
    2. Indica se a mensagem é uma resposta a um NS. Neste caso, o valor marcado é 1, pois é uma resposta.
    3. Indica se a informação carregada na mensagem é uma atualização de endereço de algum nó da rede. Neste caso, o valor marcado é 1, pois está informando o endereço pela primeira vez.
  8. Target Address (camada ICMPv6)
    • Indica o endereço IP associado às informações das flags. Neste caso, é o próprio endereço da interface do dispositivo em questão.

AULA 20 - Dia 23/07/2022 - Recuperações - Conteúdo adicional de Endereçamento IPv4 e IPv6

  • Aula presencial de atividade de recuperação da A2
  • Proposição de tarefa no SIGAA