O DNS é uma hierarquia, não um servidor único. O resolver recursivo desce a árvore: pergunta ao root quem manda no .com, pergunta ao TLD .com quem é o autoritativo de exemplo.com, e pergunta ao autoritativo o registro A (o IP). Depois cacheia por TTL. Cache quente pula tudo isso e responde na hora.
| DNS | nome vira IP (esta aula) |
| Camadas | tudo roda sobre o modelo TCP/IP (aula 17) |
| TCP | handshake abre a conexão (aula 18) |
| TLS | handshake cifra o canal (aula 20) |
| HTTP | request na versão negociada (aula 19) |
Resolver um nome em Go
// jeito simples
ips, err := net.LookupHost("exemplo.com")
// com controle de timeout
r := &net.Resolver{}
ctx, cancel := context.WithTimeout(
context.Background(), 2*time.Second)
defer cancel()
addrs, err := r.LookupHost(ctx, "exemplo.com")