Cara Install BIND9 sebagai DNS Forwarder di CentOS Stream 9 dengan Topologi Mikrotik dan Proxmox

Dalam dunia jaringan modern, sistem DNS (Domain Name System) memiliki peran yang sangat vital. Tanpa DNS, kita harus mengingat deretan angka IP untuk mengakses setiap situs web — misalnya 172.217.194.100 untuk Google. DNS-lah yang menerjemahkan nama domain seperti google.com menjadi alamat IP yang dimengerti oleh perangkat jaringan.

Bagi penyedia layanan internet (ISP), pengelola jaringan sekolah, kantor, hingga rumah kos dengan sistem PPPoE, memiliki DNS lokal yang berfungsi sebagai forwarder sangatlah penting. DNS forwarder berperan untuk menyimpan cache hasil pencarian DNS dan meneruskan permintaan ke DNS publik seperti Google (8.8.8.8) atau Cloudflare (1.1.1.1) bila data belum tersedia secara lokal.

Dengan begitu, klien dalam jaringan akan mendapatkan kecepatan akses lebih tinggi, beban bandwidth keluar berkurang, serta meningkatkan keandalan layanan.

Artikel ini akan membahas secara lengkap dan praktis bagaimana cara menginstal serta mengonfigurasi BIND9 (Berkeley Internet Name Domain) sebagai DNS forwarder di CentOS Stream 9, menggunakan topologi jaringan yang umum digunakan pada sistem Mikrotik + Proxmox + PPPoE.

Topologi Jaringan :

[Internet]
     |
   (eth1)
 [Mikrotik Router]
     |
   (eth2)
 [Proxmox Host] - IP: 10.27.27.2/24
     |
   ├── VM1: dns1.pikiranberkilau.com (CentOS 9) - 10.27.27.27
   ├── VM2: dns2.pikiranberkilau.com (CentOS 9) - 10.27.27.28
     |
   (eth3)
  Network: 10.10.27.0/24 (Client PPPoE)

Fungsi tiap bagian:

Klien PPPoE (10.10.27.0/24): akan diarahkan ke DNS lokal agar lebih cepat.

Mikrotik Router: gateway utama ke internet.

Proxmox Host (10.27.27.2): hypervisor yang menampung VM DNS.

dns1.pikiranberkilau.com (10.27.27.27): DNS master sekaligus forwarder utama.

dns2.pikiranberkilau.com (10.27.27.28): DNS slave / secondary.

Langkah 1 — Persiapan Sistem

Pertama, login ke kedua VM (dns1 dan dns2) menggunakan SSH.

Perbarui semua paket:

dnf update -y

Pastikan firewall sudah aktif tetapi mengizinkan trafik DNS (port 53):

firewall-cmd --permanent --add-service=dns
firewall-cmd --reload

Langkah 2 — Instalasi BIND9

Di CentOS 9, paket BIND9 tersedia langsung di repositori resmi. Jalankan di kedua server:

dnf install bind bind-utils -y

Setelah instalasi selesai, aktifkan dan jalankan layanan:

systemctl enable named
systemctl start named

Langkah 3 — Konfigurasi DNS Forwarder di dns1 (Master)

Edit file konfigurasi utama:

nano /etc/named.conf

Sesuaikan isi bagian options menjadi seperti ini:

options {
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";

    recursion yes;
    allow-query { any; };
    allow-recursion { any; };

    listen-on port 53 { 127.0.0.1; 10.27.27.27; };
    listen-on-v6 { none; };

    // DNS publik sebagai forwarder
    forwarders {
        8.8.8.8;
        1.1.1.1;
    };

    dnssec-validation auto;
};

Kemudian, tambahkan pengaturan zone lokal agar bisa digunakan internal (opsional tapi disarankan):

zone "pikiranberkilau.com" IN {
    type master;
    file "pikiranberkilau.com.zone";
    allow-transfer { 10.27.27.28; };
};

Buat file zone:

nano /var/named/pikiranberkilau.com.zone

Isi dengan contoh konfigurasi:

$TTL 86400
@   IN  SOA dns1.pikiranberkilau.com. admin.pikiranberkilau.com. (
        2025102901 ; Serial
        3600       ; Refresh
        1800       ; Retry
        604800     ; 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

Ubah kepemilikan file agar sesuai:

chown root: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 di dns2:

nano /etc/named.conf

Ubah menjadi:

options {
    directory "/var/named";
    recursion yes;
    allow-query { any; };
    allow-recursion { any; };

    listen-on port 53 { 127.0.0.1; 10.27.27.28; };
    listen-on-v6 { none; };

    forwarders {
        10.27.27.27;   // arahkan ke DNS master
        8.8.8.8;
    };

    dnssec-validation auto;
};

Tambahkan konfigurasi zone sebagai slave:

zone "pikiranberkilau.com" IN {
    type slave;
    masters { 10.27.27.27; };
    file "slaves/pikiranberkilau.com.zone";
};

Buat direktori untuk menyimpan file slave:

mkdir -p /var/named/slaves
chown named:named /var/named/slaves

Periksa konfigurasi:

named-checkconf

Jika aman, restart:

systemctl restart named

Langkah 5 — Konfigurasi Mikrotik dan PPPoE Client

Di Router Mikrotik:

Pastikan DNS diarahkan ke dua server:

/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

Dengan begitu, semua pelanggan PPPoE (10.10.27.0/24) akan menggunakan DNS lokal yang sudah di-cache oleh BIND9, sehingga proses akses internet menjadi lebih 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 ada bagian “Query time” yang kecil (<10ms setelah cache), berarti DNS forwarder berjalan dengan baik.

Langkah 7 — Optimasi dan Logging

Untuk memantau aktivitas DNS, aktifkan logging query.

Edit /etc/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 dan ubah permission:

touch /var/log/named_query.log
chown named:named /var/log/named_query.log
systemctl restart named

Kini kamu dapat melihat log permintaan DNS:

tail -f /var/log/named_query.log

Kesimpulan

Dengan konfigurasi di atas, kamu berhasil membangun sistem DNS forwarder yang efisien menggunakan BIND9 di CentOS Stream 9, sesuai topologi jaringan antara Mikrotik, Proxmox, dan klien PPPoE.

  • dns1.pikiranberkilau.com (10.27.27.27) bertindak sebagai DNS utama dan forwarder.
  • dns2.pikiranberkilau.com (10.27.27.28) menjadi backup/slave yang otomatis menerima replikasi zona.
  • Semua klien PPPoE (10.10.27.0/24) mendapatkan DNS lokal sehingga kecepatan browsing meningkat, latency DNS menurun, dan beban bandwidth keluar dari gateway menjadi lebih ringan.

Dengan tambahan logging, kamu juga bisa memantau aktivitas DNS pelanggan untuk keperluan troubleshooting maupun analisis trafik.

Penutup

Membangun DNS forwarder lokal menggunakan BIND9 di CentOS Stream 9 adalah langkah cerdas untuk meningkatkan performa dan efisiensi jaringan. Dengan pendekatan ini, administrator dapat mengontrol lalu lintas DNS, menyediakan resolusi cepat bagi klien, serta menambah lapisan stabilitas untuk layanan internet pelanggan.

Konfigurasi ini tidak hanya cocok untuk ISP kecil, tetapi juga relevan untuk jaringan kantor, kampus, dan data center. Dengan mengikuti langkah-langkah di atas, kamu kini memiliki fondasi DNS yang kuat, aman, dan dapat diandalkan untuk kebutuhan jaringan jangka panjang.

Leave a Comment