Camada de Rede

História e Arquitetura da Internet

Origens e Estrutura

  • history ARPANET (1969): Primeira rede de comutação de pacotes, financiada pela DARPA (Kurose 4.1.1, Tanenbaum 5.6.1). Conectava universidades e centros de pesquisa, introduzindo o conceito de roteamento dinâmico.
  • public Tiers:
    • Tier 1: Backbones globais (e.g., AT&T, Level 3), sem pagamento por tráfego (Tanenbaum 5.6.3).
    • Tier 2: ISPs regionais, conectam-se a Tier 1 via peering pago.
    • Tier 3: ISPs locais, conectam usuários finais.
  • swap_horiz Peering & IXPs: Pontos de troca de tráfego (Internet Exchange Points) reduzem latência e custos. Exemplo: IX.br (Brasil). Neutralidade de rede garante tráfego equitativo (Kurose 4.1.2).
  • layers Modelo TCP/IP: Camada de Rede (Internet Layer) usa IPv4/IPv6, independente de hardware, garantindo interoperabilidade (Tanenbaum 5.5).

Leitura: Kurose & Ross, Capítulo 4.1; Tanenbaum & Wetherall, Capítulo 5.6.

Atividade Prática: Explore a topologia da Internet com o comando Linux traceroute google.com em uma VM para identificar saltos e ISPs.

traceroute_example.sh
$ sudo apt install traceroute
$ traceroute google.com

Exemplo Prático: Traceroute Global

traceroute_analysis.sh
$ traceroute google.com
1 192.168.1.1 (router local) 1.2ms
2 10.100.50.1 (ISP) 12.5ms
3 200.150.100.25 (IX.br São Paulo) 18.7ms
4 72.14.210.1 (Google backbone) 25.3ms

Análise: Cada salto representa um roteador diferente na rota. O IX.br (Internet Exchange Brasil) é o ponto onde ISPs brasileiros trocam tráfego.

Modelo de Camadas TCP/IP

Modelo OSI (7 camadas)

  1. Aplicação
  2. Apresentação
  3. Sessão
  4. Transporte
  5. Rede
  6. Enlace
  7. Física

Modelo TCP/IP (4 camadas)

  1. Aplicação (HTTP, FTP)
  2. Transporte (TCP, UDP)
  3. Internet (IP, ICMP)
  4. Acesso à Rede (Ethernet, Wi-Fi)

Formato do Datagrama IPv4

Campos e Funções do Cabeçalho IPv4

O datagrama IPv4 (Kurose 4.4.1, Tanenbaum 5.5.2) contém campos essenciais para roteamento e entrega de pacotes.

description Ver Datagrama IPv4
ipv4_header.txt
• Version (4 bits): 4 para IPv4.
• IHL (4 bits): Comprimento do cabeçalho (mín. 5 palavras de 32 bits = 20 bytes).
• Type of Service (8 bits): Prioridade e QoS (e.g., DiffServ).
• Total Length (16 bits): Tamanho do datagrama (máx. 65.535 bytes).
• Identification (16 bits), Flags (3 bits), Fragment Offset (13 bits): Gerencia fragmentação.
• TTL (8 bits): Tempo de vida, evita loops (decrementado por roteador).
• Protocol (8 bits): Identifica protocolo da camada superior (e.g., 6=TCP, 17=UDP).
• Header Checksum (16 bits): Verifica integridade do cabeçalho.
• Source IP (32 bits): Endereço do remetente.
• Destination IP (32 bits): Endereço do destinatário.
• Options (se IHL > 5): Campos opcionais (raro em redes modernas).

Nota: TTL é decrementado a cada salto; se zero, o pacote é descartado. Checksum é recalculado por roteadores (Kurose 4.4.2).

Atividade Prática: Use o Wireshark no Packet Tracer para capturar um datagrama IPv4 e identificar os campos (TTL, Protocol, Src/Dest IP).

TTL Padrão por Sistema Operacional

Sistema Operacional TTL Inicial
Linux / macOS 64
Windows 128
Cisco IOS 255

O Time To Live (TTL) inicial define quantos saltos (roteadores) um pacote pode atravessar antes de ser descartado. Sistemas diferentes adotam valores-padrão distintos:

  • Valores mais baixos (e.g., 64) limitam o alcance em grandes redes, evitando loops prolongados.
  • Valores maiores (e.g., 128, 255) permitem maior alcance em topologias extensas, mas exigem cuidado extra contra loops.

Endereçamento IPv4

Classes, CIDR e Máscaras

Classes de Endereço

Divisão histórica dos IPs em classes (Tanenbaum 5.5.4):

ClassePrimeiros BitsFaixaMáscara PadrãoHosts por Rede
A01.0.0.0 – 126.255.255.255/816.777.214
B10128.0.0.0 – 191.255.255.255/1665.534
C110192.0.0.0 – 223.255.255.255/24254
D1110224.0.0.0 – 239.255.255.255Multicast-
E1111240.0.0.0 – 255.255.255.255Reservado-

CIDR (Classless Inter-Domain Routing)

Substitui classes fixas por máscaras variáveis (Kurose 4.4.3). Exemplo: 192.168.10.1/24 (Classe C) tem 24 bits de rede, 8 bits de host (254 hosts).

Atividade Prática: Calcule para 172.16.0.0/20: número de sub-redes, hosts por sub-rede, endereço de rede, broadcast e IPs válidos. Use o comando ipcalc para verificar.

ipcalc_example.sh
$ sudo apt install ipcalc
$ ipcalc 172.16.0.0/20
Address: 172.16.0.0 10101100.00010000.00000000.00000000
Netmask: 255.255.240.0 = 20 11111111.11111111.11110000.00000000
Network: 172.16.0.0/20 10101100.00010000.00000000.00000000
HostMin: 172.16.0.1 10101100.00010000.00000000.00000001
HostMax: 172.16.15.254 10101100.00010000.00001111.11111110
Broadcast: 172.16.15.255 10101100.00010000.00001111.11111111
Hosts/Net: 4094

Exercício de Subnetting Avançado

Problema:

A empresa TechSolutions precisa dividir a rede 192.168.50.0/24 em sub-redes para:

  • Departamento TI: 60 hosts
  • Departamento Vendas: 30 hosts
  • Departamento RH: 12 hosts
  • Link WAN: 2 hosts

Cálculos de Sub-redes

Exemplo Prático e Lab

Cálculo de Sub-redes VLSM

Alocando IPs de Forma Eficiente: Do Zero ao Binário

A sub-rede é a prática de dividir uma grande rede IP em redes menores e mais gerenciáveis. Isso otimiza o uso de endereços IP, melhora a segurança e o desempenho.

O VLSM (Variable Length Subnet Mask - Máscara de Sub-rede de Tamanho Variável) é a técnica que nos permite criar sub-redes de diferentes tamanhos a partir de uma única rede maior. Diferente do FLSM (Fixed Length Subnet Mask), onde todas as sub-redes têm o mesmo tamanho, o VLSM é muito mais eficiente e menos "desperdiçador" de IPs.

---

Entendendo o Endereço IP e a Máscara

Um endereço IP (IPv4) é composto por 32 bits, geralmente representados em notação decimal pontilhada (ex: 192.168.1.0). Esses 32 bits são divididos em duas partes essenciais:

  • Parte de Rede: Identifica a qual rede o host pertence. Todos os dispositivos na mesma rede têm a mesma parte de rede.
  • Parte de Host: Identifica o dispositivo específico dentro dessa rede.

A Máscara de Sub-rede é o que define a divisa entre a parte de rede e a parte de host. Ela é uma sequência de '1's (para a parte de rede) seguida por '0's (para a parte de host). Quando aplicada ao endereço IP (usando a operação AND binária), ela "revela" o endereço de rede.

A máscara também pode ser representada pela notação CIDR (Classless Inter-Domain Routing), usando uma barra (/) seguida pelo número de bits da parte de rede. Por exemplo, /24 significa que os primeiros 24 bits são da rede.

Exemplo Básico: 192.168.1.0/24

Vamos ver isso em binário para entender as partes:

IP:   11000000.10101000.00000001.00000000  (192.168.1.0)
Máscara: 11111111.11111111.11111111.00000000  (/24 = 24 bits de rede)
        ----------------------------------
Partes:  Rede (24 bits)     Host (8 bits)
    

Com uma máscara /24, temos 8 bits disponíveis para endereçamento de hosts. Isso significa 28 = 256 endereços possíveis. Lembre-se que o primeiro endereço (todos os bits de host '0') é o endereço de rede, e o último (todos os bits de host '1') é o endereço de broadcast. Portanto, temos 28 - 2 = 254 hosts utilizáveis.

---

Cálculo de Sub-redes VLSM: Otimizando o Espaço IP

O VLSM permite "emprestar" bits da parte de host para criar novas sub-redes, adaptando o tamanho da sub-rede à necessidade de hosts de cada segmento. Isso evita o desperdício de endereços que ocorreria com FLSM se você tivesse redes com poucos hosts.

Passos para o Cálculo VLSM:

A estratégia é começar pela sub-rede que precisa do maior número de hosts e ir diminuindo.

  1. Liste as Necessidades de Hosts (Ordem Decrescente)

    Anote o número de hosts que cada segmento da sua rede precisa. Por exemplo:

    • Rede A: 50 hosts
    • Rede B: 25 hosts
    • Rede C: 10 hosts
    • Rede D: 2 hosts (para link ponto-a-ponto entre roteadores)
  2. Calcule o Número de Bits de Host Necessários

    Para cada necessidade de hosts, calcule quantos bits (n) na parte de host você precisa para acomodar esse número, usando a fórmula 2n ≥ Hosts Necessários + 2 (onde '+2' são os endereços de rede e broadcast).

    A partir de n, você pode encontrar a máscara CIDR para essa sub-rede: Máscara = 32 - n.

  3. Aloque as Sub-redes (Começando pela Maior)

    Pegue a rede original e aloque a primeira sub-rede (a maior). O restante do espaço IP será usado para as próximas sub-redes.

Exemplo Prático Detalhado (Continuação do 192.168.1.0/24)

Vamos usar a rede 192.168.1.0/24 e as necessidades de hosts do Passo 1:

  • Rede A: 50 hosts
  • Rede B: 25 hosts
  • Rede C: 10 hosts
  • Rede D: 2 hosts (link P2P)

Alocação para a Rede A (50 hosts):

  1. Hosts Necessários: 50 hosts.
    Precisamos de 2n ≥ 50 + 2 ⇒ 2n ≥ 52.

    • 25 = 32 (insuficiente)
    • 26 = 64 (suficiente!)

    Então, precisamos de 6 bits de host (n=6).

  2. Máscara CIDR: 32 - 6 = /26.

  3. Endereço de Sub-rede: A partir de 192.168.1.0/24, a primeira sub-rede /26 será:

    IP Original: 11000000.10101000.00000001.00000000 (192.168.1.0)
    Máscara /26: 11111111.11111111.11111111.11000000
                 ----------------------------------
                 Parte de Rede (26 bits) Parte de Host (6 bits)
    
    Primeira sub-rede:
      End. Rede:   192.168.1.0/26
      Primeiro IP: 192.168.1.1
      Último IP:   192.168.1.62
      Broadcast:   192.168.1.63
      Total IPs:   64 (26)
                

Alocação para a Rede B (25 hosts):

  1. Hosts Necessários: 25 hosts.
    Precisamos de 2n ≥ 25 + 2 ⇒ 2n ≥ 27.

    • 24 = 16 (insuficiente)
    • 25 = 32 (suficiente!)

    Então, precisamos de 5 bits de host (n=5).

  2. Máscara CIDR: 32 - 5 = /27.

  3. Endereço de Sub-rede: A próxima sub-rede disponível começa logo após a primeira. A primeira terminou em 192.168.1.63 (broadcast). Então, a próxima sub-rede começa em 192.168.1.64.

    End. Rede:   192.168.1.01000000  (192.168.1.64)
    Máscara /27: 11111111.11111111.11111111.11100000
                 ----------------------------------
                 Parte de Rede (27 bits) Parte de Host (5 bits)
    
    Segunda sub-rede:
      End. Rede:   192.168.1.64/27
      Primeiro IP: 192.168.1.65
      Último IP:   192.168.1.94
      Broadcast:   192.168.1.95
      Total IPs:   32 (25)
                

Alocação para a Rede C (10 hosts):

  1. Hosts Necessários: 10 hosts.
    Precisamos de 2n ≥ 10 + 2 ⇒ 2n ≥ 12.

    • 23 = 8 (insuficiente)
    • 24 = 16 (suficiente!)

    Então, precisamos de 4 bits de host (n=4).

  2. Máscara CIDR: 32 - 4 = /28.

  3. Endereço de Sub-rede: A próxima sub-rede disponível começa após 192.168.1.95 (broadcast da Rede B), ou seja, em 192.168.1.96.

    End. Rede:   192.168.1.01100000  (192.168.1.96)
    Máscara /28: 11111111.11111111.11111111.11110000
                 ----------------------------------
                 Parte de Rede (28 bits) Parte de Host (4 bits)
    
    Terceira sub-rede:
      End. Rede:   192.168.1.96/28
      Primeiro IP: 192.168.1.97
      Último IP:   192.168.1.110
      Broadcast:   192.168.1.111
      Total IPs:   16 (24)
                

Alocação para a Rede D (2 hosts - Link Ponto-a-Ponto):

  1. Hosts Necessários: 2 hosts.
    Precisamos de 2n ≥ 2 + 2 ⇒ 2n ≥ 4.

    • 22 = 4 (suficiente!)

    Então, precisamos de 2 bits de host (n=2).

  2. Máscara CIDR: 32 - 2 = /30.

  3. Endereço de Sub-rede: A próxima sub-rede disponível começa após 192.168.1.111 (broadcast da Rede C), ou seja, em 192.168.1.112.

    End. Rede:   192.168.1.01110000  (192.168.1.112)
    Máscara /30: 11111111.11111111.11111111.11111100
                 ----------------------------------
                 Parte de Rede (30 bits) Parte de Host (2 bits)
    
    Quarta sub-rede:
      End. Rede:   192.168.1.112/30
      Primeiro IP: 192.168.1.113
      Último IP:   192.168.1.114
      Broadcast:   192.168.1.115
      Total IPs:   4 (22)
                

Resumo das Sub-redes VLSM Calculadas:

Rede Hosts Necessários Bits de Host (n) Total IPs (2n) Máscara CIDR Endereço de Rede Faixa de IPs Utilizáveis Endereço de Broadcast
Rede A 50 6 64 /26 192.168.1.0 192.168.1.1 - 192.168.1.62 192.168.1.63
Rede B 25 5 32 /27 192.168.1.64 192.168.1.65 - 192.168.1.94 192.168.1.95
Rede C 10 4 16 /28 192.168.1.96 192.168.1.97 - 192.168.1.110 192.168.1.111
Rede D 2 2 4 /30 192.168.1.112 192.168.1.113 - 192.168.1.114 192.168.1.115

Vantagem do VLSM: Observe como usamos de forma otimizada o espaço de endereçamento. A rede original 192.168.1.0/24 tinha 256 IPs. Depois de alocar as sub-redes, o próximo endereço disponível seria 192.168.1.116, demonstrando que não usamos todo o bloco, mas sim apenas o necessário para cada sub-rede, deixando espaço para futuras expansões.

router_config.txt
Router> enable
Router# configure terminal
Router(config)# interface g0/0
Router(config-if)# ip address 10.0.0.1 255.255.255.240
Router(config-if)# no shutdown
Router(config-if)# exit
Router(config)# interface g0/1
Router(config-if)# ip address 10.0.0.17 255.255.255.240
Router(config-if)# no shutdown
Router(config-if)# exit
Router(config)# ip route 0.0.0.0 0.0.0.0 g0/0

Cálculo de Sub-redes VLSM

Calculadora VLSM Interativa

Requisitos de Sub-redes:

Exemplo de Configuração em Roteador Cisco

router_vlsm_config.txt
interface GigabitEthernet0/0.10
description Sub-rede TI
encapsulation dot1Q 10
ip address 192.168.50.1 255.255.255.192
!
interface GigabitEthernet0/0.20
description Sub-rede Vendas
encapsulation dot1Q 20
ip address 192.168.50.65 255.255.255.224

Exemplo: Dividir 10.0.0.0/24 em /28

(Kurose 4.4.3, Tanenbaum 5.5.5)

  • Máscara Original: /24 (255.255.255.0).
  • Nova Máscara: /28 (255.255.255.240).
  • Sub-redes: 2⁴ = 16 sub-redes (4 bits emprestados).
  • Hosts por Sub-rede: 2⁴−2 = 14 hosts (4 bits de host).
  • Ranges:
    • Sub-rede 1: 10.0.0.0 – 10.0.0.15 (Rede: .0, Broadcast: .15, IPs: .1–.14)
    • Sub-rede 2: 10.0.0.16 – 10.0.0.31
    • ...
    • Sub-rede 16: 10.0.0.240 – 10.0.0.255

Laboratório no Packet Tracer: Configure uma rede com 2 sub-redes (/28) conectadas por um roteador. Atribua IPs, configure rotas estáticas, e teste com ping.

Atividade: Calcule manualmente a sub-rede 192.168.1.0/27: rede, broadcast, IPs válidos. Verifique com ipcalc 192.168.1.0/27.

Ferramentas de Linha de Comando

Configuração e Diagnóstico em Linux

Dominando a Rede: Configuração e Diagnóstico Avançado

O Linux é um ambiente poderoso para o gerenciamento e diagnóstico de redes. Ele oferece uma vasta gama de ferramentas de linha de comando que, quando dominadas, dão a você controle total sobre a infraestrutura de rede. Vamos explorar as essenciais e algumas mais avançadas.

---

Comandos Essenciais para Diagnóstico e Configuração

Essas ferramentas são o pão e manteiga de qualquer administrador de rede Linux. Elas permitem que você inspecione o estado atual da sua rede e faça configurações básicas. (Referências: Kurose 4.7, Tanenbaum 5.5.7)

comandos_essenciais.sh
# 1. Verificar interfaces de rede e endereços IP (Moderno)
$ ip a
# Exemplo de saída: exibe interfaces (eth0, lo, wlan0), IPs, status UP/DOWN.
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic eth0
inet6 fe80::a00:27ff:fe3c:4d5e/64 scope link
# (Alternativa mais concisa para "ip a")
$ ip -c -br addr show
eth0 UP 192.168.1.10/24 fe80::a00:27ff:fe3c:4d5e/64

# 2. Exibir a tabela de rotas IP (Moderno)
$ ip r
# Exemplo de saída: mostra para onde o tráfego é enviado.
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10 metric 100

# 3. Testar conectividade (Ping)
$ ping -c 4 192.168.1.1
# Exemplo de saída: envia 4 pacotes ICMP para testar a acessibilidade.
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.551 ms
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms

# 4. Testar conectividade com teste de MTU (Ping avançado)
$ ping -c 4 -M do -s 1472 8.8.8.8
# Exemplo: testa o MTU (Maximum Transmission Unit) sem fragmentação.
PING 8.8.8.8 (8.8.8.8) 1472(1500) bytes of data.
1480 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=15.2 ms
PING 8.8.8.8 with 1472 bytes payload (MTU test)

# 5. Rastrear o caminho de pacotes (Traceroute/MTR)
$ traceroute 8.8.8.8
# Exemplo: mostra os "saltos" que um pacote dá até o destino.
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 router.local (192.168.1.1) 0.751 ms 0.702 ms 0.689 ms
2 provedor.net (200.200.200.1) 12.345 ms 13.123 ms 14.567 ms
# (MTR é uma versão mais avançada do traceroute, com estatísticas contínuas)
$ mtr --report-wide google.com
# Exemplo de saída resumida:
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.168.1.1 0.0% 10 1.2 1.5 1.1 2.3 0.4
2. provedor.net 0.0% 10 12.5 13.0 12.0 14.0 0.5

# 6. Instalar ipcalc (Ferramenta de cálculo de sub-rede)
$ sudo apt update
$ sudo apt install ipcalc
# Exemplo: Calcula informações da sub-rede a partir de um CIDR.
$ ipcalc 192.168.1.0/26
Address: 192.168.1.0 11000000.10101000.00000001.00000000
Netmask: 255.255.255.192 = 26 11111111.11111111.11111111.11000000
Broadcast: 192.168.1.63 11000000.10101000.00000001.00111111
HostMin: 192.168.1.1
HostMax: 192.168.1.62
Hosts/Net: 62

# 7. Configurar IP estático (Temporário, para testes)
$ sudo ip addr add 192.168.1.10/24 dev eth0
# Exemplo: Atribui o IP 192.168.1.10 com máscara /24 à interface eth0.

# 8. Adicionar rota padrão (Gateway - Temporário)
$ sudo ip route add default via 192.168.1.1
# Exemplo: Define o roteador 192.168.1.1 como o gateway padrão.
---

Comandos Avançados e Scripts Úteis

Para diagnósticos mais profundos e automação de tarefas, o Linux oferece ferramentas que vão além do básico. (Referência: Comer, Cap. 7)

Comando Função Exemplo
ss Exibe conexões de soquete (sockets) ativas, muito mais poderoso que o antigo `netstat`. ss -tulnp
(-t: TCP, -u: UDP, -l: listening, -n: números, -p: processo)
nc (Netcat) Ferramenta "canivete suíço" para redes. Usada para testes de portas, transferência de arquivos, e mais. nc -zv 192.168.1.1 80
(-z: zero-I/O para escanear, -v: verbose)
tcpdump Poderoso sniffer de pacotes que captura e analisa o tráfego de rede diretamente da interface. sudo tcpdump -i eth0 'port 53'
(-i: interface, 'port 53': filtro para tráfego DNS)
ip route get Mostra a rota específica que um pacote tomaria para um determinado destino. ip route get 8.8.8.8
(Exibe por qual interface e gateway o pacote sairia para 8.8.8.8)

Scripts Úteis para Automação

A linha de comando do Linux permite combinar comandos em scripts para automatizar tarefas de diagnóstico e varredura de rede.

network_scan.sh
#!/bin/bash
# Script para escanear hosts ativos na rede local
for ip in $(seq 1 254); do
ping -c 1 192.168.1.$ip | grep "bytes from" &
done
# Exemplo de uso: substitua 192.168.1. pelo seu prefixo de rede.
# O '&' no final faz o ping rodar em segundo plano, acelerando o scan.

# Script para verificar portas abertas em um alvo
nc -zv target.com 20-443 2>&1 | grep succeeded
# Exemplo: testa portas TCP de 20 a 443 em target.com.
# '2>&1' redireciona erros para a saída padrão, 'grep succeeded' filtra sucessos.
---
Atividade Prática: Coloque as Mãos na Massa!

Em uma máquina virtual Linux (ex: Ubuntu Desktop/Server em VirtualBox ou WSL), execute as seguintes tarefas:

  1. Configuração de IP Estático e Rota Padrão:
    • Use sudo ip addr add 192.168.1.10/24 dev eth0 para configurar um IP estático na sua interface de rede (ajuste eth0 se necessário).
    • Use sudo ip route add default via 192.168.1.1 para adicionar uma rota padrão apontando para o seu gateway (ajuste o IP).
    • Verifique as configurações com ip a e ip r.
  2. Testes de Conectividade:
    • Teste a conectividade com seu gateway e com um site externo (ex: google.com) usando ping.
    • Use traceroute google.com para ver o caminho que os pacotes percorrem até o destino. Anote os saltos e tempos.
    • (Opcional) Tente usar mtr google.com para uma análise contínua do caminho.
  3. Crie e Execute um Script de Varredura:
    • Crie o script network_scan.sh mostrado acima.
    • Dê permissões de execução (chmod +x network_scan.sh).
    • Execute-o (./network_scan.sh) e observe os resultados de hosts ativos na sua rede local.
  4. Captura de Tráfego DNS:
    • Instale o tcpdump se ainda não tiver (sudo apt install tcpdump).
    • Use sudo tcpdump -i eth0 'port 53' para capturar tráfego DNS.
    • Enquanto o tcpdump roda, tente acessar um site no seu navegador. Observe os pacotes DNS sendo exibidos. Pare com Ctrl+C.
  5. Documente os Resultados: Prepare um pequeno relatório técnico com os comandos usados, suas saídas e o que você aprendeu com cada teste.
Leitura Recomendada:
  • Comer (Capítulo 7) - Ferramentas de diagnóstico e gerenciamento de rede.
  • Tanenbaum (cap 5 - 5.6 ..)
  • Tanenbaum (Apêndice B) - Uma visão geral útil de comandos UNIX/Linux para rede.
  • Kurose (cap 4)

Laboratório Virtual

Topologia e Configuração

Este laboratório prático tem como objetivo simular e configurar um cenário de rede simples no Cisco Packet Tracer, aplicando conceitos de sub-redes e roteamento estático. Você aprenderá a conectar dispositivos, atribuir endereços IP e configurar rotas para permitir a comunicação entre diferentes sub-redes.

---

Topologia do Laboratório

Vamos construir uma topologia que conecta dois computadores em sub-redes distintas, utilizando um roteador central para fazer o encaminhamento do tráfego entre elas.

topologia_subredes.txt
[PC1: 10.0.0.2/28]---[G0/0: Router: G0/1]---[PC2: 10.0.0.18/28]

Sub-rede 1 (LAN1): 10.0.0.0/28 (Faixa de hosts: 10.0.0.1 - 10.0.0.14)
    - Gateway (Router G0/0): 10.0.0.1/28

Sub-rede 2 (LAN2): 10.0.0.16/28 (Faixa de hosts: 10.0.0.17 - 10.0.0.30)
    - Gateway (Router G0/1): 10.0.0.17/28

Entendendo a Topologia:

  • Temos duas sub-redes separadas por um roteador.
  • A máscara /28 significa que cada sub-rede tem $2^{(32-28)} = 2^4 = 16$ endereços no total. Destes, 2 são reservados (rede e broadcast), sobrando 14 IPs utilizáveis para hosts.
  • PC1 está na sub-rede 10.0.0.0/28, e seu gateway é a interface G0/0 do roteador (10.0.0.1).
  • PC2 está na sub-rede 10.0.0.16/28, e seu gateway é a interface G0/1 do roteador (10.0.0.17).
---

Passos para a Configuração (Passo a Passo)

Siga as instruções abaixo no Cisco Packet Tracer para montar e configurar a rede:

  1. Adicionar e Conectar Dispositivos

    • No Packet Tracer, clique em "End Devices" (dispositivos finais), e arraste 2 PCs (PC-PT) para a área de trabalho. Altere seus nomes de exibição (aba "Config" > "Display Name") para **PC1** e **PC2**.
    • Clique em "Routers", e arraste um roteador 2911 (Router-PT) para a área de trabalho. Altere seu nome de exibição para **Router**.
    • Utilize o ícone de "Connections" (raio) e selecione o cabo **"Copper Straight-Through"** (cabo direto) para conectar:
      • PC1 (porta FastEthernet0) ao **Router** (porta GigabitEthernet0/0).
      • PC2 (porta FastEthernet0) ao **Router** (porta GigabitEthernet0/1).
  2. Configurar Endereços IP nos PCs e Roteador

    Abra cada dispositivo e configure os endereços IP conforme o plano de sub-redes:

    • Configuração do PC1:
      • Clique em PC1 > aba "Desktop" > "IP Configuration".
      • IPv4 Address: 10.0.0.2
      • Subnet Mask: 255.255.255.240
      • Default Gateway: 10.0.0.1
    • Configuração do PC2:
      • Clique em PC2 > aba "Desktop" > "IP Configuration".
      • IPv4 Address: 10.0.0.18
      • Subnet Mask: 255.255.255.240
      • Default Gateway: 10.0.0.17
    • Configuração do Roteador (Router):

      No roteador, você configurará as interfaces e as ativará. Lembre-se de que a máscara /28 corresponde a 255.255.255.240.

      router_interface_config.txt
      Router> enable
      Router# configure terminal

      # Configura a interface G0/0 (conectada ao PC1)
      Router(config)# interface g0/0
      Router(config-if)# ip address 10.0.0.1 255.255.255.240
      Router(config-if)# no shutdown
      Router(config-if)# exit

      # Configura a interface G0/1 (conectada ao PC2)
      Router(config)# interface g0/1
      Router(config-if)# ip address 10.0.0.17 255.255.255.240
      Router(config-if)# no shutdown
      Router(config-if)# exit
  3. Configurar Rotas Estáticas no Roteador

    Neste cenário, como o roteador está diretamente conectado a ambas as sub-redes (10.0.0.0/28 e 10.0.0.16/28), ele **já conhece** essas rotas automaticamente. Não precisamos adicionar rotas estáticas explícitas para as redes diretamente conectadas. As rotas estáticas seriam necessárias se houvesse outras redes para as quais o roteador não tivesse uma conexão direta.

    Para confirmar que o roteador "aprende" as redes, você pode verificar a tabela de roteamento:

    router_show_routes.txt
    Router# show ip route
    # Procure por entradas que comecem com 'C' (Connected)
    # Exemplo:
    C 10.0.0.0/28 is directly connected, GigabitEthernet0/0
    C 10.0.0.16/28 is directly connected, GigabitEthernet0/1

    # Salvar as configurações (muito importante!)
    Router# copy running-config startup-config

    Observação: As rotas estáticas mencionadas na atividade original (ip route 10.0.0.16 ... g0/1 e ip route 10.0.0.0 ... g0/0) seriam redundantes aqui, pois as redes já estão diretamente conectadas. Elas seriam usadas se essas redes estivessem "atrás" de outro roteador.

  4. Testar Conectividade com Ping

    Após configurar IPs e verificar as rotas, é hora de testar se os PCs conseguem se comunicar através do roteador.

    • Em **PC1**: Abra "Desktop" > "Command Prompt". Digite ping 10.0.0.18 e pressione Enter.
    • Em **PC2**: Abra "Desktop" > "Command Prompt". Digite ping 10.0.0.2 e pressione Enter.

    Ambos os pings devem ter sucesso, mostrando respostas como Reply from 10.0.0.X: bytes=32 time=Yms TTL=Z. Isso confirma que o roteador está encaminhando o tráfego corretamente entre as sub-redes.

  5. Capturar Datagramas com Wireshark (no Packet Tracer)

    Para entender como os pacotes viajam e como os cabeçalhos IP são alterados (especialmente o TTL), você pode usar o Wireshark integrado ao Packet Tracer.

    • Adicione um novo dispositivo: "End Devices" > "PC-PT". (Este PC não precisa de IP, apenas servirá como uma estação de monitoramento).
    • Conecte este novo PC a uma porta livre do **Router** (usando Copper Straight-Through).
    • Clique neste novo PC > aba "Desktop" > "Wireshark".
    • Selecione a interface de rede que você conectou ao roteador e clique em "Start" para iniciar a captura.
    • Volte ao PC1 e envie novamente um ping 10.0.0.18.
    • Volte ao Wireshark, clique em "Stop" e filtre por icmp.
    • Analise os pacotes: Observe o **endereço IP de origem** e **destino**, e o campo **TTL (Time to Live)**. Você verá que o TTL diminui a cada "salto" (roteador) que o pacote atravessa.

Entregável:

  • Screenshot da Topologia montada no Packet Tracer.
  • Screenshots das configurações de IPs do PC1 e PC2.
  • Screenshot da saída do comando show ip route no roteador (CLI).
  • Screenshots dos pings bem-sucedidos de PC1 para PC2 e PC2 para PC1.
  • Screenshot da captura do Wireshark, destacando os pacotes ICMP e seus cabeçalhos IPv4 (Src/Dest IP, TTL).

Quiz Interativo

Teste seus Conhecimentos de IPv4

Responda às questões para revisar os conceitos de IPv4, sub-redes, comandos Linux e fundamentos de rede que vimos até agora.

1. Quantos bits de host restam em uma rede /24?

a) 8
b) 16
c) 24
d) 32

Resposta: a) 8
Uma máscara /24 usa 24 bits para a rede, deixando 32−24=8 bits para hosts, permitindo 28−2=254 hosts (Kurose 4.4.3).

2. Qual comando Linux exibe a tabela de rotas?

a) ip a
b) ip r
c) route -n
d) ifconfig

Resposta: b) ip r
ip r exibe a tabela de rotas no Linux, mostrando gateways e destinos (Tanenbaum 5.5.7).

3. Qual é o endereço de broadcast de 172.16.0.0/20?

a) 172.16.15.255
b) 172.16.0.255
c) 172.16.16.255
d) 172.16.255.255

Resposta: a) 172.16.15.255
/20 tem bloco de 212=4096 endereços. 172.16.0.0 a 172.16.15.255, com broadcast em .15.255 (verificado com ipcalc 172.16.0.0/20).

4. Qual campo do datagrama IPv4 evita loops infinitos?

a) Header Checksum
b) TTL
c) Protocol
d) IHL

Resposta: b) TTL
O campo TTL (Time to Live) é decrementado por cada roteador; se atinge zero, o pacote é descartado, evitando loops (Kurose 4.4.2).

5. Quantas sub-redes são criadas ao dividir 192.168.1.0/24 em /27?

a) 4
b) 8
c) 16
d) 32

Resposta: b) 8
/24 para /27 empresta 3 bits (27−24=3), criando 23=8 sub-redes, cada uma com 25−2=30 hosts.

6. Qual protocolo da camada de Transporte NÃO fornece entrega confiável?

a) TCP
b) UDP
c) SCTP
d) QUIC

Resposta Correta: b) UDP
UDP (User Datagram Protocol) é não-confiável e não-orientado à conexão, usado para DNS e streaming. TCP, SCTP e QUIC fornecem confiabilidade com mecanismos como ACKs e retransmissão (Tanenbaum, Cap. 6.2).

7. Qual comando mostra a tabela ARP em Linux?

a) ip neigh
b) arp -a
c) route -n
d) a e b

Resposta Correta: d) a e b
Tanto ip neigh (moderno) quanto arp -a (legado) mostram o cache ARP. O ARP mapeia IPs para endereços MAC (Kurose, Cap. 5.4).

8. Qual topologia é mais comum em redes Ethernet modernas?

a) Barramento
b) Anel
c) Estrela
d) Malha

Resposta Correta: c) Estrela
Redes Ethernet modernas usam topologia estrela com switches no centro. Barramento foi usado no coaxial 10BASE2, e anel em Token Ring (Tanenbaum, Cap. 4.2).

9. Qual camada do OSI lida com roteamento?

a) Física
b) Enlace
c) Rede
d) Transporte

Resposta Correta: c) Rede
A camada 3 (Rede) usa endereços IP e protocolos como OSPF para roteamento entre redes. Enlace lida com MACs em redes locais (Kurose, Cap. 4.3).

10. Qual destes NÃO é um protocolo TCP/IP?

a) HTTP
b) NetBIOS
c) IPX/SPX
d) ICMP

Resposta Correta: c) IPX/SPX
IPX/SPX era usado em redes Novell NetWare. HTTP (aplicação), NetBIOS (sessão) e ICMP (rede) são parte do TCP/IP (Comer, Cap. 1).

---

Desafio Prático: Configuração Rápida em Linux

Coloque seus conhecimentos à prova com este desafio de configuração e verificação em um ambiente Linux (VM ou WSL). (Este desafio integra conceitos práticos da aula de ferramentas de linha de comando).

network_challenge.sh
# Tarefa 1: Configure uma interface com IP 192.168.10.5/24
$ sudo ip addr add 192.168.10.5/24 dev eth0
# Tarefa 2: Adicione rota padrão via 192.168.10.1
$ sudo ip route add default via 192.168.10.1
# Verifique: ping 8.8.8.8 && curl google.com

Leitura Recomendada para Revisão:

  • Kurose (Cap. 1-5) - Fundamentos de rede, camadas e roteamento.
  • Tanenbaum (Cap. 1-4, 6.2) - Conceitos básicos, camada física e transporte (UDP).
  • Comer (Cap. 1, 7) - Modelos de rede e ferramentas de diagnóstico.