Cara Membuat DNS Server Ubuntu 24.04 Menggunakan Bind9 Lengkap



Apa itu DNS Server ?

DNS merupakan kepanjangan dari domain name system, sebuah system yang berfungsi memetakan alamat hostname atau domain ke alamat ip, begitu juga sebaliknya. DNS merupakan system jaringan client - server, maksudnya ada yang bertindak sebagai server dan bertindak sebagai client. DNS secara default menggunakan protokol udp dan nomer port 53 dengan nama service domain. Program DNS server yang paling banyak di gunakan dalam dunia internet bernama BIND (Berkeley Internet Name Domain) khusus untuk system beroperasi unix dan turunannya seperti bsd, linux, dll. DNS membantu memetakan host name sebuah komputer ke IP address. Selain digunakan di Internet, DNS juga dapat di implementasikan ke private network atau intranet dimana DNS memiliki keunggulan seperti:

1. Mudah, DNS sangat mudah karena user tidak lagi direpotkan untuk mengingat IP address
sebuah komputer cukup host name (nama Komputer).
2. Konsisten, IP address sebuah komputer bisa berubah tapi host name tidak berubah.
3. Simple, user hanya menggunakan satu nama domain untuk mencari baik di Internet maupun di
Intranet.

        
BIND9 (Berkeley Internet Name Domain) adalah software DNS Server yang paling banyak digunakan pada sistem Linux. Dengan BIND9 di Ubuntu Server 24.04, kita dapat membuat DNS server untuk:

Ubuntu menyediakan paket BIND9 secara resmi dan konfigurasi utamanya berada pada direktori /etc/bind.

Bagaimana DNS itu bekerja?



        Fungsi dari DNS adalah menerjemahkan nama komputer ke IP address (memetakan). Client DNS disebut dengan resolvers dan DNS server disebut dengan name servers. Resolvers atau client mengirimkan permintaan ke name server berupa queries. Name server akan memproses dengan cara mencek ke local database DNS, menghubungi name server lainnya atau akan mengirimkan message failure jika ternyata permintaan dari client tidak ditemukan. Proses tersebut disebut dengan Forward Lookup Query, yaitu permintaan dari client dengan cara memetakan nama komputer (host) ke IP address. Setelah kita mengetahui apa itu DNS disini saya akan membuat dns server di ubuntu server 24.04.



1. Persiapan Server Ubuntu 24.04

Login ke server:

ssh user@192.168.1.10

Update repository:

sudo apt update
sudo apt upgrade -y

Cek hostname:

hostnamectl

Ubah hostname:

sudo hostnamectl set-hostname dns-server

Restart:

sudo reboot

2. Konfigurasi IP Static Ubuntu

DNS Server wajib menggunakan IP tetap.

Cek interface:

ip addr

Contoh:

ens33
IP : 192.168.1.10

Ubuntu 24.04 menggunakan Netplan.

Lihat konfigurasi:

ls /etc/netplan/

Edit:

sudo nano /etc/netplan/50-cloud-init.yaml

Contoh:

network:
  version: 2
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.168.1.10/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 192.168.1.10
          - 8.8.8.8

Apply:

sudo netplan apply

Tes:

ip addr


3. Install BIND9

Install paket DNS:

sudo apt install bind9 bind9-utils dnsutils -y


Cek service:

sudo systemctl status bind9

Jika aktif:

Active: active (running)

Aktifkan otomatis:

sudo systemctl enable bind9

4. Struktur Folder BIND9

Lokasi konfigurasi:

/etc/bind/

Isi:

/etc/bind
|
├── named.conf
├── named.conf.options
├── named.conf.local
├── db.local
├── db.127

File penting:

FileFungsi
named.conf.options            konfigurasi global
named.conf.local            daftar zone
db.domain            forward lookup
db.reverse            reverse lookup

5. Konfigurasi DNS Resolver

Edit:

sudo nano /etc/bind/named.conf.options

Isi:

acl local-network {
        192.168.1.0/24;
};


options {

        directory "/var/cache/bind";

        listen-on {
                192.168.1.10;
        };


        allow-query {
                local-network;
        };


        recursion yes;


        forwarders {
                8.8.8.8;
                1.1.1.1;
        };


        dnssec-validation auto;


};

Penjelasan:

ACL

acl local-network

Mengizinkan hanya jaringan lokal menggunakan DNS.


listen-on

listen-on {
192.168.1.10;
};

DNS hanya mendengarkan IP tersebut.


Forwarder

forwarders {
8.8.8.8;
};

Jika DNS tidak menemukan domain lokal, diteruskan ke Google DNS.


6. Membuat Forward Zone

Forward zone berfungsi:

hostname → IP Address

Contoh:

www.arif.local

menjadi

192.168.1.20

Edit:

sudo nano /etc/bind/named.conf.local

Tambahkan:

zone "arif.local" {

        type master;

        file "/etc/bind/db.arif.local";

};

7. Membuat File Zone DNS

Copy template:

sudo cp /etc/bind/db.local \
/etc/bind/db.arif.local

Edit:

sudo nano /etc/bind/db.arif.local

Isi:

;
; DNS Zone arif.local
;

$TTL 604800


@ IN SOA dns-server.arif.local. admin.arif.local. (

        2026091801
        3600
        1800
        604800
        86400
)



; Name Server

@       IN NS dns-server.arif.local.



; DNS Server

dns-server IN A 192.168.1.10



; Web Server

www     IN A 192.168.1.20



; Mail Server

mail    IN A 192.168.1.30



; Alias

ftp     IN CNAME www

Hasil:

dns-server.arif.local
        |
        192.168.1.10


www.arif.local
        |
        192.168.1.20


mail.arif.local
        |
        192.168.1.30

8. Membuat Reverse DNS Zone

Reverse DNS:

IP Address → hostname

Contoh:

192.168.1.20

menjadi

www.arif.local

Edit:

sudo nano /etc/bind/named.conf.local

Tambahkan:

zone "1.168.192.in-addr.arpa" {

        type master;

        file "/etc/bind/db.reverse.arif";

};

Copy template:

sudo cp /etc/bind/db.127 \
/etc/bind/db.reverse.arif

Edit:

sudo nano /etc/bind/db.reverse.arif

Isi:

$TTL 604800


@ IN SOA dns-server.arif.local. admin.arif.local. (

        2026091801
        3600
        1800
        604800
        86400
)



@ IN NS dns-server.arif.local.



10 IN PTR dns-server.arif.local.


20 IN PTR www.arif.local.


30 IN PTR mail.arif.local.

9. Validasi Konfigurasi

Sebelum restart lakukan pengecekan.

Cek konfigurasi BIND

sudo named-checkconf

Jika benar:

tidak ada output

Cek Forward Zone

sudo named-checkzone arif.local \
/etc/bind/db.arif.local

Output:

zone arif.local/IN:
loaded serial 2026091801
OK

Cek Reverse Zone

sudo named-checkzone \
1.168.192.in-addr.arpa \
/etc/bind/db.reverse.arif

10. Restart DNS Server

sudo systemctl restart bind9

Cek:

sudo systemctl status bind9

11. Membuka Firewall

Jika menggunakan UFW:

sudo ufw allow 53/tcp

sudo ufw allow 53/udp

Reload:

sudo ufw reload

DNS menggunakan:

ProtocolPort
UDP53
TCP53

12. Pengujian DNS Server

Install tools:

sudo apt install dnsutils -y

Tes NS Lookup

nslookup www.arif.local 192.168.1.10

Output:

Server:
192.168.1.10


Name:
www.arif.local


Address:
192.168.1.20

Tes menggunakan dig

dig www.arif.local

Output:

ANSWER SECTION:

www.arif.local.
A
192.168.1.20

Reverse Lookup

dig -x 192.168.1.20

Output:

www.arif.local

13. Mengatur Client Agar Menggunakan DNS Server

Pada komputer client:

Windows:

Network Adapter
↓
IPv4
↓
DNS Server

192.168.1.10

Linux:

Edit:

sudo nano /etc/systemd/resolved.conf

Tambahkan:

DNS=192.168.1.10

Restart:

sudo systemctl restart systemd-resolved

14. Troubleshooting BIND9

Error: SERVFAIL

Cek log:

sudo journalctl -u bind9

Biasanya karena:

  • file zone salah
  • serial tidak berubah
  • syntax error

Error: connection refused

Cek port:

sudo ss -tulpn | grep :53

Harus muncul:

udp LISTEN 53 named
tcp LISTEN 53 named

Error: zone not loaded

Cek:

named-checkzone

Periksa:

  • tanda titik pada FQDN

Salah:

dns-server.arif.local

Benar:

dns-server.arif.local.

15. Monitoring DNS

Melihat query:

sudo rndc querylog on

Log:

sudo tail -f /var/log/syslog

16. Backup Konfigurasi DNS

Backup:

sudo tar -czvf bind9-backup.tar.gz /etc/bind


Restore:

sudo tar -xzvf bind9-backup.tar.gz -C /

Kesimpulan

Dengan konfigurasi di atas Ubuntu Server 24.04 sudah menjadi DNS Server BIND9 yang mampu:

✅ Resolusi domain lokal ✅ Forward lookup ✅ Reverse lookup ✅ DNS caching ✅ Internal network DNS ✅ Siap digunakan untuk server kantor, lab, VPS, atau infrastruktur enterprise.

Komentar

Postingan Populer