DNS (Domain Name System) — Web Fundamentals

DNS (Domain Name System) adalah "buku telepon" internet. Ia menerjemahkan nama domain yang mudah diingat manusia (seperti google.com) menjadi alamat IP yang dip

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:

  1. Browser cek cache lokal — apakah domain ini pernah dicari sebelumnya?
  2. OS cek host file — apakah ada mapping manual?
  3. Query ke Recursive Resolver (biasanya DNS ISP atau 8.8.8.8)
  4. Resolver tanya Root Name Server → diarahkan ke TLD server
  5. Resolver tanya TLD Server (.com) → diarahkan ke Authoritative NS
  6. Authoritative NS memberikan IP address final
  7. 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:

// 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:

Yang akan kamu pelajari