DNS (Domain Name System) adalah "buku telepon" internet. Ia menerjemahkan nama domain yang mudah diingat manusia (seperti google.com) menjadi alamat IP yang dipahami komputer (seperti 142.250.185.78).
Mengapa perlu DNS?
Bayangkan harus mengingat 142.250.185.78 setiap kali ingin membuka Google. DNS memungkinkan kita menggunakan nama yang mudah diingat.
Hierarki DNS:
Root DNS (.)
└── TLD (.com, .dev, .id)
└── Authoritative NS (belajarweb.dev)
└── Record (A, CNAME, MX, dll)
Proses DNS Resolution:
- Browser cek cache lokal — apakah domain ini pernah dicari sebelumnya?
- OS cek host file — apakah ada mapping manual?
- Query ke Recursive Resolver (biasanya DNS ISP atau 8.8.8.8)
- Resolver tanya Root Name Server → diarahkan ke TLD server
- Resolver tanya TLD Server (.com) → diarahkan ke Authoritative NS
- Authoritative NS memberikan IP address final
- Resolver menyimpan hasil di cache, mengirim ke browser
Jenis DNS Records:
| Record | Fungsi | Contoh |
|---|---|---|
| A | Domain → IPv4 | belajarweb.dev → 104.21.33.55 |
| AAAA | Domain → IPv6 | belajarweb.dev → 2606:4700::... |
| CNAME | Alias domain | www.belajarweb.dev → belajarweb.dev |
| MX | Mail server | belajarweb.dev → mail.google.com |
| TXT | Teks verifikasi | SPF, DKIM untuk email auth |
| NS | Name server | ns1.cloudflare.com |
TTL (Time to Live): Setiap DNS record punya TTL — berapa lama record boleh di-cache (dalam detik). TTL rendah (300) berarti perubahan cepat terlihat tapi lebih banyak query. TTL tinggi (86400) berarti lebih sedikit query tapi perubahan lambat.
DNS di dunia nyata:
- Cloudflare DNS (1.1.1.1) — cepat dan privacy-focused
- Google DNS (8.8.8.8) — reliable dan global
- Custom domain — kamu bisa membeli domain dan mengatur DNS records sendiri
// Di Node.js, kamu bisa resolve DNS secara programatik:
const dns = require("dns");
dns.resolve4("belajarweb.dev", (err, addresses) => {
console.log(addresses); // ["104.21.33.55", ...]
});
Tips keamanan DNS:
- Gunakan DNSSEC untuk mencegah DNS spoofing
- Gunakan DNS over HTTPS (DoH) untuk enkripsi query DNS
- Waspada DNS poisoning — serangan yang mengarahkan kamu ke IP palsu