DNS Server
Definisi dan Peran DNS Server
DNS server (Domain Name System server) adalah server
yang menerjemahkan nama domain yang mudah diingat oleh manusia
(seperti contoh.com) menjadi alamat IP numerik (seperti
192.168.1.10) yang diperlukan oleh perangkat jaringan
untuk berkomunikasi. DNS server merupakan salah satu infrastruktur
kritis dalam jaringan komputer - tanpa DNS, pengguna harus mengingat
alamat IP setiap layanan yang ingin diakses.
Dalam konteks implementasi lokal, organisasi biasanya menjalankan DNS server internal untuk melayani resolusi nama di jaringan privat, mengurangi ketergantungan pada server eksternal, dan menyediakan layanan like local hostname resolution.
Jenis Implementasi DNS Server
1. BIND9 (Berkeley Internet Name Domain)
BIND9 adalah DNS server paling matang dan paling banyak digunakan di dunia. Dikembangkan oleh Internet Systems Consortium (ISC), BIND9 mendukung semua fitur DNS standar: zone transfer, DNSSEC, TSIG, view-based routing, dan response rate limiting. Cocok untuk organisasi yang membutuhkan DNS server dengan kontrol penuh dan fitur lengkap.
2. Unbound
Unbound adalah DNS resolver yang berfokus pada keamanan dan performa. Dikembangkan oleh NLnet Labs, Unbound mendukung DNSSEC validation secara bawaan, privacy melalui QNAME minimization, dan arsitektur modular. Unbound sering dijadikan recursive resolver lokal untuk menggantikan forwarder ke server ISP.
3. Dnsmasq
Dnsmasq adalah DNS forwarder dan DHCP server ringan. Dirancang untuk jaringan skala kecil hingga menengah seperti home network dan embedded systems. Dnsmasq meneruskan query ke DNS server upstream sambil menyediakan caching dan DHCP dalam satu daemon. Tidak mendukung fitur DNS lanjutan seperti zone transfer atau DNSSEC penuh.
Forwarder vs Recursive
- Recursive resolver: Server yang melakukan proses resolusi dari awal dengan menelusuri hierarki DNS dari root server, TLD server, hingga authoritative server. Membutuhkan akses internet dan cache untuk efisiensi.
- Forwarder: Server yang meneruskan query ke DNS server lain (biasanya milik ISP atau publik seperti 8.8.8.8) tanpa melakukan resolusi sendiri. Lebih sederhana dan mengurangi lalu lintas DNS keluar.
Strategi umum: gunakan forwarder untuk server internal dan recursive resolver (dengan DNSSEC validation) untuk server yang melayani klien langsung.
Zone File
Zone file adalah file teks yang berisi resource records (RR) untuk sebuah domain. Dua jenis utama:
Forward Zone
Memetakan nama domain ke alamat IP. Contoh entri:
$TTL 86400
@ IN SOA ns1.contoh.com. admin.contoh.com. (
2024072101 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
86400 ; minimum TTL
)
@ IN NS ns1.contoh.com.
@ IN NS ns2.contoh.com.
@ IN A 192.168.1.10
www IN A 192.168.1.10
mail IN A 192.168.1.20
Reverse Zone
Memetakan alamat IP kembali ke nama domain (PTR record). Penting untuk verifikasi identitas server (misal pada SMTP).
$TTL 86400
@ IN SOA ns1.contoh.com. admin.contoh.com. (
2024072101 ; serial
3600 ; refresh
...
)
@ IN NS ns1.contoh.com.
@ IN NS ns2.contoh.com.
10 IN PTR ns1.contoh.com.
20 IN PTR mail.contoh.com.
Master-Slave Replication
- Master server (primary): Server yang memiliki otoritas penuh atas zone file. Semua perubahan dilakukan di master.
- Slave server (secondary): Server yang menerima salinan zone dari master melalui proses zone transfer. Menyediakan redundansi dan load balancing untuk query DNS.
Proses replikasi: Slave secara periodik memeriksa serial number zone di master. Jika serial meningkat (karena ada perubahan), slave menjalankan zone transfer - baik AXFR (full transfer) atau IXFR (incremental transfer).
Konfigurasi Dasar BIND9
Berikut contoh konfigurasi BIND9 untuk zona forward dengan dua name server.
File /etc/bind/named.conf.local:
zone "contoh.com" {
type master;
file "/etc/bind/db.contoh.com";
allow-transfer { 192.168.1.11; }; // IP slave
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};
File /etc/bind/named.conf.options:
options {
directory "/var/cache/bind";
recursion yes;
allow-query { any; };
forwarders {
8.8.8.8;
8.8.4.4;
};
dnssec-validation auto;
listen-on { 192.168.1.10; };
};
Konfigurasi ini menjadikan server sebagai authoritative DNS
untuk domain contoh.com sekaligus recursive
resolver untuk klien internal. Setelah konfigurasi selesai,
restart BIND9 dengan systemctl restart bind9 dan
verifikasi menggunakan dig contoh.com atau
nslookup.