Ditutorial kali ini kita akan membahas cara membuat DNS (DOMAIN NAME SERVER) Server dengan bind9, distro Linux yang kita gunakan adalah Ubuntu 20.04. Penggunaan memory untuk DNS server bisa dibilang ramah memory, untuk DNS Server yang saya kelola saya menggunakan 1 GB memory, maksimum memory yang digunakan 200 MB untuk 100 Domain.

Dengan mengelola DNS anda, ada banyak kemudahan yang bisa didapatkan, seperti tidak perlu menggunakan DNS hosting yang mahal, lokasi server bebas dipilih. Diluar itu ada kekurangannya, yaitu anda perlu mengelola dan mengupdate server DNS tersebut.

DNS (Domain Name system) digunakan untuk menerjemahkan nama domain ke alamat IP. Sebagai contoh anda mengunjungi google.com, DNS server akan menerjemahkan alamat tersebut ke IP 172.217.194.102, dengan begitu data situs google.com yang anda buka akan diberikan oleh IP tersebut.

Kebutuhan System

1. Server Ubuntu dengan Public IP
2. Nama domain (bisa menggunakan subdomain)
Cara untuk mengkonfigurasi DNS untuk subdomain atau domain, caranya sama saja. Yang paling penting anda melakukan setting DNS untuk domain tersebut. Sebagai contoh untuk DNS, saya menggunakan Cloudflare untuk mengelola domain jaranguda.com, tetapi untuk subdomain cluster.jaranguda.com saya ingin DNS dikelola oleh bind9, caranya adalah tambahkan Name Server untuk cluster.jaranguda.com di Cloudflare.

Persiapan Sistem

Update dan upgrade semua software yang ada di Ubuntu 20.04 ke versi terbaru

sudo apt update && sudo apt upgrade -y

bila ada update kernel, sangat di sarankan untuk restart agar Ubuntu menggunakan kernel tersebut.

sudo reboot

Informasi domain dan IP

#NilaiKeterangan
DOMAIINjaranguda.com
IP Server192.168.88.20IP Publik server
Domain Name serverns1.jaranguda.com
ns2.jaranguda.com

saat mengikuti tutorial ini, ingat untuk mengganti jaranguda.com menjadi domain anda sendiri.

Domain Registrar

Di tempat anda mendaftarkan domain perlu diset nameserver ke ns1.jaranguda.com. Tiap-tiap registrar memiliki tampilan yang berbeda, untuk namesilo caranya seperti berikut ini
set default name server registrar

Install bind9 di Ubuntu

Software bind9 sudah tersedia di repository Ubuntu, jadi bisa langsung di install dengan apt

sudo apt install bind9 -y

Untuk menambahkan DNS untuk domain baru, tambahkan zone untuk domain tersebut di /etc/bind/named.conf.default-zones. Agar memudahkan konfigurasinya gunakana nama zone dan nama file konfignya sesuai dengan nama domain yang disetting, cara ini akan sangat membantu bisa anda mengelola banyak domain. Tiap zone file mengelola domain/subdomain yang berhubungan dengan domain/subdomain tersebut. Sebagai contoh kita akan mengkonfigurasi DNS untuk domain jaranguda.com.

Buka file /etc/bind/named.conf.default-zones tambahkan dibaris paling bawah

zone "jaranguda.com" {
        type master;
        file "/etc/bind/jaranguda.com.conf";
};

Untuk informasi dns jaranguda.com kita simpan di /etc/bind/jaranguda.com.conf, buat file tersebut lalu isi dengan

$TTL    86400
@       IN      SOA     jaranguda.com. dnsadmin.jaranguda. (
                     1647361418         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
;
@       IN      NS      ns1.jaranguda.com.
@       IN      NS      ns2.jaranguda.com.
@       IN      A       192.168.10.1
@       IN      AAAA    2a01:4xf8:1d1e:83fd::1
@       IN      MX      1 aspmx.l.google.com.
@       IN      MX      10 alt1.aspmx.l.google.com.
@       IN      MX      10 alt2.aspmx.l.google.com.
@       IN      MX      10 alt3.aspmx.l.google.com.
@       IN      MX      10 alt4.aspmx.l.google.com.
ns1     IN      A       192.168.10.1
ns2     IN      A       192.168.10.1
blog     IN      A       192.168.10.1

NS : bagian ini harus ditambahkan, agar bind9 mengenali name server yang bertanggung jawab.
@ : root domain, dalam contoh ini adalah jaranguda.com
A : IP address dari subdomain/domain, IP publik server
AAAA: A menggunakan IPv6
MX : record mail server, alamat dari mail server yang digunakan. Pada contoh saya menggunakan Google Workspace
ns1, ns2 dan blog pada contoh diatas adalah subdomain

Bagian serial, harus di update setiap kali anda melakukan perubahan. Pada contoh saya menggunakan unix time, yang bisa diambil dengan menjalankan perintah echo $(date +%s) di terminal Linux.

Sebelum service bind9 di restart, validasi terlebih dahulu

sudo named-checkconf

bila tidak ada pesan error yang muncul, restart bind9

sudo systemctl restart named

lalu cek status service bind9

sudo systemctl restart named

kurang lebh outputnya

● named.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-03-15 17:20:00 UTC; 41s ago
       Docs: man:named(8)
   Main PID: 3052 (named)
      Tasks: 5 (limit: 2275)
     Memory: 13.4M
     CGroup: /system.slice/named.service
             └─3052 /usr/sbin/named -f -u bind

verifikasi kalo kita sudah bisa melakukan query domain jaranguda.com dari server dengan mengeksekusi perintah dig jaranguda.com @127.0.0.1

; <<>> DiG 9.16.24-RH <<>> ns jaranguda.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1781
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;jaranguda.com.          IN  NS
 
;; ANSWER SECTION:
jaranguda.com.       86356   IN  NS  ns1.jaranguda.com.
jaranguda.com.       86356   IN  NS  ns2.jaranguda.com.
 
;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Mar 16 21:43:08 WIB 2022
;; MSG SIZE  rcvd: 59

Cek DNS dari Luar

Perubahan DNS (DNS propagation) bisa berlangsung sampai beberapa jam, di beberapa kasus sampai 24 jam. Untuk melewati batasan ini, kita bisa langsung melakukan query dari Public DNS server, contoh dari Cloudflare dan Google. Jalankan perintah ini di terminal

dig jaranguda.com @8.8.8.8
dig jaranguda.com @1.1.1.1

hasilnya harusnya sama dengan sewaktu melakukan query dari localhost

Join the Conversation

2 Comments

Your email address will not be published. Required fields are marked *

  1. bang mau tanya klo ip publik cm 1 terus sy pasang di router apakah bisa tetap install bind9 di ubuntu dengan ip server lokal ? mohon pencerahannya