Duração: 80 minutos (explicação 20, prática guiada 50, verificação 10). Resultados dos TdR trabalhados: Serviços de rede: DHCP, DNS, VPN, NAT, VLAN e autenticação; Monitorização, análise de tráfego e gestão.
Objectivos
- Explicar ARP, ICMP, TCP, UDP, DNS e DHCP e em que momento cada um aparece.
- Reconhecer numa captura o aperto de mão TCP (SYN, SYN-ACK, ACK).
- Aplicar filtros de captura e de visualização simples.
Os protocolos de todos os dias
ARP descobre o MAC correspondente a um IP na mesma rede. ICMP transporta mensagens de controlo (eco para o ping, «destino inalcançável», «tempo excedido» usado pelo traceroute). TCP garante entrega ordenada e fiável, com ligação estabelecida por três mensagens (RFC 9293); UDP envia sem ligação, sem confirmação nem retransmissão (RFC 768). Por não esperar confirmações, UDP tem menos atraso de arranque e é adequado a consultas curtas (DNS) e a voz e vídeo em tempo real; não é, por si, «mais rápido» em débito — a fiabilidade, se necessária, passa para a aplicação.
DNS traduz nomes em endereços (porta 53). DHCP entrega automaticamente endereço, máscara, porta de ligação e servidores DNS (portas 67/68). Serão configurados no módulo 5.
Ver para perceber
tcpdump e Wireshark/tshark mostram os pacotes. Filtro de captura (sintaxe pcap) reduz o que se grava: «tcp port 80». Filtro de visualização (Wireshark) escolhe o que se mostra: «tcp.flags.syn == 1». Capturas podem conter dados pessoais: só em rede de prática ou com autorização.
Caso fictício
O pc-adm da DPE (fictícia) demora a abrir a intranet. O técnico quer saber se o atraso está na resolução do nome ou na ligação TCP.
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
Ponha um serviço web simples no srv (servidor de teste do Python, só para a prática).
Consola C (deixar aberta): sudo ip netns exec srv python3 -m http.server 80 --bind 10.10.20.53 Esperar a linha «Serving HTTP on 10.10.20.53 port 80» antes do passo seguinte.Limpe a cache ARP do pc-adm e capture ARP e TCP no r1 durante um pedido.
Consola B: sudo ip -n pc-adm neigh flush all Consola A: sudo ip netns exec r1 tcpdump -ni r1-pc-adm -w /tmp/m1l4.pcap 'arp or tcp port 80' Esperar na consola A a linha «tcpdump: listening on r1-pc-adm» antes de continuar. Consola B: sudo ip netns exec pc-adm python3 -c "import urllib.request as u; print(u.urlopen('http://10.10.20.53/').status)" Consola A: terminar a captura com Ctrl+C (termina apenas este tcpdump e fecha o ficheiro).Saída de exemplo (didáctica):
Consola A: tcpdump: listening on r1-pc-adm, link-type EN10MB (Ethernet), snapshot length 262144 bytes Consola B: 200Leia a captura com tshark.
tshark -r /tmp/m1l4.pcap -Y 'arp || tcp.flags.syn==1 || (tcp.flags==0x010 && tcp.seq==1 && tcp.ack==1 && tcp.len==0)' -T fields -e frame.number -e _ws.col.InfoSaída de exemplo (didáctica):
1 Who has 10.10.10.1? Tell 10.10.10.10 2 10.10.10.1 is at aa:aa:aa:00:00:01 3 50412 → 80 [SYN] Seq=0 4 80 → 50412 [SYN, ACK] Seq=0 Ack=1 5 50412 → 80 [ACK] Seq=1 Ack=1 Len=0Nota sobre o filtro: tcp.flags.syn==1 sozinho mostra só SYN e SYN-ACK; o ACK final do aperto de mão não tem SYN, por isso acrescenta-se a condição «só ACK, números relativos 1/1, sem dados». Números de sequência relativos são o comportamento por omissão do Wireshark/tshark.
Compare com um pedido DNS em UDP (será configurado no módulo 5): identifique na tabela do papel as diferenças TCP/UDP.
Critérios de sucesso
- O formando identifica ARP antes do TCP e o aperto de mão SYN, SYN-ACK, ACK.
- O ficheiro de captura é apagado no fim.
Como desfazer (reversão)
- Na consola C, terminar o servidor de teste com Ctrl+C (termina só esse processo).
- rm -f /tmp/m1l4.pcap
Alternativa em papel: tarefas e respostas esperadas
- Porque aparece ARP antes do TCP na captura?
- O pc-adm precisa do MAC da porta de ligação 10.10.10.1 para construir a trama; o destino 10.10.20.53 está noutra rede, por isso pergunta pelo MAC do r1, não do srv.
- Complete: DNS usa ___ porta ___; DHCP usa ___ portas ___.
- DNS: porta 53, normalmente UDP para consultas; TCP é também obrigatório de suportar (RFC 7766) e usa-se, por exemplo, quando a resposta é truncada, em transferências de zona e com DNS sobre TLS (porta 853). DHCP: UDP portas 67 (servidor) e 68 (cliente).
- Escreva um filtro de captura para apanhar só tráfego do pc-adm para a porta 443.
- src host 10.10.10.10 and tcp dst port 443
Verifique o que aprendeu
Questão 1
O traceroute mostra os saltos porque os encaminhadores devolvem:
- TCP RST
- ICMP «tempo excedido»
- ARP reply
- DHCP ACK
Ver resposta comentada
Resposta: ICMP «tempo excedido»
Cada salto reduz o TTL; quando chega a zero, o encaminhador devolve ICMP «tempo excedido», revelando o seu endereço.
Questão 2
Qual protocolo é mais indicado para uma chamada de voz?
- TCP, porque garante entrega
- UDP, porque um atraso de retransmissão é pior que uma pequena perda
- ARP
- ICMP
Ver resposta comentada
Resposta: UDP, porque um atraso de retransmissão é pior que uma pequena perda
Na voz, um pacote retransmitido chega tarde demais para ser útil. Usa-se UDP (com RTP), aceitando pequenas perdas.
Em leitura fácil
- ARP pergunta: quem tem este endereço?
- TCP confirma que os dados chegaram.
- UDP não confirma: serve para mensagens curtas e para voz ou vídeo ao vivo.
- DNS troca nomes por números.
Fontes
- IETF RFC 826 — An Ethernet Address Resolution Protocol (https://www.rfc-editor.org/rfc/rfc826)
- IETF RFC 792 — Internet Control Message Protocol (https://www.rfc-editor.org/rfc/rfc792)
- IETF RFC 9293 — Transmission Control Protocol (https://www.rfc-editor.org/rfc/rfc9293)
- IETF RFC 768 — User Datagram Protocol (https://www.rfc-editor.org/rfc/rfc768)
- IETF RFC 1034/1035 — Domain Names (https://www.rfc-editor.org/rfc/rfc1034)
- IETF RFC 7766 — DNS Transport over TCP (https://www.rfc-editor.org/rfc/rfc7766)
- IETF RFC 2131 — Dynamic Host Configuration Protocol (https://www.rfc-editor.org/rfc/rfc2131)
- tcpdump/libpcap — manual tcpdump(1) e pcap-filter(7) (https://www.tcpdump.org/manpages/)
- Wireshark — User's Guide e referência de filtros de visualização (https://www.wireshark.org/docs/)
