DNS Server merupakan sebuah server yang menjalankan layanan DNS (Domain Name System) untuk jaringannya. Ketika ada host yang ingin mengakses sebuah host yang lain dengan menggunakan nama domain, maka host tersebut akan berkomunikasi dahulu dengan server dns untuk mendapatkan alamat ip dari host yang ingin dituju.
Dalam penerapannya, dikenal dua jenis server DNS, yakni Primary Server atau disebut juga DNS Master, dan Secondary Server atau disebut juga DNS Slave.
DNS Master merupakan server dns yang dapat melakukan read and write terhadap konfigurasi dns. Di server inilah konfigurasi dns dibuat, seperti zona dan record file.
Sedangkan DNS Slave merupakan server dns yang hanya bisa melakukan read (read) terhadap konfigurasi dns. Server dns slave difungsikan sebagai server cadangan (backup). Apabila server utama mengalami down, maka layanan dns masih dapat berjalan dan akan di-handle oleh dns slave.
DNS Master akan melakukan transfer konfigurasi (file record) kepada dns slave. Kemudian dns slave akan menggunakan record tersebut sebagai acuan untuk melayani request dns dari client.
Pada tutorial kali ini kita akan melakukan konfigurasi DNS Master dan Slave. Primary server (master) menggunakan sistem operasi debian 9. Sementara secondary server (slave) bisa menggunakan debian 9, debian 8 atau yang lainnya. Akan tetapi di sini saya menggunakan debian 8 untuk dns slave.
Konfigurasi DNS Master
Tahap pertama adalah melakukan instalasi dan konfigurasi pada server dns master. Untuk cara menginstal dan konfigurasinya silahkan kawan-kawan baca pada postingan tentang cara mengkonfigurasi dns server di debian.
Apabila server dns sudah dikonfigurasi seperti pada tutorial di atas, maka selanjutnya kita edit kembali file
named.conf.local
.nano /etc/bind/named.conf.local
Tambahkan konfigurasi allow-transfer seperti di bawah ini :
zone "domainqu.co" {
type master;
file "/etc/bind/domainqu.co.forward";
allow-transfer {192.168.7.95;};
also-notify {192.168.7.95;};
};
zone "7.168.192.in-addr.arpa" {
type master;
file "/etc/bind/domainqu.co.reverse";
allow-transfer {192.168.7.95;};
also-notify {192.168.7.95;};
};
allow-transfer
berfungsi untuk mengijinkan dns master melakukan transfer record ke server cadangan.
Tambahkan juga konfigurasi
also-notify
yang berguna untuk memberikan notifikasi kepada DNS Slave ketika ada pembaruan zona.
Ganti ip
192.168.7.95
dengan ip DNS slave milik kalian. Kemudian simpan konfigurasi.
Selanjutnya adalah mengedit konfigurasi file forward.
nano /etc/bind/domainqu.co.forward
Tambahkan record domain untuk DNS slave.
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA domainqu.co. root.domainqu.co. (
210120191 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.domainqu.co.
@ IN NS ns2.domainqu.co.
@ IN A 192.168.7.97
www IN A 192.168.7.97
ns1 IN A 192.168.7.96
ns2 IN A 192.168.7.95
Pada file konfigurasi di atas, kita menambahkan subdomain
ns2
untuk server dns slave. Subdomain tersebut dipetakan ke ip address 192.168.7.95
(IP DNS slave).
Kita juga menambahkan record name server yakni :
@ IN NS ns2.domainqu.co
Dengan begitu, terdapat dua buah server dns, yang pertama yakni
ns1.domainqu.co
(DNS master) dan yang kedua adalah ns2.domainqu.co
(DNS slave).
Kemudian edit juga pada file reverse-nya. Lakukan tambahan konfigurasi seperti di bawah ini.
# nano /etc/bind/domainqu.co.reverse
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA domainqu.co. root.domainqu.co. (
210120191 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.domainqu.co.
@ IN NS ns2.domainqu.co.
96 IN PTR ns1.domainqu.co.
97 IN PTR domainqu.co.
97 IN PTR www.domainqu.co.
95 IN PTR ns2.domainqu.co.
Simpan file konfigurasi, lalu restart service dns.
systemctl restart bind9
atau
service bind9 restart
Terkahir, edit file
/etc/resolv.conf
lalu tambahkan ip address server dns slave.
# nano /etc.resolv.conf
nameserver 192.168.7.96
nameserver 192.168.7.95
Konfigurasi DNS Slave
Konfigurasi yang dilakukan pada dns slave adalah mendefinisikan zona seperti pada server dns master. Akan tetapi sebelum melakukan konfigurasi, instal dahulu service dns servernya.
apt install bind9
Selanjutnya edit file
named.conf.local
.nano /etc/bind/named.conf.local
Tambahkan konfigurasi berikut :
zone "domainqu.co" {
type slave;
file "domainqu.co.forward";
masters {192.168.7.96;};
};
Konfigurasi di atas adalah mendefinisikan zona "domainqu.co". Karena ini adalah DNS slave, maka
type
yang digunakan adalah slave
. Kemudian kita tambahkan DNS masternya pada bagian,masters {192.168.7.96;};
Silahkan ganti ip tersebut dengan ip dari DNS master kalian.
Pada konfigurasi di atas, kita hanya mendefinisikan forward zone, sedangkan reverse zone-nya tidak ada. Hal ini dikarenakan DNS slave tidak melakukan backup atau caching terhadap file reverse. Sehingga nanti hanya akan ada file forward saja yang akan diterima dari DNS master.
Kita juga tidak mendefinisikan direktori tempat menyimpan file forward-nya. Secara default, direktori yang akan digunakan untuk menyimpan file tersebut adalah
/var/cache/bind
.
Langkah berikutnya adalah mengedit file
/etc/resolv.conf
lalu menambahkan ip DNS master dan DNS slave.# nano /etc/resolv.conf
nameserver 192.168.7.96
nameserver 192.168.7.95
Kemudian merestart service dns.
systemctl restart bind9
atau
service bind9 restart
Verifikasi
Cek pada direktori
/var/cache/bind
apakah sudah ada file forward dari DNS master.# ls /var/cache/bind/
db.10 domainqu.co.forward managed-keys.bind
Kalian juga bisa melihat proses yang terjadi pada server slave ketika melakukan restart service dns.
# tail -f /var/log/syslog
....
Jan 21 10:56:03 dnsslave named[1438]: zone domainqu.co/IN: Transfer started.
Jan 21 10:56:03 dnsslave named[1438]: transfer of 'domainqu.co/IN' from 192.168.7.96#53: connected using 192.168.7.95#47918
Jan 21 10:56:03 dnsslave named[1438]: zone domainqu.co/IN: transferred serial 210120191
Jan 21 10:56:03 dnsslave named[1438]: transfer of 'domainqu.co/IN' from 192.168.7.96#53: Transfer completed: 1 messages, 8 records, 210 bytes, 0.003 secs (70000 bytes/sec)
Jan 21 10:56:03 dnsslave named[1438]: zone domainqu.co/IN: sending notifies (serial 210120191)
^C
Selanjutnya kita coba melakukan nslookup dari dns slave (dns master masih aktif).
root@dnsslave:~# nslookup ns2.domainqu.co
Server: 192.168.7.96
Address: 192.168.7.96#53
Name: ns2.domainqu.co
Address: 192.168.7.95
Kemudian kita coba matikan dns master-nya. Lalu lakukan nslookup lagi dari dns slave.
root@dnsslave:~# nslookup ns2.domainqu.co
Server: 192.168.7.95
Address: 192.168.7.95#53
Name: ns2.domainqu.co
Address: 192.168.7.95
root@dnsslave:~#
Terlihat bahwa ip server berubah menjadi ip dari dns slave.
Lakukan nslookup dari client. Namun sebelum itu, pastikan client sudah mengkonfigurasi dns sekundernya dengan ip Server DNS Slave.
nslookup dari client linux
Untuk client yang menggunakan sistem operasi windows kemungkinan besar akan gagal melakukan nslookup. Meski begitu client windows tetap bisa mengakses web server menggunakan nama domain.
akses web server dari client windows
Demikianlah tutorial konfigurasi dns master-slave pada debian server. Dengan mengikuti tutorial ini kalian seharusnya sudah bisa membuat server dns primer dan sekunder.