DNS, DHCP e Protocolos Web
Aula 4 de 6
DNS (Domain Name System)
Hierarquia
Root (.) → 13 servidores raiz (a.root-servers.net ... m.root-servers.net)
└── TLD .com, .org, .br, .io
└── Domínios de segundo nível → exemplo.com, google.com
└── Subdomínios → www.exemplo.com, api.exemplo.com
Tipos de Registro
| Registro | Descrição | Exemplo |
|---|---|---|
| A | Mapeia nome → IPv4 | google.com → 142.250.217.78 |
| AAAA | Mapeia nome → IPv6 | google.com → 2800:3f0:4001:82e::200e |
| CNAME | Alias (nome → nome) | www → @ |
| MX | Servidor de e-mail | @ → mail.google.com (prioridade 10) |
| NS | Servidor de nomes | @ → ns1.google.com |
| TXT | Texto livre (verificação, SPF, DKIM) | v=spf1 include:_spf.google.com ~all |
| SRV | Serviço específico | _sip._tcp → sipserver:5060 |
| PTR | Reverse (IP → nome) | 78.217.250.142.in-addr.arpa → google.com |
Consulta Recursiva vs Iterativa
Cliente → Resolver (recursivo) → Root → TLD → Autoritativo
- Recursão: o resolver faz toda a consulta e retorna a resposta final
- Iteração: o servidor responde com "próximo servidor" e o cliente pergunta ao próximo
Ferramentas de Consulta
# nslookup (Windows)
nslookup google.com
nslookup -type=MX google.com
nslookup -type=AAAA google.com
# dig (Linux/WSL — mais detalhado)
dig google.com
dig google.com A
dig google.com MX
dig -x 8.8.8.8 # Reverse lookup
dig google.com +trace # Mostrar caminho completo
# Verificar servidores DNS configurados
Get-DnsClientServerAddress
Zone Transfer
Replicação de zona DNS entre servidores primário e secundário (AXFR). Risco de segurança se exposto:
# Tentar zone transfer (não autorizado)
# dig axfr @ns1.exemplo.com exemplo.com
DHCP (Dynamic Host Configuration Protocol)
DORA
O processo de obtenção de IP em 4 etapas:
1. DHCP DISCOVER (Cliente → Broadcast) — "Alguém me dá um IP?"
2. DHCP OFFER (Servidor → Broadcast) — "Tome este IP 192.168.1.10"
3. DHCP REQUEST (Cliente → Broadcast) — "Quero o 192.168.1.10"
4. DHCP ACK (Servidor → Broadcast) — "Confirmado, use 192.168.1.10"
Configurações
# Ver lease DHCP atual
ipconfig /all
ipconfig /renew # Renovar lease
ipconfig /release # Liberar IP
# Ver servidores DHCP na rede
Get-DhcpServerv4Scope -ComputerName dhcp-server.local
Escopo, Reserva e Relay Agent
| Conceito | Descrição |
|---|---|
| Escopo | Faixa de IPs gerenciada (ex: 192.168.1.100-200) |
| Reserva | IP fixo baseado em MAC (ex: impressora sempre recebe .50) |
| Exclusão | IPs no escopo que não serão distribuídos |
| Relay Agent | Encaminha DHCP entre sub-redes (já que broadcast não passa por roteador) |
DHCP Lease
Lease: 8 dias (padrão)
Renovação em T1 (50%): o cliente tenta renovar com o servidor
Renovação em T2 (87.5%): o cliente tenta com qualquer servidor
Expiração: IP liberado
HTTP/HTTPS
Request/Response
GET /api/users HTTP/1.1
Host: api.exemplo.com
User-Agent: Mozilla/5.0
Accept: application/json
Authorization: Bearer eyJhbGci...
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: max-age=3600
{"users": [...]}
Métodos HTTP
| Método | Descrição | Idempotente |
|---|---|---|
| GET | Recuperar recurso | Sim |
| POST | Criar recurso | Não |
| PUT | Substituir recurso | Sim |
| PATCH | Atualizar parcialmente | Não |
| DELETE | Remover recurso | Sim |
| HEAD | Headers sem corpo | Sim |
| OPTIONS | Métodos disponíveis | Sim |
Status HTTP
1xx: Informacional (101 Switching Protocols)
2xx: Sucesso (200 OK, 201 Created, 204 No Content)
3xx: Redirecionamento (301 Moved, 302 Found, 304 Not Modified)
4xx: Erro do cliente (400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found)
5xx: Erro do servidor (500 Internal Server Error, 502 Bad Gateway, 503 Unavailable)
HTTP/2 vs HTTP/3
| Característica | HTTP/1.1 | HTTP/2 | HTTP/3 |
|---|---|---|---|
| Transporte | TCP | TCP | QUIC (UDP) |
| Multiplexação | Limitada (6 conexões) | Sim (streams) | Sim (streams nativos) |
| Headers | Texto (não comprimido) | HPACK (comprimido) | QPACK (comprimido) |
| Server Push | Não | Sim | Não (removido) |
| Latência | Alta (head-of-line blocking) | Bloqueio TCP | Zero RTT, sem HOL |
SSL/TLS Handshake
Handshake TLS 1.3
Cliente → Servidor: ClientHello (supported versions, key share)
Servidor → Cliente: ServerHello + Certificate + Finished
Cliente → Servidor: Finished (criptografado)
Ida e volta: 1-RTT (1 round trip), ou 0-RTT para conexões anteriores.
# Verificar certificado SSL de um site
openssl s_client -connect google.com:443 -servername google.com
openssl s_client -connect google.com:443 -tls1_3
Lab: Diagnóstico DNS e DHCP
# Testar resolução DNS
nslookup google.com 8.8.8.8
# Ver cache DNS local
ipconfig /displaydns
# Limpar cache DNS
ipconfig /flushdns
# Verificar configuração de rede completa
ipconfig /all
# Simular DHCP release e renew
ipconfig /release
ipconfig /renew
# Ver portas de escuta (HTTP/80, HTTPS/443, DNS/53)
netstat -an | findstr ":443 "
netstat -an | findstr ":53 "
# Testar conexão HTTPS com detalhes (PowerShell 5.1+)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$request = [System.Net.WebRequest]::Create("https://google.com")
$request.GetResponse().Headers
# Testar TLS com .NET
[System.Net.Security.SslStream]::new(
[System.IO.Stream]::null, $false,
{ $true }).AuthenticationSslStream
DNS e DHCP são a espinha dorsal da conectividade. Um falha de DNS causa "internet não funciona" mesmo com rede funcionando. Domine as ferramentas de diagnóstico: nslookup, dig, ipconfig.