
Dalam infrastruktur jaringan modern, sistem DNS (Domain Name System) berperan penting dalam menerjemahkan nama domain menjadi alamat IP yang bisa dimengerti oleh perangkat. Namun, jika setiap permintaan DNS dikirim langsung ke server publik seperti Google DNS (8.8.8.8) atau Cloudflare (1.1.1.1), maka jaringan lokal bisa mengalami latensi tinggi dan konsumsi bandwidth yang tidak efisien.
Untuk mengatasi hal ini, kita dapat membangun DNS Forwarder lokal menggunakan BIND9 (Berkeley Internet Name Domain) di server berbasis Linux, seperti AlmaLinux 8 atau 9.
BIND9 akan menyimpan cache hasil resolusi domain, sehingga jika permintaan yang sama muncul, server dapat menjawab langsung dari cache tanpa perlu menghubungi DNS eksternal lagi.
Hasilnya: respon lebih cepat, bandwidth hemat, dan stabilitas jaringan meningkat.
Topologi Jaringan
Berikut topologi yang digunakan dalam panduan ini:

[Internet]
     |
   (eth1)
 [Mikrotik Router]
     |
   (eth2)
 [Proxmox Host] - IP: 10.27.27.2/24
     |
   ├── VM1: dns1.pikiranberkilau.com (AlmaLinux 9) - 10.27.27.27
   ├── VM2: dns2.pikiranberkilau.com (AlmaLinux 9) - 10.27.27.28
     |
   (eth3)
  Network: 10.10.27.0/24 (Client PPPoE)
Penjelasan:
- Mikrotik Router: gateway utama menuju internet.
 - Proxmox Host (10.27.27.2): menampung VM untuk DNS server.
 - dns1.pikiranberkilau.com (10.27.27.27): master DNS forwarder.
 - dns2.pikiranberkilau.com (10.27.27.28): slave forwarder.
 - Klien PPPoE (10.10.27.0/24): jaringan pengguna akhir.
 
Langkah 1 – Persiapan Sistem
Masuk ke VM dns1 dan dns2 melalui SSH, lalu perbarui sistem:
dnf update -y
Pastikan modul epel-release sudah terpasang agar repositori lengkap:
dnf install epel-release -y
Aktifkan firewall dan izinkan port DNS (UDP/TCP 53):
systemctl enable firewalld --now
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
Langkah 2 – Instalasi BIND9
Di AlmaLinux, paket BIND sudah tersedia di repositori default. Install dengan:
dnf install bind bind-utils -y
Aktifkan dan jalankan layanan BIND:
systemctl enable named
systemctl start named
Langkah 3 – Konfigurasi DNS Forwarder di dns1 (Master)
Edit file konfigurasi utama BIND:
nano /etc/named.conf
Ubah bagian options menjadi seperti berikut:
options {
    directory       "/var/named";
    allow-query     { any; };
    allow-recursion { any; };
    listen-on port 53 { 10.27.27.27; 127.0.0.1; };
    listen-on-v6    { none; };
    forwarders {
        8.8.8.8;
        1.1.1.1;
    };
    dnssec-enable yes;
    dnssec-validation auto;
    recursion yes;
    max-cache-size 512M;
};
Selanjutnya, tambahkan konfigurasi zone internal untuk domain lokal:
nano /etc/named.rfc1912.zones
Tambahkan:
zone "pikiranberkilau.com" IN {
    type master;
    file "pikiranberkilau.com.zone";
    allow-transfer { 10.27.27.28; };
};
Lalu buat file zone:
nano /var/named/pikiranberkilau.com.zone
Isi dengan konfigurasi dasar:
$TTL 86400
@   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
Pastikan hak akses file benar:
chown named:named /var/named/pikiranberkilau.com.zone
Periksa konfigurasi:
named-checkconf
named-checkzone pikiranberkilau.com /var/named/pikiranberkilau.com.zone
Jika tidak ada error, restart layanan:
systemctl restart named
Langkah 4 – Konfigurasi DNS Forwarder di dns2 (Slave)
Edit /etc/named.conf:
nano /etc/named.conf
Sesuaikan opsi berikut:
options {
    directory       "/var/named";
    allow-query     { any; };
    allow-recursion { any; };
    listen-on port 53 { 10.27.27.28; 127.0.0.1; };
    listen-on-v6    { none; };
    forwarders {
        10.27.27.27;
        8.8.8.8;
    };
    dnssec-enable yes;
    dnssec-validation auto;
    recursion yes;
    max-cache-size 512M;
};
Tambahkan konfigurasi zone slave:
nano /etc/named.rfc1912.zones
Isi dengan:
zone "pikiranberkilau.com" IN {
    type slave;
    masters { 10.27.27.27; };
    file "slaves/pikiranberkilau.com.zone";
};
Pastikan direktori slaves ada:
mkdir -p /var/named/slaves
chown named:named /var/named/slaves
Periksa dan restart:
named-checkconf
systemctl restart named
Langkah 5 – Integrasi dengan Mikrotik dan PPPoE
Di Mikrotik:
Masukkan DNS lokal:
/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
Semua klien PPPoE kini otomatis menggunakan DNS lokal dari server BIND.
Langkah 6 – Pengujian
Coba jalankan di VM DNS1:
dig google.com @10.27.27.27
Di DNS2:
dig pikiranberkilau.com @10.27.27.28
Dari klien PPPoE:
nslookup youtube.com
Jika resolusi cepat dan menunjukkan DNS lokal, berarti konfigurasi berhasil.
Langkah 7 – Menambahkan Logging DNS (Opsional)
Aktifkan logging untuk pemantauan permintaan DNS:
nano /etc/named.conf
Tambahkan di bagian bawah:
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 named:named /var/log/named_query.log
systemctl restart named
Kesimpulan
Dengan konfigurasi di atas, sistem DNS Forwarder berbasis BIND9 di AlmaLinux 8/9 berhasil dibangun dengan dua node:
- dns1.pikiranberkilau.com (10.27.27.27) sebagai master forwarder.
 - dns2.pikiranberkilau.com (10.27.27.28) sebagai slave forwarder.
 
Semua klien PPPoE menggunakan DNS lokal ini untuk resolusi domain. Sistem ini mempercepat respon DNS, menghemat bandwidth keluar, dan meningkatkan efisiensi jaringan internal secara signifikan.
Penutup
Membangun DNS lokal dengan BIND9 di AlmaLinux 8/9 adalah solusi ideal untuk ISP kecil, RT/RW Net, atau perusahaan dengan banyak pengguna internal.
Selain meningkatkan kecepatan akses internet, sistem ini juga memperkuat keamanan dan stabilitas jaringan.
Dengan sedikit konfigurasi tambahan seperti logging, monitoring, dan auto zone transfer, sistem DNS kamu bisa menjadi infrastruktur yang andal dan efisien jangka panjang.
Langkah ini bukan hanya sekadar optimasi teknis, tetapi juga investasi strategis dalam pengelolaan jaringan yang profesional.