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
.
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.. 😉