Konfigurasi DNS Server Pada Debian 9


Domain Name System merupakan sebuah sistem pemetaan ip address ke dalam bentuk sistem penamaan (domain). DNS berfungsi untuk memudahkan manusia dalam mengingat alamat sebuah website atau hostname sebuah komputer.

DNS bekerja dengan cara melakukan resolve terhadap domain yang kita request. Jika digambarkan secara sederhana, proses kerja sebuah DNS server adalah seperti berikut (klik gambar) :

Konfigurasi DNS Server Pada Debian 9 - Cara Kerja DNS

Client mengakses sebuah website melalui browser. Pada saat itu client akan melakukan request ke server dns, menanyakan apakah ia mengetahui alamat dari domain tersebut.

Server dns kemudian melihat record (daftar catatan domain) yang dimiliki. Apabila domain yang diminta oleh client ada pada record, maka server akan mengirimkan balasan ke client, memberitahukan alamat ip dari domain tersebut.

Client kemudian mengirimkan request http menuju ip address tersebut.

Jika pada saat proses resolve tadi, server dns tidak menemukan record dari domain yang diminta oleh client, maka server akan mem-forward request tersebut ke server dns yang lainnya (apabila dikonfigurasi) hingga menemukan alamat yang dicari.

Jika tidak ditemukan record terkait domain tersebut, maka akan terjadi kegagalan yang biasanya ditandai dengan tampilan ERR_NAME_NOT_RESOLVED atau sejenisnya pada web browser client.

Pada postingan kali ini kita akan belajar mengkonfigurasi dns server pada sistem operasi debian 9. Berikut adalah contoh topologi untuk membentuk tutorial ini :

Topologi DNS Server

Tujuan akhir yang akan kita capai adalah client dapat mengakses web server menggunakan domain.

Untuk konfigurasi web server tidak dibahas pada postingan ini. Sebenarnya kawan-kawan cukup menginstal service web server saja  (apache2 atau nginx) tanpa perlu berbagai konfigurasi karena web server di sini hanya sebagai ‘pendukung’ untuk melakukan pengujian dns.

Kita lanjutkan, secara umum langkah-langkah dalam mengkonfigurasi dns server adalah :
  1. Menginstal service dns
  2. Menjalankan service dns apabila belum aktif
  3. Membuat atau mendefinisikan zone
  4. Memetakan nama domain/sub domain ke dalam ip address (konfigurasi file forward)
  5. Memetakan ip address ke nama domain (konfigurasi file teverse)
  6. Merestart service dns
Pada tutorial ini, seluruh perintah yang berkaitan dengan konfigurasi dns server dilakukan dalam mode root. Oleh karena itu jika posisi kalian sedang menggunakan user non root, maka silahkan masuk ke mode root menggunakan perintah su .

Menginstal Service DNS

Untuk membuat dns server, kita membutuhkan paket aplikas bind9. Oleh karena itu kita akan menginstal bind9.
apt install bind9 -y

Setelah instalasi selesai, kita cek status service dns menggunakan perintah :
systemctl status bind9
atau
service bind9 status

Apabila service belum aktif, maka jalankan service dengan perintah :
systemctl start bind9
atau
service bind9 start

Mendefinisikan Zone

Pada bagian ini kita akan mendefinisikan zona-zona untuk domain yang akan kita gunakan. Di dalam zona ini kita tentukan file forward dan file reverse mana yang akan dipakai dan di-load oleh server dns.

Edit file named.conf.local yang berada di dalam direktori /etc/bind. Agar lebih mudah, kita masuk dahulu ke dalam direktori /etc/bind.
cd /etc/bind

kemudian edit file menggunakan perintah :
nano named.conf.local

Pada baris paling bawah, kita definisikan zona untuk domain yang akan kita gunakan.
zone "domainqu.co" {
        type master;
        file "/etc/bind/domainqu.co.forward";
};

zone "7.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/domainqu.co.reverse";
};

Sesuaikan beberapa konfigurasi berikut dengan milik kalian masing-masing :
  • domainqu.co diganti menjadi nama domain kalian
  • domainqu.co.forward diganti dengan nama file forward milik kalian
  • 7.168.192 diganti dengan blok network address kalian (pastikan penulisannya dilakukan secara terbalik)
  • domainqu.co.reverse diganti dengan nama file reverse milik kalian


Konfigurasi File Forward

File forward memiliki fungsi untuk memetakan nama domain ke ip address. Sebelum mengkonfigurasi file forward, kita perlu membuat file konfigurasinya dahulu dengan cara menduplikasi file forward yang sudah ada.
cp db.local domainqu.co.forward
Perintah di atas dilakukan di dalam direktori /etc/bind.

Kemudian kita edit file domainqu.co.forward
nano domainqu.co.forward

Ini adalah isi dari file forward yang kita duplikasi tadi.
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
@       IN      A       127.0.0.1
@       IN      AAAA    ::1

Ubah file di atas menjadi seperti ini :
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     domainqu.co. root.domainqu.co. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@ IN      NS      ns1.domainqu.co.
@ IN      A       192.168.7.97
www IN      A       192.168.7.97
ns1 IN      A       192.168.7.96

Penjelasan :
ns1.domainqu.co merupakan nameserver dari si dns server. Nameserver inilah yang akan dihubungi oleh client ketika ingin menanyakan ip address suatu domain.

Pada file forward ini kita memetakan domain/subdomain ke ip address yang sesuai. Pada konfigurasi di atas kita memetakan domain domainqu.co ke ip 192.168.7.97 yakni pada baris @    IN    A    192.168.7.97.

Kemudian subdomain www dipetakan ke ip address yang sama dengan domainqu.co. ini artinya ketika nanti kita mengakses www.domainqu.co maka sama saja kita mengakses ke 192.168.7.97.

Berikutnya, subdomain ns1 yang dipetakan ke ip 192.168.7.96 yakni ip dari server dns. Ketika nanti kita melakukan nslookup domain ns1.domainqu.co maka akan diinfokan bahwa domain tersebut memiliki ip 192.168.7.96

Konfigurasi File Reverse

File reverse merupakan kebalikan dari file forward, yakni memetakan ip address ke nama domain. Buat dahulu file konfigurasinya.
cp db.127 domainqu.co.reverse

Edit file reverse tersebut.
nano domainqu.co.reverse

Ini adalah tampilan default dari file reverse yang kita duplikasi tadi.
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
1.0.0   IN      PTR     localhost.

Ubah menjadi seperti ini :
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     domainqu.co. root.domainqu.co. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.domainqu.co.
96      IN      PTR     ns1.domainqu.co.
97      IN      PTR     domainqu.co.
97      IN      PTR     www.domainqu.co.

Penjelasan :
Di awal tadi kita membuat sebuah zona dengan nama "7.168.192.in-addr.arpa". Karena pada zona tersebut kita sudah mendefinisikan tiga blok ip address, maka pada file reverse ini kita cukup mendefinisikan blok terakhir dari ip address.

Angka 96 menunjuk ke ip 192.168.7.96. Begitu juga dengan angka 97 yang menunjuk ke ip 192.168.7.97.

Pada konfigurasi tersebut, ip 192.168.7.96 dipetakan ke domain ns1.domainqu.co. Nilai ini harus sesuai dengan pemetaan yang kita lakukan pada file forward tadi.

Kemudian ip 192.168.7.97 dipetakan dua kali yakni ke domain domainqu.co dan www.domainqu.co sesuai dengan konfigurasi pada file forward tadi.

Sampai di sini konfigurasi dns server sudah selesai.

Merestart Service DNS

Sebelum merestart service, kita cek dahulu apakah konfigurasi yang dilakukan sudah benar dan tidak ada error. Cek dengan perintah :
named-checkconf

Apabila tidak ada peringatan error maka konfigurasi sudah benar. Selanjutnya kita restart service dns dengan perintah :
systemctl restart bind9
atau
service bind9 restart

Konfigurasi IP DNS

Agar domain yang sudah kita setting dapat dikenali di dalam jaringan, maka kita perlu mengkonfigurasi ip dns yang digunakan oleh setiap host.

Pada komputet server dns dan server web, masukkan ip dns server ke dalam file resolv.conf.
echo "nameserver 192.168.7.96" > /etc/resolv.conf

Lakukan hal yang sama di komputer client.

Mengkonfigurasi IP DNS Pada Windows

Pengujian

Lakukan resolve menggunakan perintah dig atau nslookup.

Pada server dns :
root@dnsserv:/etc/bind# nslookup www.domainqu.co
Server:         192.168.7.96
Address:        192.168.7.96#53

Name:   www.domainqu.co
Address: 192.168.7.97

root@dnsserv:/etc/bind# nslookup ns1.domainqu.co
Server:         192.168.7.96
Address:        192.168.7.96#53

Name:   ns1.domainqu.co
Address: 192.168.7.96

root@dnsserv:/etc/bind#

Resolve pada web server :
xenial@ubuntuserv:~$ nslookup www.domainqu.co
Server:         192.168.7.96
Address:        192.168.7.96#53

Name:   www.domainqu.co
Address: 192.168.7.97

xenial@ubuntuserv:~$

Resolve pada sisi client :

Proses Resolve Domain di Windows

Kemudian kita coba mengakses web server menggunakan nama domain.

Mengakses Web Server Menggunakan Domain

Demikianlah tutorial menginstal dan mengkonfigurasi dns server pada debian 9. Dengan melakukan langkah-langkah di atas kalian telah berhasil membuat serbuah server dns yang bisa membantu client untuk mengakses web server menggunakan nama domain.


Load Comments