DNS (Domain Name System) adalah sistem yang menerjemahkan nama domain, misalnya belajarweb.dev, jadi alamat IP, misalnya 203.0.113.10. Manusia gampang mengingat nama, sedangkan komputer butuh alamat IP untuk mengirim paket. Mirip daftar kontak di HP: kamu cari namanya, HP yang tahu nomornya.
🧪 Tebakan cepat: kamu membuka website yang sama dua kali dalam semenit. Apa DNS ditanya lagi dari awal? Tebak dulu, jawabannya ada di bagian "Dari nama ke alamat IP".
Dari nama ke alamat IP
Ini yang terjadi waktu browser mencari IP belajarweb.dev untuk pertama kali:
Cari: belajarweb.dev
1. Cache browser belum ada
2. Cache OS belum ada
3. Resolver "aku carikan"
Root server "tanya server .dev"
Server TLD .dev "tanya ns1.belajarweb.dev"
4. Authoritative "belajarweb.dev = 203.0.113.10"
Hasil: 203.0.113.10, disimpan di cache
- Cache adalah tempat menyimpan jawaban sementara. Browser punya cache sendiri, sistem operasi (OS, misalnya Windows, macOS, atau Android) juga punya. Kalau jawabannya sudah ada di sini, pencarian selesai tanpa bertanya ke siapa pun.
- Resolver (recursive resolver) adalah server DNS yang mencarikan jawaban untukmu. Biasanya milik ISP-mu, atau resolver publik seperti
1.1.1.1dan8.8.8.8. Kalau dia belum tahu jawabannya, dia bertanya berantai ke tiga server berikut. - Root server adalah titik awal DNS. Dia gak tahu IP-nya, tapi tahu server mana yang mengurus akhiran
.dev. - Server TLD mengurus satu akhiran domain (TLD, top-level domain), misalnya
.com,.dev, atau.id. Dia tahu server mana yang memegang databelajarweb.dev. - Authoritative server memegang data resmi domain itu, diatur oleh pemilik domain. Dialah yang memberi alamat IP final.
Jadi urutan besarnya: cache browser, cache OS, resolver, lalu authoritative server. Root dan server TLD ditanya oleh resolver di tengah jalan. Jawaban yang ketemu disimpan di cache, jadi kunjungan berikutnya langsung dijawab cache browser. Itu jawaban tebakannya: gak perlu bertanya dari awal.
Alamat IPv4 dan IPv6
Alamat IPv4 terdiri dari empat angka yang dipisah titik, misalnya 192.168.1.1. Tiap angka disebut oktet, nilainya dari 0 sampai 255. Jadi IPv4 selalu punya 4 oktet. Jumlah alamat IPv4 cuma sekitar 4,3 miliar dan sudah gak cukup, makanya ada IPv6: 8 kelompok angka heksadesimal yang dipisah titik dua, misalnya 2001:db8:0:0:0:0:0:1, yang boleh disingkat jadi 2001:db8::1.
Record dan TTL
Data sebuah domain disimpan sebagai record. Empat yang paling sering dipakai:
| Record | Isinya | Contoh |
|---|---|---|
| A | alamat IPv4 | belajarweb.dev → 203.0.113.10 |
| AAAA | alamat IPv6 | belajarweb.dev → 2001:db8::10 |
| CNAME | nama lain (alias) | www.belajarweb.dev → belajarweb.dev |
| MX | server email | belajarweb.dev → mail.belajarweb.dev |
Tiap record punya TTL (time to live): berapa detik jawabannya boleh disimpan di cache. TTL 300 artinya 5 menit. Setelah itu cache membuang jawabannya, dan pencarian berikutnya bertanya lagi.
⚠️ Jebakan yang sering ketemu
- Ganti record gak langsung kelihatan. Cache di banyak tempat masih menyimpan jawaban lama sampai TTL-nya habis. Mau pindah server? Turunkan TTL sehari sebelumnya.
- CNAME gak bisa di domain utama. Aturan DNS melarang CNAME di nama yang punya record lain, dan domain utama (
belajarweb.dev) selalu punya. Pakai A atau AAAA di sana. - File hosts menang duluan. OS mengecek file
hosts, daftar nama dan IP yang ditulis manual, sebelum bertanya ke luar. Developer memakainya untuk mengarahkan domain ke komputer sendiri (127.0.0.1), lalu lupa menghapusnya. - DNS bisa dipalsukan. Serangan DNS spoofing memberi IP palsu supaya kamu masuk ke situs tiruan. DNSSEC menandatangani record supaya keasliannya bisa dicek, dan DNS over HTTPS (DoH) mengenkripsi pertanyaan DNS supaya gak bisa diintip di jalan.
TL;DR: DNS menerjemahkan nama domain jadi alamat IP. Urutan pencariannya: cache browser, cache OS, resolver, lalu authoritative server, dengan root dan server TLD ditanya resolver di tengah jalan. Jawabannya disimpan di cache selama TTL. IPv4 punya 4 oktet, misalnya 192.168.1.1. Record A menunjuk ke IPv4, AAAA ke IPv6, CNAME ke nama lain, MX ke server email.