1. Pengenalan DNS
DNS (Domain Name System) adalah sistem yang menerjemahkan nama domain yang mudah diingat manusia (seperti google.com) menjadi alamat IP yang dipahami komputer (seperti 142.250.80.46). Tanpa DNS, kita harus menghafal angka-angka IP untuk mengakses setiap website.
DNS sering disebut sebagai "phonebook of the internet" β buku telepon internet. Saat kamu mengetik www.google.com di browser, DNS bekerja di balik layar untuk menemukan IP address yang sesuai, sehingga browser bisa menghubungi server Google.
Mengapa DNS Penting?
| Aspek | Penjelasan |
|---|---|
| User-Friendly | Pengguna cukup menghafal nama domain, bukan deretan angka IP |
| Abstraction | IP server bisa berubah tanpa mengubah domain β cukup update DNS record |
| Load Distribution | Satu domain bisa mengarah ke banyak server (round-robin DNS) |
| Email Routing | MX record menentukan server email yang menerima pesan untuk domain |
| Service Discovery | SRV record membantu menemukan layanan dalam jaringan |
| Scalability | Sistem terdistribusi global yang mampu menangani miliaran query per hari |
Sejarah DNS
| Tahun | Peristiwa |
|---|---|
| 1983 | Paul Mockapetris menemukan DNS (RFC 882 dan 883) |
| 1987 | DNS diperbarui menjadi RFC 1034 dan 1035 (masih berlaku hingga kini) |
| 1998 | ICANN didirikan untuk mengelola DNS global |
| 2005 | Internationalized Domain Names (IDN) β domain dengan karakter non-ASCII |
| 2010 | DNSSEC mulai diimplementasikan secara luas |
| 2018 | DNS over HTTPS (DoH) diperkenalkan untuk privasi |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β DNS RESOLUTION PROCESS β β β β User mengetik: www.google.com β β β β ββββββββββββ ββββββββββββ β β β Browser ββββ Query DNS βββββββΆβ DNS β β β β β β Resolver β β β ββββββββββββ ββββββββββββ β β β β β β β βββ Response βββββββββββ β β β 142.250.80.46 β β β β β β β ββββββΌββββββ ββββββΌββββββ β β β HTTP GET βββββββββββββββββββββββΆβ Google β β β β Request β 142.250.80.46 β Server β β β ββββββββββββ ββββββββββββ β β β β DNS memetakan nama β IP, browser menghubungi server β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2. Struktur dan Hierarki DNS
DNS memiliki struktur hierarkis tree yang terorganisir dari root hingga domain individual. Struktur ini memungkinkan distribusi informasi yang efisien di seluruh dunia.
Hierarki DNS
. (Root)
β
ββββββββββββββββββΌβββββββββββββββββ
β β β
.com .org .id
β β β
ββββββΌβββββ βββββΌββββ βββββΌββββ
β β β β β β
google amazon mozilla wiki google.id kominfo.go.id
β
ββββΌβββ
β β
www mail
Komponen Domain Name
| Komponen | Contoh | Penjelasan |
|---|---|---|
| Root Domain | . (titik) | Titik teratas hierarki, dioperasikan oleh 13 root server |
| Top-Level Domain (TLD) | .com, .org, .id | Domain tingkat atas β dikelola oleh registry |
| Second-Level Domain | Nama domain utama yang didaftarkan | |
| Subdomain | www, mail, api | Sub-divisi dari domain utama |
| FQDN | www.google.com. | Fully Qualified Domain Name (termasuk root dot) |
Jenis-jenis TLD
| Jenis TLD | Contoh | Penjelasan |
|---|---|---|
| Generic TLD (gTLD) | .com, .net, .org, .info | TLD generik terbuka untuk umum |
| Country Code TLD (ccTLD) | .id, .sg, .jp, .uk | TLD berdasarkan kode negara |
| Sponsored TLD (sTLD) | .gov, .edu, .mil | TLD untuk organisasi tertentu |
| New gTLD | .app, .dev, .tech, .cloud | TLD baru yang mulai tersedia sejak 2012 |
3. Cara Kerja DNS (DNS Resolution)
Saat kamu mengetik URL di browser, proses DNS resolution terjadi dalam hitungan milidetik. Namun, di balik layar terjadi banyak langkah yang kompleks. Berikut adalah alur lengkapnya:
Browser OS Cache Resolver Root Server
β β β β
β 1. Cek cache ββββββΆβ β β
β β β β
β 2. Cache miss βββββΆβ β β
β (atau expired) β β β
β β β β
β 3. Kirim query βββββΌββββββββββββββββΆβ β
β β β β
β β β 4. Cek cache βββββΆβ
β β β β
β β β 5. Query Root ββββΆβ
β β β (.com?) β
β β β β
β β β βββ 6. TLD NS ββββ
β β β (.com server) β
β β β β
β β β 7. Query TLD βββββΆβ TLD Server
β β β (google.com?) β
β β β β
β β β βββ 8. Auth NS ββββ
β β β (dns.google) β
β β β β
β β β 9. Query Auth ββββΆβ Authoritative
β β β β
β β β βββ 10. Answer ββββ
β β β 142.250.80.46 β
β β β β
β βββ 11. Response βββΌβββββββββββββββββ β
β 142.250.80.46 β β β
β β β β
β 12. Browser menghubungi 142.250.80.46 β
Tipe DNS Query
| Tipe Query | Penjelasan |
|---|---|
| Recursive Query | Client meminta resolver untuk memberikan jawaban final (IP atau error) |
| Iterative Query | Server memberikan jawaban terbaik yang dimilikinya, atau merujuk ke server lain |
| Inverse Query | Mencari domain dari IP (reverse DNS lookup) β jarang digunakan |
13 Root Name Server
Root server adalah server DNS tingkat tertinggi yang mengetahui lokasi semua TLD server. Meskipun disebut "13", sebenarnya ada ratusan server fisik yang tersebar di seluruh dunia menggunakan teknologi Anycast.
| Server | Operator | Lokasi |
|---|---|---|
| A.root-servers.net | Verisign | Global (Anycast) |
| B.root-servers.net | ISI (USC) | Marina del Rey, USA |
| C.root-servers.net | Cogent | Global (Anycast) |
| D.root-servers.net | University of Maryland | College Park, USA |
| E.root-servers.net | NASA | Mountain View, USA |
| F.root-servers.net | ISC | Global (Anycast) |
| G-H.root-servers.net | US DoD / Army | Various |
| I.root-servers.net | Netnod | Stockholm, Swedia |
| J.root-servers.net | Verisign | Global (Anycast) |
| K.root-servers.net | RIPE NCC | Global (Anycast) |
| L.root-servers.net | ICANN | Global (Anycast) |
| M.root-servers.net | WIDE Project | Tokyo, Jepang |
4. DNS Resolver
DNS Resolver (juga disebut recursive resolver) adalah server yang bertindak sebagai perantara antara client dan server DNS lainnya. Resolver melakukan pencarian rekursif untuk menemukan jawaban atas query DNS client.
Jenis-jenis DNS Server
| Jenis | Fungsi | Contoh |
|---|---|---|
| Recursive Resolver | Melakukan pencarian atas nama client | ISP DNS, Google 8.8.8.8, Cloudflare 1.1.1.1 |
| Root Name Server | Tahu lokasi semua TLD server | a.root-servers.net hingga m.root-servers.net |
| TLD Name Server | Menyimpan info tentang domain di TLD-nya | Server untuk .com, .org, .id |
| Authoritative Name Server | Menyimpan record DNS asli untuk domain | dns.google.com, ns1.cloudflare.com |
Authoritative vs Non-Authoritative
Authoritative server adalah sumber data asli β memiliki jawaban definitif untuk domain tertentu. Non-authoritative server (seperti resolver) menyimpan salinan data dari cache, bukan sumber asli.
Gunakan dig +trace example.com untuk melihat seluruh proses DNS resolution dari root server hingga authoritative server. Ini sangat berguna untuk troubleshooting DNS propagation dan konfigurasi.
5. Jenis-jenis DNS Record
DNS record adalah entri data dalam zone file yang menyimpan informasi tentang domain. Setiap record memiliki tipe yang berbeda untuk tujuan berbeda. Berikut adalah record yang paling penting:
Record DNS Utama
| Record | Fungsi | Contoh |
|---|---|---|
| A | Mapping domain ke IPv4 address | example.com β 93.184.216.34 |
| AAAA | Mapping domain ke IPv6 address | example.com β 2606:2800:220:1:... |
| CNAME | Alias β mengarah ke domain lain | www.example.com β example.com |
| MX | Mail server untuk domain | example.com β mail.example.com (pri 10) |
| NS | Name server yang bertanggung jawab atas domain | example.com β ns1.dnsprovider.com |
| TXT | Text record β SPF, DKIM, domain verification | "v=spf1 include:_spf.google.com ~all" |
| SOA | Start of Authority β info zone, serial, timer | Menyimpan admin email, serial number, refresh interval |
| PTR | Reverse DNS β IP ke nama domain | 34.216.184.93.in-addr.arpa β example.com |
| SRV | Service record β lokasi layanan spesifik | _sip._tcp.example.com β sip.example.com:5060 |
| CAA | Certificate Authority Authorization | Menentukan CA yang boleh menerbitkan SSL untuk domain |
Record A vs CNAME
A Record (langsung ke IP): ββββββββββββββββ βββββββββββββββββββββ β example.com βββββΆβ 93.184.216.34 β Langsung ββββββββββββββββ βββββββββββββββββββββ CNAME Record (ke domain lain): ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββ β www.example βββββΆβ example.com βββββΆβ 93.184.216.34 β 2 langkah β .com β β (via A rec) β β β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββ β οΈ CNAME tidak bisa digunakan untuk root domain (apex) β οΈ CNAME menambah 1 query DNS lagi (lebih lambat sedikit) β CNAME berguna untuk subdomain (www, api, mail)
TTL (Time To Live)
Setiap DNS record memiliki TTL yang menentukan berapa lama (dalam detik) resolver boleh menyimpan record di cache. Setelah TTL habis, resolver harus meng-query ulang ke authoritative server.
| TTL | Penggunaan | Kelebihan | Kekurangan |
|---|---|---|---|
| Rendah (60-300s) | Saat migrasi, failover | Perubahan cepat terpropagasi | Query lebih banyak, server lebih bekerja |
| Sedang (3600-14400s) | Website umum | Keseimbangan antara cepat dan efisien | Perubahan perlu waktu 1-4 jam |
| Tinggi (86400s+) | Record yang jarang berubah (NS, MX) | Sangat efisien, sedikit query | Perubahan sangat lambat terpropagasi |
6. DNS Caching dan TTL
DNS caching adalah mekanisme penyimpanan sementara hasil query DNS untuk mengurangi latency dan beban server. Cache disimpan di berbagai tingkatan dalam proses DNS resolution.
Lokasi DNS Cache
| Lokasi Cache | Penjelasan | Cara Bersihkan |
|---|---|---|
| Browser Cache | Browser menyimpan DNS record sendiri | Restart browser atau clear cache |
| OS Cache (Stub Resolver) | Sistem operasi menyimpan cache lokal | ipconfig /flushdns (Windows) atau sudo systemd-resolve --flush-caches (Linux) |
| Recursive Resolver Cache | ISP atau public DNS menyimpan cache | Tidak bisa dibersihkan dari client β tunggu TTL expire |
Jika kamu baru mengubah DNS record tetapi perubahan belum terlihat, kemungkinan besar itu karena cache yang belum expired. Langkah yang bisa dilakukan:
- Flush DNS cache lokal:
ipconfig /flushdns - Cek TTL tersisa dengan
dig example.com - Gunakan DNS berbeda (misal 8.8.8.8) untuk cek
- Tunggu hingga TTL expire (bisa 24-48 jam untuk propagasi penuh)
Negative Caching
Selain caching jawaban positif (IP ditemukan), DNS juga melakukan negative caching β menyimpan informasi bahwa domain tidak ditemukan (NXDOMAIN). Negative caching menggunakan nilai SOA minimum TTL yang biasanya antara 300-3600 detik. Ini mencegah resolver mengulangi query untuk domain yang tidak ada.
7. DNS Zone dan Zone File
DNS Zone adalah bagian dari namespace DNS yang dikelola oleh satu organisasi atau name server. Zone file adalah file teks yang berisi semua DNS record untuk zone tersebut.
Contoh Zone File
; Zone file for example.com
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2026062701 ; Serial number (format: YYYYMMDDnn)
7200 ; Refresh (2 jam)
3600 ; Retry (1 jam)
1209600 ; Expire (2 minggu)
300 ; Minimum TTL (5 menit)
)
; Name Servers
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
; A Records
@ IN A 93.184.216.34
www IN A 93.184.216.34
mail IN A 93.184.216.35
; AAAA Record
@ IN AAAA 2606:2800:220:1:248:1893:25c8:1946
; MX Records
@ IN MX 10 mail.example.com.
@ IN MX 20 mail2.example.com.
; CNAME Record
api IN CNAME www.example.com.
; TXT Records
@ IN TXT "v=spf1 include:_spf.google.com ~all"
Primary dan Secondary DNS
| Tipe | Penjelasan | Mekanisme |
|---|---|---|
| Primary (Master) | Server utama yang menyimpan zone file asli | Admin langsung mengedit record |
| Secondary (Slave) | Server cadangan yang menerima salinan dari primary | Zone transfer (AXFR/IXFR) dari primary |
| Hidden Primary | Primary server yang tidak melayani query publik | Hanya melayani zone transfer ke secondary |
8. DNSSEC: Keamanan DNS
DNSSEC (Domain Name System Security Extensions) adalah ekstensi keamanan untuk DNS yang memastikan integritas dan autentikasi data DNS. DNSSEC mencegah serangan DNS spoofing dan cache poisoning dengan menandatangani record DNS secara kriptografis.
Masalah Keamanan DNS Tanpa DNSSEC
| Serangan | Penjelasan | Dampak |
|---|---|---|
| DNS Spoofing | Menyuntikkan jawaban DNS palsu | Korban dialihkan ke situs palsu |
| Cache Poisoning | Menginfeksi cache resolver dengan data palsu | Semua client menggunakan resolver tersebut terdampak |
| Man-in-the-Middle | Intersepsi dan modifikasi komunikasi DNS | Pencurian data dan kredensial |
Cara Kerja DNSSEC
Chain of Trust (Rantai Kepercayaan):
βββββββββββββββββββββββββββββββ
β Root Zone (KSK & ZSK) β Ditandatangani oleh ICANN
β . (root) β Trust Anchor utama
ββββββββββββββββ¬βββββββββββββββ
β DS record
ββββββββββββββββΌβββββββββββββββ
β TLD Zone (KSK & ZSK) β Ditandatangani oleh registry
β .com β
ββββββββββββββββ¬βββββββββββββββ
β DS record
ββββββββββββββββΌβββββββββββββββ
β Domain Zone (KSK & ZSK) β Ditandatangani oleh pemilik domain
β example.com β
ββββββββββββββββ¬βββββββββββββββ
β
ββββββββββββββββΌβββββββββββββββ
β DNS Record (RRSIG) β Setiap record ditandatangani
β A, AAAA, MX, dll. β
βββββββββββββββββββββββββββββββ
KSK = Key Signing Key (untuk menandatangani KSK)
ZSK = Zone Signing Key (untuk menandatangani record)
DS = Delegation Signer (hash dari KSK child)
RRSIG = Tanda tangan digital untuk setiap record set
Komponen DNSSEC
| Komponen | Fungsi |
|---|---|
| RRSIG | Tanda tangan digital untuk setiap record set (Resource Record Signature) |
| DNSKEY | Public key yang digunakan untuk memverifikasi tanda tangan |
| DS (Delegation Signer) | Hash dari DNSKEY child zone, disimpan di parent zone |
| NSEC/NSEC3 | Proof of non-existence β membuktikan domain/record tidak ada |
Gunakan dig +dnssec example.com untuk melihat DNSSEC record. Atau cek secara online di DNSSEC Analyzer untuk memvalidasi chain of trust domain tertentu.
9. DNS over HTTPS (DoH) dan DNS over TLS (DoT)
DNS tradisional mengirim query dalam bentuk plaintext yang bisa dicegat dan dibaca oleh siapa saja (ISP, hacker, pemerintah). DoH dan DoT adalah solusi untuk mengenkripsi query DNS demi privasi.
Perbandingan DoH vs DoT
| Aspek | DNS Tradisional | DoH (DNS over HTTPS) | DoT (DNS over TLS) |
|---|---|---|---|
| Enkripsi | β Tidak | β HTTPS (port 443) | β TLS (port 853) |
| Port | 53 | 443 | 853 |
| Stealth | Terlihat jelas | Bercampur dengan HTTPS traffic | Bisa diblokir via port |
| Kecepatan | Cepat | Sedikit lebih lambat (TLS overhead) | Sedikit lebih lambat |
| Browser Support | Semua | Chrome, Firefox, Edge | Perlu konfigurasi OS |
| Kontrol | Mudah dimonitor | Sulit dimonitor (bercampur HTTPS) | Bisa dimonitor via port |
Public DNS Servers yang Mendukung DoH/DoT
| Provider | IPv4 | DoH URL | DoT Hostname |
|---|---|---|---|
| 8.8.8.8 | https://dns.google/dns-query | dns.google | |
| Cloudflare | 1.1.1.1 | https://cloudflare-dns.com/dns-query | one.one.one.one |
| Quad9 | 9.9.9.9 | https://dns.quad9.net/dns-query | dns.quad9.net |
| OpenDNS | 208.67.222.222 | - | - |
10. Troubleshooting DNS
Masalah DNS sangat umum terjadi dan bisa menyebabkan website tidak bisa diakses meskipun koneksi internet normal. Berikut panduan troubleshooting DNS:
Langkah-langkah Troubleshooting
| Langkah | Perintah | Tujuan |
|---|---|---|
| 1. Cek cache lokal | ipconfig /displaydns | Lihat DNS cache di Windows |
| 2. Flush cache | ipconfig /flushdns | Bersihkan DNS cache lokal |
| 3. Cek resolver yang dipakai | ipconfig /all | Lihat DNS server yang aktif |
| 4. Query langsung | nslookup example.com | Test DNS resolution |
| 5. Query detail | dig example.com +short | Cek IP dari domain |
| 6. Trace resolution | dig +trace example.com | Ikuti seluruh proses resolution |
| 7. Cek record spesifik | dig MX example.com | Cek record tertentu |
| 8. Ganti resolver | Coba 8.8.8.8 atau 1.1.1.1 | Bypass resolver ISP yang bermasalah |
Masalah DNS Umum
| Masalah | Gejala | Solusi |
|---|---|---|
| DNS not responding | "Server not found" di browser | Ganti DNS server, flush cache |
| Cache stale | Domain mengarah ke IP lama setelah migrasi | Flush cache, tunggu TTL expire |
| DNS propagation delay | Perubahan DNS belum terlihat di beberapa lokasi | Tunggu 24-48 jam, kurangi TTL sebelum migrasi |
| NXDOMAIN | "Domain does not exist" | Cek domain registration, NS record |
| SERVFAIL | "Server failure" | Cek authoritative server, DNSSEC config |
| Loop detection | CNAME loop antar domain | Audit CNAME chain, hapus loop |
11. Populer Public DNS Server
Selain DNS server ISP, kamu bisa menggunakan public DNS server yang seringkali lebih cepat, aman, dan memiliki fitur tambahan:
| Provider | Primary | Secondary | Keunggulan |
|---|---|---|---|
| Google Public DNS | 8.8.8.8 | 8.8.4.4 | Cepat, reliable, global |
| Cloudflare | 1.1.1.1 | 1.0.0.1 | Tercepat, privasi tinggi, no logging |
| Quad9 | 9.9.9.9 | 149.112.112.112 | Blocking malware domains |
| OpenDNS | 208.67.222.222 | 208.67.220.220 | Content filtering, parental control |
| AdGuard DNS | 94.140.14.14 | 94.140.15.15 | Built-in ad blocking |
| NextDNS | Kustomisasi | Kustomisasi | Customizable blocking, logging, analytics |
Gunakan tool seperti namebench atau dnsperftest untuk mengukur kecepatan response DNS server dari lokasi kamu. DNS server tercepat bisa berbeda tergantung ISP dan lokasi geografis.
12. Quiz: Uji Pemahamanmu!
Setelah membaca tutorial di atas, jawablah 5 pertanyaan berikut untuk menguji pemahamanmu tentang DNS: