Acessibilidade:Áudio:1,0×
Capacitação DigitalPrograma Nacional — Moçambique
Módulo 1 de 13 · Redes Avançadas e Introdução à Segurança Cibernética

Fundamentos de Redes de Dados

Progresso neste dispositivo0/5

Modelos e camadas de comunicação

  • Texto: disponível
  • Síntese em leitura fácil: disponível
  • Leitura em voz alta pelo navegador: disponível
  • Alto contraste e navegação por teclado: controlos disponíveis
  • Vídeo e legendagem: por produzir
  • Língua de Sinais Moçambicana: por produzir
  • Revisão de acessibilidade por terceiros: por realizar

Os controlos de acessibilidade existem e funcionam. Isso não equivale a uma revisão de acessibilidade feita por terceiros: essa revisão está proposta e ainda não foi realizada.

Duração: 70 minutos (explicação 20, prática guiada 40, verificação 10). Resultados dos TdR trabalhados: Conceber, configurar e administrar redes pequenas, médias e grandes; Competências profissionais e de formador replicador.

Objectivos

  • Explicar as camadas do modelo TCP/IP e a sua correspondência com o modelo OSI.
  • Identificar, numa captura, cabeçalhos Ethernet, IP e TCP/UDP de um mesmo pacote.
  • Criar e desfazer a rede de prática isolada usada em todo o curso.

Porque se fala em camadas

Uma comunicação em rede é dividida em funções independentes. Cada camada resolve um problema e entrega o resultado à camada seguinte: a aplicação produz dados; o transporte (TCP ou UDP) separa conversas por portas; a rede (IP) leva o pacote de um endereço a outro, atravessando encaminhadores; a ligação (Ethernet, Wi-Fi) leva a trama ao vizinho seguinte; a camada física transforma bits em sinal eléctrico, luz ou rádio.

O modelo OSI tem sete camadas (física, ligação de dados, rede, transporte, sessão, apresentação, aplicação); o modelo TCP/IP, usado na prática, junta as três superiores numa camada de aplicação. O OSI continua útil como vocabulário de diagnóstico: dizer «o problema é de camada 2» significa que a trama não chega ao vizinho, mesmo que o endereço IP esteja certo.

Encapsulamento

Quando o pc-adm pede uma página ao servidor, o pedido HTTP é colocado num segmento TCP (porta de destino 80), este num pacote IP (origem 10.10.10.10, destino 10.10.20.53) e este numa trama Ethernet (endereços MAC do pc-adm e do r1). Em cada encaminhador a trama é substituída por outra; o pacote IP mantém origem e destino (salvo NAT, módulo 3).

Esta ideia explica porque é que o endereço MAC muda em cada troço e o IP não, e porque é que um filtro de firewall pode decidir por endereço IP (camada 3) ou por porta (camada 4).

Caso fictício

Na DPE (fictícia), o técnico Manuel recebe a queixa «a internet não funciona» vinda da Administração. Sem método, reinicia o encaminhador e interrompe toda a sede. Nesta lição a turma aprende a descrever o problema por camadas antes de agir.

Prática guiada em rede isolada

Rede de prática fictícia, criada dentro de um computador de prática com o script base (módulo 1, lição 1). Nunca use estes passos na rede de produção nem contra endereços reais. As saídas mostradas são exemplos didácticos, não resultados de uma execução.

Topologia (descrição em texto)

  • pc-adm (10.10.10.10) — ligado a r1 pela VLAN 10.
  • srv (10.10.20.53) — ligado a r1 pela VLAN 20.
  • r1 (encaminhador da sede) — ligado a pc-adm, srv, r2 e isp.
  • r2 (encaminhador da delegação) — ligado a r1 e a pc-del (10.20.10.10).
  • isp (operador simulado) — ligado a r1 e ao servidor externo 198.51.100.10 (endereço dentro de isp).

Passos

  1. Numa máquina virtual Debian 12 descartável e isolada, guarde e corra primeiro a pré-verificação lab-verificar.sh. Só avance se terminar com «Pré-verificação OK» (sem colisões de nomes nem dependências em falta).

    #!/bin/sh
    # lab-verificar.sh — pré-verificação da rede de prática DPE (fictícia).
    # Não cria nem apaga nada. Termina com código 1 se houver colisão ou dependência em falta.
    erro=0
    [ "$(id -u)" = 0 ] || { echo 'Executar como root na VM de prática.'; exit 1; }
    if systemd-detect-virt -q 2>/dev/null; then echo "Virtualização: $(systemd-detect-virt)"; else echo 'AVISO: não parece ser uma máquina virtual. Use uma VM descartável.'; erro=1; fi
    for n in pc-adm srv r1 r2 pc-del isp; do
      if ip netns list | awk '{print $1}' | grep -qx "$n"; then echo "Colisão: espaço de nomes $n já existe."; erro=1; fi
    done
    for d in ip tcpdump tshark python3 nft; do command -v $d >/dev/null || { echo "Em falta: $d"; erro=1; }; done
    echo 'Pacotes Debian 12 necessários (instalar a partir de espelho/cópia local aprovada, antes da aula): iproute2 tcpdump tshark python3 nftables. Opcionais por lição: frr kea-dhcp4-server bind9 rsyslog chrony wireguard-tools suricata iperf3 snmp arping traceroute.'
    [ $erro = 0 ] && echo 'Pré-verificação OK.' || echo 'Pré-verificação FALHOU: corrigir antes de criar a rede.'
    exit $erro
  2. Guarde o script base num ficheiro lab-base.sh, torne-o executável e corra-o como administrador do computador de prática.

    #!/bin/sh
    # lab-base.sh — rede de prática isolada DPE (fictícia). Só em computador de prática.
    set -e
    for n in pc-adm srv r1 r2 pc-del isp; do ip netns add $n; done
    ligar() { ip link add $1-$2 type veth peer name $2-$1; ip link set $1-$2 netns $1; ip link set $2-$1 netns $2; }
    ligar pc-adm r1; ligar srv r1; ligar r1 r2; ligar r2 pc-del; ligar r1 isp
    ip -n pc-adm addr add 10.10.10.10/24 dev pc-adm-r1
    ip -n r1 addr add 10.10.10.1/24 dev r1-pc-adm
    ip -n srv addr add 10.10.20.53/24 dev srv-r1
    ip -n r1 addr add 10.10.20.1/24 dev r1-srv
    ip -n r1 addr add 10.255.0.1/30 dev r1-r2
    ip -n r2 addr add 10.255.0.2/30 dev r2-r1
    ip -n r2 addr add 10.20.10.1/24 dev r2-pc-del
    ip -n pc-del addr add 10.20.10.10/24 dev pc-del-r2
    ip -n r1 addr add 203.0.113.2/24 dev r1-isp
    ip -n isp addr add 203.0.113.1/24 dev isp-r1
    ip -n isp addr add 198.51.100.10/32 dev lo
    for n in pc-adm srv r1 r2 pc-del isp; do ip -n $n link set lo up; for i in $(ip -n $n -o link show | awk -F': ' '{print $2}' | cut -d@ -f1 | grep -v '^lo$'); do ip -n $n link set $i up; done; done
    ip netns exec r1 sysctl -qw net.ipv4.ip_forward=1
    ip netns exec r2 sysctl -qw net.ipv4.ip_forward=1
    ip -n pc-adm route add default via 10.10.10.1
    ip -n srv route add default via 10.10.20.1
    ip -n pc-del route add default via 10.20.10.1
    echo 'Rede DPE criada (sem rotas entre sede e delegação: ver módulo 3).'
    
    # depois de guardar:
    chmod +x lab-base.sh && sudo ./lab-base.sh
  3. Guarde também o script de reversão lab-remover.sh.

    #!/bin/sh
    # lab-remover.sh — limpa apenas os espaços de nomes da rede de prática DPE.
    for n in pc-adm srv r1 r2 pc-del isp; do
      ip netns list | awk '{print $1}' | grep -qx "$n" || continue
      for p in $(ip netns pids $n); do echo "$n: a terminar PID $p ($(cat /proc/$p/comm 2>/dev/null))"; kill -TERM $p; done
      sleep 2
      resto=$(ip netns pids $n)
      if [ -n "$resto" ]; then echo "$n: ainda activos: $resto — verifique manualmente (kill -KILL <PID>) e volte a correr."; continue; fi
      ip netns del $n && echo "$n: apagado"
    done
    echo 'Espaços de nomes extra criados em lições (t1..t3, sw, rt, a1, s1, vis, casa, sa..sc) têm reversão própria em cada lição.'
    echo 'NÃO é reversão total: ficheiros em /tmp criados pelas lições e pacotes instalados na VM não são removidos por este script; confira a secção «Reverter» de cada lição. A forma segura de repor tudo é descartar a VM.'
  4. Confirme os espaços de nomes criados e o endereço do pc-adm.

    sudo ip netns list
    sudo ip -n pc-adm -brief addr

    Saída de exemplo (didáctica):

    pc-adm-r1@if5   UP   10.10.10.10/24
    lo              UNKNOWN 127.0.0.1/8 ::1/128
  5. Numa segunda consola, capture no r1 enquanto o pc-adm envia um ping ao servidor.

    sudo ip netns exec r1 tcpdump -ni r1-pc-adm -e -c 2 icmp
    sudo ip netns exec pc-adm ping -c 1 10.10.20.53

    Saída de exemplo (didáctica):

    aa:aa:aa:00:00:10 > aa:aa:aa:00:00:01, ethertype IPv4 (0x0800), length 98: 10.10.10.10 > 10.10.20.53: ICMP echo request
    aa:aa:aa:00:00:01 > aa:aa:aa:00:00:10, ethertype IPv4 (0x0800), length 98: 10.10.20.53 > 10.10.10.10: ICMP echo reply
  6. Identifique na saída o que pertence à camada 2 (endereços MAC, ethertype) e à camada 3 (endereços IP). Os MAC reais do seu computador serão diferentes dos do exemplo.

Critérios de sucesso

  • O comando ip netns list mostra os seis espaços de nomes.
  • O ping do pc-adm ao srv recebe resposta (o r1 encaminha entre as duas redes).
  • O formando aponta correctamente, na captura, os campos de camada 2 e de camada 3.

Como desfazer (reversão)

  • sudo ./lab-remover.sh termina os processos de cada espaço de nomes do laboratório (PID a PID) e só depois apaga esses espaços de nomes; se algum processo resistir, o script avisa e não apaga.
  • Não é reversão total: ficheiros em /tmp e pacotes instalados ficam; a forma segura de repor tudo é descartar a máquina virtual.

Alternativa em papel: tarefas e respostas esperadas

Ordene de cima para baixo as camadas TCP/IP e diga a unidade de dados de cada uma.
Aplicação (dados/mensagem); transporte (segmento TCP ou datagrama UDP); rede/Internet (pacote); ligação (trama); física (bits).
Na saída de exemplo do passo 4, que campo muda quando o pacote passa do r1 para o srv?
Os endereços MAC (nova trama no troço r1–srv). Os endereços IP 10.10.10.10 e 10.10.20.53 mantêm-se.
Reescreva a queixa «a internet não funciona» em três perguntas por camadas.
Física/ligação: o cabo ou o Wi-Fi está ligado e com ligação? Rede: o computador tem endereço e alcança a porta 10.10.10.1? Aplicação: o nome do sítio resolve (DNS) e o serviço responde?

Verifique o que aprendeu

Questão 1

Um pacote vai do pc-adm (10.10.10.10) ao srv (10.10.20.53) passando pelo r1. O que se mantém de ponta a ponta?

  1. Os endereços MAC de origem e destino
  2. Os endereços IP de origem e destino
  3. O número da VLAN
  4. Nada se mantém
Ver resposta comentada

Resposta: Os endereços IP de origem e destino

A camada 3 é de ponta a ponta; a trama (camada 2) é refeita em cada troço. A VLAN é local a cada ligação. A excepção é o NAT, que altera endereços IP de propósito.

Questão 2

Um utilizador tem endereço IP correcto mas o cabo está partido. Em que camada está o problema?

  1. Aplicação
  2. Transporte
  3. Física
  4. Rede
Ver resposta comentada

Resposta: Física

Sem sinal não há trama nem pacote: a configuração IP pode estar perfeita e mesmo assim nada passa. Por isso o diagnóstico começa por baixo.

Em leitura fácil

  • A rede funciona por andares, chamados camadas.
  • Cada andar faz um trabalho: o cabo leva sinal, o IP leva o pacote ao destino, a aplicação mostra a página.
  • Quando algo falha, veja primeiro o andar de baixo.

Fontes

  • IETF RFC 791 — Internet Protocol (https://www.rfc-editor.org/rfc/rfc791)
  • IETF RFC 1918 — Address Allocation for Private Internets (https://www.rfc-editor.org/rfc/rfc1918)
  • IETF RFC 5737 — IPv4 Address Blocks Reserved for Documentation (https://www.rfc-editor.org/rfc/rfc5737)
  • Linux iproute2 — páginas de manual ip(8), ip-netns(8), bridge(8), tc(8) (https://man7.org/linux/man-pages/man8/ip.8.html)
  • tcpdump/libpcap — manual tcpdump(1) e pcap-filter(7) (https://www.tcpdump.org/manpages/)

Progresso apenas neste aparelho. Sem sessão iniciada com matrícula numa turma deste curso, o que marcar fica guardado só aqui e não conta para a sua formação.

Marcar uma lição como feita não regista presença, não dá aprovação nem emite certificado.