
Dalam dunia jaringan modern, kecepatan dan efisiensi sistem resolusi DNS (Domain Name System) menjadi faktor penting dalam menjaga performa jaringan. DNS berfungsi sebagai penerjemah antara nama domain dan alamat IP. Misalnya, saat kita mengakses pikiranberkilau.com, DNS-lah yang menerjemahkannya menjadi alamat IP server tujuan agar perangkat dapat terkoneksi.
Namun, jika setiap perangkat di jaringan harus terus-menerus melakukan permintaan ke DNS publik (misalnya Google DNS atau Cloudflare DNS), maka waktu respon akan meningkat dan bandwidth keluar bisa terbuang sia-sia. Di sinilah peran DNS Forwarder lokal menjadi penting.
Dengan DNS Forwarder, permintaan DNS dari klien akan disimpan dalam cache lokal. Saat ada permintaan yang sama, server akan menjawab langsung dari cache tanpa meneruskan ke DNS eksternal. Hasilnya — akses internet lebih cepat, stabil, dan efisien.
Artikel ini membahas cara instalasi dan konfigurasi BIND9 di Ubuntu Server 22.04 sebagai DNS Forwarder lokal, menggunakan topologi jaringan dengan Mikrotik sebagai gateway, Proxmox sebagai host virtualisasi, dan klien PPPoE sebagai pengguna akhir.
Topologi Jaringan
Berikut struktur jaringan yang digunakan:

[Internet]
     |
   (eth1)
 [Mikrotik Router]
     |
   (eth2)
 [Proxmox Host] - IP: 10.27.27.2/24
     |
   ├── VM1: dns1.pikiranberkilau.com (Ubuntu 22.04) - 10.27.27.27
   ├── VM2: dns2.pikiranberkilau.com (Ubuntu 22.04) - 10.27.27.28
     |
   (eth3)
  Network: 10.10.27.0/24 (Client PPPoE)
Penjelasan:
- Mikrotik Router: berfungsi sebagai gateway utama ke internet.
 - Proxmox Host (10.27.27.2): menampung beberapa VM, termasuk DNS server.
 - dns1.pikiranberkilau.com (10.27.27.27): DNS utama (master forwarder).
 - dns2.pikiranberkilau.com (10.27.27.28): DNS cadangan (slave forwarder).
 - Client PPPoE (10.10.27.0/24): jaringan pengguna akhir yang akan menggunakan DNS lokal.
 
Langkah 1 – Persiapan Sistem
Masuk ke masing-masing VM (dns1 dan dns2) melalui SSH, lalu perbarui sistem:
apt update && apt upgrade -y
Pastikan firewall (ufw) aktif dan mengizinkan port DNS (53):
ufw allow 53
ufw reload
Langkah 2 – Instalasi BIND9
Jalankan perintah berikut di kedua VM:
apt install bind9 bind9-utils bind9-dnsutils -y
Setelah instalasi selesai, aktifkan dan jalankan layanan:
systemctl enable bind9
systemctl start bind9
Langkah 3 – Konfigurasi DNS Forwarder di dns1 (Master)
Edit file utama konfigurasi BIND:
nano /etc/bind/named.conf.options
Sesuaikan isinya seperti berikut:
options {
    directory "/var/cache/bind";
    // DNS publik untuk forward
    forwarders {
        8.8.8.8;
        1.1.1.1;
    };
    dnssec-validation auto;
    allow-query { any; };
    allow-recursion { any; };
    listen-on { 10.27.27.27; 127.0.0.1; };
    listen-on-v6 { none; };
    max-cache-size 512M;
};
Simpan file (Ctrl + O, Enter, lalu Ctrl + X).
Selanjutnya, tambahkan konfigurasi zone internal (opsional tapi penting untuk resolusi lokal):
nano /etc/bind/named.conf.local
Tambahkan :
zone "pikiranberkilau.com" {
    type master;
    file "/etc/bind/db.pikiranberkilau.com";
    allow-transfer { 10.27.27.28; };
};
Lalu buat file zone:
nano /etc/bind/db.pikiranberkilau.com
Isi dengan contoh konfigurasi:
$TTL    604800
@       IN      SOA     dns1.pikiranberkilau.com. admin.pikiranberkilau.com. (
                        2025102901 ; Serial
                        3600       ; Refresh
                        1800       ; Retry
                        1209600    ; Expire
                        86400 )    ; Minimum TTL
;
@       IN      NS      dns1.pikiranberkilau.com.
@       IN      NS      dns2.pikiranberkilau.com.
dns1    IN      A       10.27.27.27
dns2    IN      A       10.27.27.28
www     IN      A       10.27.27.100
Periksa konfigurasi:
named-checkconf
named-checkzone pikiranberkilau.com /etc/bind/db.pikiranberkilau.com
Jika tidak ada error, restart layanan:
systemctl restart bind9
Langkah 4 – Konfigurasi DNS Forwarder di dns2 (Slave)
Edit file /etc/bind/named.conf.options:
nano /etc/bind/named.conf.options
Isi dengan:
options {
    directory "/var/cache/bind";
    forwarders {
        10.27.27.27; // forward ke master
        8.8.8.8;
    };
    dnssec-validation auto;
    allow-query { any; };
    allow-recursion { any; };
    listen-on { 10.27.27.28; 127.0.0.1; };
    listen-on-v6 { none; };
    max-cache-size 512M;
};
Tambahkan zone untuk menerima transfer dari master:
nano /etc/bind/named.conf.local
Isi :
zone "pikiranberkilau.com" {
    type slave;
    masters { 10.27.27.27; };
    file "/var/cache/bind/db.pikiranberkilau.com";
};
Periksa dan restart:
named-checkconf
systemctl restart bind9
Langkah 5 – Integrasi dengan Mikrotik dan PPPoE Client
Di Mikrotik:
/ip dns
set servers=10.27.27.27,10.27.27.28 allow-remote-requests=yes
Di Profil PPPoE:
/ppp profile
set [find name=default] dns-server=10.27.27.27,10.27.27.28
Hasilnya, semua klien PPPoE akan otomatis memakai DNS lokal. Saat klien melakukan permintaan yang sama, hasilnya akan diambil dari cache, sehingga resolusi domain berlangsung sangat cepat.
Langkah 6 – Pengujian
Tes dari dns1:
dig google.com @10.27.27.27
Tes dari dns2:
dig pikiranberkilau.com @10.27.27.28
Tes dari klien PPPoE:
nslookup google.com
Jika hasilnya menunjukkan server 10.27.27.27 dan waktu query rendah (<10ms setelah cache), berarti DNS forwarder berjalan optimal.
Langkah 7 – Menambahkan Logging DNS (Opsional)
Untuk memantau aktivitas DNS, aktifkan logging di /etc/bind/named.conf:
logging {
    channel query_log {
        file "/var/log/named_query.log" versions 3 size 10m;
        severity info;
        print-time yes;
    };
    category queries { query_log; };
};
Buat file log:
touch /var/log/named_query.log
chown bind:bind /var/log/named_query.log
systemctl restart bind9
Lihat log dengan:
tail -f /var/log/named_query.log
Kesimpulan
Dengan konfigurasi di atas, sistem DNS forwarder berbasis BIND9 di Ubuntu Server 22.04 LTS telah berjalan dengan baik.
Server dns1.pikiranberkilau.com (10.27.27.27) berfungsi sebagai master forwarder, sedangkan dns2.pikiranberkilau.com (10.27.27.28) sebagai slave atau backup.
Semua klien PPPoE yang terhubung ke jaringan (10.10.27.0/24) akan menggunakan DNS lokal ini. Hasilnya, performa akses website meningkat signifikan, waktu loading lebih cepat, dan konsumsi bandwidth keluar dari router Mikrotik berkurang.
Selain itu, dengan fitur caching, sistem juga mengurangi beban DNS publik dan meningkatkan efisiensi jaringan internal secara keseluruhan.
Penutup
Membangun DNS forwarder lokal menggunakan BIND9 di Ubuntu 22.04 adalah langkah strategis untuk siapa pun yang mengelola jaringan besar maupun kecil. Dengan sistem ini, administrator dapat mengontrol lalu lintas DNS, mempercepat koneksi pengguna, serta menambah lapisan stabilitas dan efisiensi pada jaringan.
Konfigurasi ini sangat cocok untuk ISP rumahan, jaringan RT/RW Net, kampus, atau perusahaan yang ingin meningkatkan kualitas layanan internet internal tanpa biaya tambahan besar.
Dengan panduan ini, kamu kini memiliki fondasi DNS yang kuat, cepat, dan dapat diandalkan untuk jangka panjang.