authoryanuarakhid - 19 Mei 2021 • Baca 6 Menit

Tutorial Ubuntu 20.04 LTS : Cara Instalasi dan Konfigurasi DNS Server menggunakan BIND 9


Tutorial Ubuntu 20.04 LTS : Cara Instalasi dan Konfigurasi DNS Server menggunakan BIND 9

Bagi seseorang yang bekerja pada bidang jaringan komputer tentunya tidak akan asing lagi ketika mendengar kata DNS. DNS (Domain Name Server) memiliki tugas utama untuk melakukan penerjemaahan Domain menjadi IP Address dan sebaliknya. Tanpa DNS maka akan sulit sekali ketika kita ingin membuka situs tertentu karena harus mengerti dahulu nomer IP Address nya. Berkat DNS masalah itu sudah bisa ditangani, karena pada dasarnya manusia lebih mudah mengingat kata daripada angka. Pada postingan ini kita akan melakukan instalasi dan konfigurasi DNS Server menggunakan BIND 9 pada Ubuntu Server 20.04 LTS.

Install


Sebelum melakukan instalasi paket aplikasi terlebih dahulu lakukan update dan upgrade sistem.

$ sudo apt update && sudo apt upgrade

Paket bind9 dapat di install melalui command berikut.

$ sudo apt install bind9

Config


Untuk mememulai konfigurasi DNS menggunakan BIND 9 terlebih dahulu kita pindah kedalam direktori /etc/bind.

$ cd /etc/bind
zonabiner@zonabiner:/etc/bind$ pwd
/etc/bind

Selanjutnya kita buat file db.ip dengan cara melakukan copy dari file db.127. Copy juga file db.local dengan nama db.domain.

zonabiner@zonabiner:/etc/bind$ sudo cp db.127 db.ip
zonabiner@zonabiner:/etc/bind$ sudo cp db.local db.domain
zonabiner@zonabiner:/etc/bind$ ls
bind.keys  db.255     db.ip       named.conf.default-zones  rndc.key
db.0       db.domain  db.local    named.conf.local          zones.rfc1918
db.127     db.empty   named.conf  named.conf.options

Setelah 2 file tersebut terbuat kita edit file db.domain terlebih dahulu.

zonabiner@zonabiner:/etc/bind$ sudo nano db.domain

Pada file db.domain replace / ubah localhost menjadi nama domain yang ingin kita buat. Jika seperti dicontoh ini saya menciba membuat domain untuk zonabiner.dev. Pada kasus ini saya juga akan membuat 2 buah sub domain yaitu nantinya www.zonabiner.dev dan blog.zonabiner.dev. Jangan lupa kita berikan IP Address server DNS kita.

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     zonabiner.dev. root.zonabiner.dev. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      zonabiner.dev.
@       IN      A       10.1.1.27
www     IN      A       10.1.1.27
blog    IN      A       10.1.1.27

Selanjutnya kita lakukan edit pada file db.ip. Replace / ubah localhost sesuai dengan nama domain kalian. Ingat pada angka 27 tersebut ganti dengan angka terakhir (host) dari IP Address Server. Contoh dinisi jika saya menggunakan IP Address 10.1.1.27 sebagai IP Server DNS maka angka terakhir tersebut adalah 27.

zonabiner@zonabiner:/etc/bind$ sudo nano db.ip

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     zonabiner.dev. root.zonabiner.dev. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      zonabiner.dev.
27      IN      PTR     zonabiner.dev.

Lanjut pada file named.conf.local kita lakukan pendefinisian zone berdasarkan Nama Domain yang kita buat beserta IP Address DNS Servernya. Pada bagian 1.1.10.in-addr.arpa perlu diperhatikan bahwa ini sebenarnya adalah reverse dari IP Address DNS kita. Jika IP Address DNS Server adalah 10.1.1.27 maka akan direverse menjadi 1.1.10 ditambah dengan .in-addr.arp. Mengapa angka terakhir dari IP Address tidak ikut direverse ? Angka terakhir ini sudah ada pada file db.ip.

zonabiner@zonabiner:/etc/bind$ sudo nano named.conf.local
//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "zonabiner.dev"{
        type master;
        file "/etc/bind/db.domain";
};

zone "1.1.10.in-addr.arpa"{
        type master;
        file "/etc/bind/db.ip";
};

Karena DNS Server kita hanya mengelola domain zonabiner.dev maka untuk domain lain yang kita tidak kelola seperti google.com, facebook.com , dll. Agar kita dapat melakukan akses ke domain lainya maka kita harus menambahkan DNS Forwarding. Sebagai contoh disini saya menggunakan Google Public DNS 8.8.8.8 sebagai DNS forwarding.

zonabiner@zonabiner:/etc/bind$ sudo nano named.conf.options

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        forwarders {
        8.8.8.8;
        };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation no;

        listen-on-v6 { any; };
};

Langkah terakhir kita harus lakukan restart service BIND 9 agar melakukan load konfigurasi terbaru. Pastikan service berjalan dengan normal tidak ada error.

zonabiner@zonabiner:/etc/bind$ sudo systemctl restart bind9.service
zonabiner@zonabiner:/etc/bind$ sudo systemctl status bind9.service
● named.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-05-15 03:36:36 UTC; 1min 26s ago
       Docs: man:named(8)
   Main PID: 2702 (named)
      Tasks: 8 (limit: 1073)
     Memory: 18.5M
     CGroup: /system.slice/named.service
             └─2702 /usr/sbin/named -f -u bind

May 15 03:36:36 zonabiner named[2702]: command channel listening on ::1#953
May 15 03:36:36 zonabiner named[2702]: managed-keys-zone: loaded serial 2
May 15 03:36:36 zonabiner named[2702]: zone 0.in-addr.arpa/IN: loaded serial 1
May 15 03:36:36 zonabiner named[2702]: zone 1.1.10.in-addr.arpa/IN: loaded serial 1
May 15 03:36:36 zonabiner named[2702]: zone localhost/IN: loaded serial 2
May 15 03:36:36 zonabiner named[2702]: zone 127.in-addr.arpa/IN: loaded serial 1
May 15 03:36:36 zonabiner named[2702]: zone 255.in-addr.arpa/IN: loaded serial 1
May 15 03:36:36 zonabiner named[2702]: zone zonabiner.dev/IN: loaded serial 2
May 15 03:36:36 zonabiner named[2702]: all zones loaded
May 15 03:36:36 zonabiner named[2702]: running

Testing


Jika kalian ingin melakukan testing DNS Server pada server DNS tersebut kalian dapat mengganti sementara resolv dns Server pada file /etc/resolv.conf. Ganti dengan alamat IP DNS Server. Cara ini bisa dilakukan juga pada client yang menggunakan distro linux.

zonabiner@zonabiner:$ sudo nano /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 10.1.1.27

Gunakan tools nslookup untuk melakukan pengujian DNS Server.

zonabiner@zonabiner:/etc/bind$ nslookup zonabiner.dev
Server:         10.1.1.27
Address:        10.1.1.27#53

Name:   zonabiner.dev
Address: 10.1.1.27
zonabiner@zonabiner:/etc/bind$ nslookup www.zonabiner.dev
Server:         10.1.1.27
Address:        10.1.1.27#53

Name:   www.zonabiner.dev
Address: 10.1.1.27
zonabiner@zonabiner:/etc/bind$ nslookup blog.zonabiner.dev
Server:         10.1.1.27
Address:        10.1.1.27#53

Name:   blog.zonabiner.dev
Address: 10.1.1.27
zonabiner@zonabiner:/etc/bind$ nslookup 10.1.1.27
27.1.1.10.in-addr.arpa  name = zonabiner.dev.

Berikut ini pengujian menggunakan Sistem Operasi Windows. Kalian cukup mengubah DNS Server menjadi Static dan isikan IP Address DNS Server. Lalu jangan lupa untuk melakukan flush dns cache ipconfig /flushdns.

Konfigurasi DNS Server pada Sistem Operasi Windows

Agar nantinya kita tidak mengubah nya secara manual. Kita bisa mengubah/menambahkan DNS Address pada DHCP Server. Agar nantinya DNS Server ini diberikan ketika Konfigurasi IP Address diberikan oleh DHCP Client. Oke cukup sekian konfigurasi DNS Server menggunakan BIND 9 pada Ubuntu 20.04 LTS. Selamat Mencoba dan Happy Config.. 😉

Tentang Penulis‎ ‏‏

author

Akhid Yanuar A.F

Linux System Administration | Computer Network | Operating System | Cloud Computing | IT Security | Linux Enthusiast 🐧

Find Me