Panduan Lengkap: Cara Instalasi PowerDNS Master–Slave dan Poweradmin

PowerDNS adalah DNS server open-source yang fleksibel dan mendukung berbagai backend database. Dengan konfigurasi master–slave, kita dapat membangun sistem DNS yang redundant dan lebih andal.
Untuk memudahkan pengelolaan record DNS, kita dapat menambahkan Poweradmin, yaitu antarmuka web berbasis PHP untuk mengelola zona dan record secara GUI.

Prasyarat

  • 2 server Linux (Master & Slave) berbasis Debian 12 (Bookworm).
  • Akses root/sudo.
  • Port TCP/UDP 53 terbuka di firewall.
  • Port TCP 80 dan 443 terbuka di firewall.

Contoh skema IP dan Domain kali ini:

  • Domain: diginetlab.my.id
  • Master: 103.183.74.17
  • Slave: 103.183.74.200

Persiapan

Lakukan step Persiapan ini untuk kedua server (Master dan Slave)

Update & upgrade:

sudo apt update && sudo apt upgrade -y

Jika Anda menggunakan VPS atau Cloud Image (misalnya Debian dari cloud provider), biasanya service systemd-resolved aktif secara default. Service ini menggunakan port 53, yang juga akan digunakan oleh PowerDNS. Jika tidak dinonaktifkan, PowerDNS tidak akan bisa berjalan dengan benar.

Catatan: Jika menggunakan server fisik atau OS instalasi manual yang tidak menjalankan systemd-resolved, Anda bisa melewati langkah ini.

Nonaktifkan systemd-resolved:

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

Reboot server:

sudo reboot now

Mengatur DNS Resolver

Setelah reboot, jika Anda mendapati server tidak bisa melakukan ping ke domain (misalnya ping google.com gagal), berarti Anda perlu membuat file resolver baru.

Buat file /etc/resolv.conf:

sudo nano /etc/resolv.conf

Isi:

nameserver 1.1.1.1
nameserver 8.8.8.8

Jika saat menyimpan muncul error:

Error writing resolv.conf: No such file or directory

maka lakukan langkah berikut:

sudo nano /etc/resolv.conf.txt

Isi dengan:

nameserver 1.1.1.1
nameserver 8.8.8.8

Simpan file, lalu ganti namanya menjadi /etc/resolv.conf:

sudo mv /etc/resolv.conf.txt /etc/resolv.conf

Setelah itu, coba ping ulang:

ping google.com

Instalasi PowerDNS dan MariaDB

Lakukan step Instalasi ini untuk kedua server (Master dan Slave)

Tambahkan Repository Resmi PowerDNS.

Buka halaman resmi PowerDNS untuk memastikan versi terbaru:

https://repo.powerdns.com

Kita akan menambahkan repository untuk versi Authoritative Server 4.9.x.

Pertama, install curl:

sudo apt install curl

Buat repository list:

sudo nano /etc/apt/sources.list.d/pdns.list

Isi:

deb [signed-by=/etc/apt/keyrings/auth-49-pub.asc arch=amd64] http://repo.powerdns.com/debian bookworm-auth-49 main

Buat file preferensi:

sudo nano /etc/apt/preferences.d/auth-49

Isi:

Package: auth*
Pin: origin repo.powerdns.com
Pin-Priority: 600

Unduh dan simpan key GPG:

sudo install -d /etc/apt/keyrings
curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo tee /etc/apt/keyrings/auth-49-pub.asc

Update dan install PowerDNS:

sudo apt-get update
sudo apt-get install pdns-server pdns-backend-mysql -y

Install MariaDB:

sudo apt install mariadb-server mariadb-client -y

Amankan instalasi:

sudo mysql_secure_installation

Contoh output, set password root database, sesuikan.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Konfigurasi Authoritative DNS Server – Master

Server master adalah pusat pengelolaan data zona DNS. Semua perubahan, penambahan, atau penghapusan record dilakukan di server ini. Master kemudian mengirimkan pembaruan zona ke server slave melalui mekanisme notify dan AXFR, sehingga semua server DNS tetap sinkron dan siap melayani permintaan pengguna.

Konfigurasi MariaDB

Masuk ke MariaDB:

sudo mysql -u root -p

Buat database, user untuk PowerDNS dan Poweradmin dan berikan izin yang berbeda:

CREATE DATABASE powerdnsdb;
CREATE USER 'powerdns'@'localhost' IDENTIFIED BY 'PasswordPowerdns123';
GRANT ALL PRIVILEGES ON powerdnsdb.* TO 'powerdns'@'localhost';
CREATE USER 'poweradmin'@'localhost' IDENTIFIED  BY 'PasswordPoweradmin123';
GRANT SELECT, INSERT, UPDATE, DELETE ON powerdnsdb.* TO 'poweradmin'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Import Schema PowerDNS ke Database:

sudo mysql -u powerdns -p powerdnsdb < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql

Masukkan password untuk user database powerdns yang telah dibuat.

Verifikasi apakah schema sudah berhasil di impot:

sudo mysql -u powerdns -p -e "USE powerdnsdb; SHOW TABLES;"

Jika schema berhasil di import akan muncul output seperti berikut:

fariz@ns1diginetlabmyid:~$ sudo mysql -u powerdns -p -e "USE powerdnsdb; SHOW TABLES;"
Enter password: 
+----------------------+
| Tables_in_powerdnsdb |
+----------------------+
| comments             |
| cryptokeys           |
| domainmetadata       |
| domains              |
| records              |
| supermasters         |
| tsigkeys             |
+----------------------+

Konfigurasi PowerDNS

Edit file konfigurasi MySQL backend:

sudo nano /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Isi:

launch+=gmysql
gmysql-host=127.0.0.1
gmysql-dbname=powerdnsdb
gmysql-user=powerdns
gmysql-password=PasswordPowerdns123

Ubah owner dan permission:

sudo chown pdns:pdns /etc/powerdns/pdns.d/pdns.local.gmysql.conf
sudo chmod 640 /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Edit file konfigurasi utama:

sudo nano /etc/powerdns/pdns.conf

Tambahkan baris konfigurasi berikut di paling bawah:

secondary=no
primary=yes
allow-axfr-ips=103.183.74.200
also-notify=103.183.74.200
xfr-cycle-interval=60

103.183.74.200 adalah IP address dari DNS Server Slave

Verifikasi Konfigurasi

Stop terlebihdahulu service PowerDNS:

sudo systemctl stop pdns

Memastikan PowerDNS berjalan dengan normal dan koneksi ke database sudah berhasil:

sudo pdns_server --daemon=no --guardian=no --loglevel=9

Jika semuanya berjalan dengan normal akan muncul output seperti berikut:

fariz@ns1diginetlabmyid:~$ sudo pdns_server --daemon=no --guardian=no --loglevel=9
Aug 13 04:48:54 Loading '/usr/lib/x86_64-linux-gnu/pdns/libbindbackend.so'
Aug 13 04:48:54 [bind2backend] This is the bind backend version 4.9.8 (Aug  7 2025 08:49:26) (with bind-dnssec-db support) reporting
Aug 13 04:48:54 Loading '/usr/lib/x86_64-linux-gnu/pdns/libgmysqlbackend.so'
Aug 13 04:48:54 [gmysqlbackend] This is the gmysql backend version 4.9.8 (Aug  7 2025 08:49:26) reporting
Aug 13 04:48:54 This is a standalone pdns
Aug 13 04:48:54 Listening on controlsocket in '/var/run/pdns/pdns.controlsocket'
Aug 13 04:48:54 UDP server bound to 0.0.0.0:53
Aug 13 04:48:54 UDP server bound to [::]:53
Aug 13 04:48:54 TCP server bound to 0.0.0.0:53
Aug 13 04:48:54 TCP server bound to [::]:53
Aug 13 04:48:54 PowerDNS Authoritative Server 4.9.8 (C) PowerDNS.COM BV
Aug 13 04:48:54 Using 64-bits mode. Built using gcc 12.2.0 on Aug  7 2025 08:49:26 by root@localhost.
Aug 13 04:48:54 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.
Aug 13 04:48:54 [stub-resolver] Doing stub resolving for 'auth-4.9.8.security-status.secpoll.powerdns.com.|TXT', using resolvers: 1.1.1.1, 8.8.8.8
Aug 13 04:48:54 [stub-resolver] Question for 'auth-4.9.8.security-status.secpoll.powerdns.com.|TXT' got answered by 1.1.1.1
Aug 13 04:48:54 Polled security status of version 4.9.8 at startup, no known issues reported: OK
Aug 13 04:48:54 [bindbackend] Parsing 0 domain(s), will report when done
Aug 13 04:48:54 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed
Aug 13 04:48:54 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 04:48:54 Creating backend connection for TCP
Aug 13 04:48:54 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 04:48:54 Primary/secondary communicator launching
Aug 13 04:48:54 About to create 3 backend threads for UDP
Aug 13 04:48:54 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 04:48:54 no primary or producer domains need notifications
Aug 13 04:48:54 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 04:48:54 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 04:48:54 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 04:48:54 Done launching threads, ready to distribute questions

Tekan CTRL+C untuk stop debugging.

Jalankan kembali service PowerDNS:

sudo systemctl enable pdns
sudo systemctl start pdns

Instalasi dan Konfigurasi Poweradmin

Setup terlebihdahulu LAMP, silakan skip untuk tahap Instalasi MariaDB karena kita sudah melakukan setup untuk hal tersebut.

Tips: Instal Poweradmin di default virtual host terlebih dahulu. Setelah instalasi selesai, tambahkan record subdomain poweradmin.namadomain.com, lalu buat virtual host agar Poweradmin hanya bisa diakses melalui subdomain tersebut.

Memastikan PHP extension yang dibutuhkan sudah terinstall:

sudo apt update
sudo apt install -y \
    php-intl \
    php-php-gettext \
    php-mysql \
    php-pgsql \
    php-sqlite3 \
    php-ldap

Download Source Code Poweradmin Disini:

https://github.com/poweradmin/poweradmin/releases

Di tutorial ini saya menginstall Poweradmin v4.0.1

Jika LAMP sudah di Setup dan Source Code Poweradmin sudah diletakkan di Document Root web langkah selanjutnya Instalasi Poweradmin di alamat berikut:

namadomain.com/install

Atau,

IP-ADDRESS/install

Berikut tampilan saat instalasi Poweradmin.

Step 1: Pilih bahasa instalasi.

Step 2: Pengecekan persyaratan.

Step 3: Memastikan dan mengingatkan kembali user dan database sudah dibuat.

Step 4: Konfigurasi koneksi database, karena powerdns dan poweradmin menggunakan database yang sama isikan seperti berikut, sesuaikan.

Step 5: Konfigurasi database user poweradmin dan DNS.

Step 6: Karena kita sudah membuat user poweradmin kita bisa langung klik Continue.

Step 7: Copy baris konfigurasi.

sudo nano /var/www/html/config/settings.php

Pastekan baris konfigurasi yang telah dicopy, lalu simpan.

Step 8: Sangat disarankan hapus folder ./install

sudo rm -rf /var/www/html/install/

Klik link pada point nomor 2 atau ketikkan manaul IPAddress, lalu kita akan diarahkan ke halaman login Poweradmin.

Tampilan Dashboard Poweradmin.

Proses instalasi Poweradmin sudah selesai.

Menambahkan Zone dan Record di Poweradmin

Berikut contoh cara menambahkan record di Poweradmin.

Pergi ke Home/Forward Zones/Add master zone

Edit zone.

Untuk menambahkan beberapa record sekaligus klik Multi-record mode, lalu tambahkan record NS dan A seperti berikut, sesuaikan.

Konfigurasi Authoritative DNS Server – Slave

Server slave berfungsi sebagai cadangan dan replikasi dari server master. Data zona tidak dikelola langsung di slave, melainkan otomatis diperbarui melalui mekanisme AXFR (zone transfer) dari master. Dengan adanya slave, layanan DNS menjadi lebih andal karena tetap dapat merespons query meskipun master sedang offline.
Berbeda dengan Master, pada konfigurasi Slave ini tidak menginstall Poweradmin.

Konfigurasi MariaDB

Masuk ke MariaDB:

sudo mysql -u root -p

Buat database, dan user untuk Poweradmin:

CREATE DATABASE powerdnsdb;
CREATE USER 'powerdns'@'localhost' IDENTIFIED BY 'PasswordPowerdns123';
GRANT ALL PRIVILEGES ON powerdnsdb.* TO 'powerdns'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Import Schema PowerDNS ke Database:

sudo mysql -u powerdns -p powerdnsdb < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql

Masukkan password untuk user database powerdns yang telah dibuat.

Verifikasi apakah schema sudah berhasil di impot:

sudo mysql -u powerdns -p -e "USE powerdnsdb; SHOW TABLES;"

Jika schema berhasil di import akan muncul output seperti berikut:

fariz@ns2diginetlabmyid:~$ sudo mysql -u powerdns -p -e "USE powerdnsdb; SHOW TABLES;"
Enter password: 
+----------------------+
| Tables_in_powerdnsdb |
+----------------------+
| comments             |
| cryptokeys           |
| domainmetadata       |
| domains              |
| records              |
| supermasters         |
| tsigkeys             |
+----------------------+

Konfigurasi PowerDNS

Edit file konfigurasi MySQL backend:

sudo nano /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Isi:

launch+=gmysql
gmysql-host=127.0.0.1
gmysql-dbname=powerdnsdb
gmysql-user=powerdns
gmysql-password=PasswordPowerdns123

Ubah owner dan permission:

sudo chown pdns:pdns /etc/powerdns/pdns.d/pdns.local.gmysql.conf
sudo chmod 640 /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Edit file konfigurasi utama:

sudo nano /etc/powerdns/pdns.conf

Tambahkan baris konfigurasi berikut di paling bawah:

primary=no
secondary=yes
allow-notify-from=103.183.74.17
allow-dnsupdate-from=103.183.74.17

103.183.74.17 adalah IP address dari DNS Server Master

Verifikasi Konfigurasi

Stop terlebihdahulu service PowerDNS:

sudo systemctl stop pdns

Memastikan PowerDNS berjalan dengan normal dan koneksi ke database sudah berhasil:

sudo pdns_server --daemon=no --guardian=no --loglevel=9

Jika semuanya berjalan dengan normal akan muncul output seperti berikut:

fariz@ns2diginetlabmyid:~$ sudo pdns_server --daemon=no --guardian=no --loglevel=9
Aug 13 10:07:01 Loading '/usr/lib/x86_64-linux-gnu/pdns/libbindbackend.so'
Aug 13 10:07:01 [bind2backend] This is the bind backend version 4.9.8 (Aug  7 2025 08:49:26) (with bind-dnssec-db support) reporting
Aug 13 10:07:01 Loading '/usr/lib/x86_64-linux-gnu/pdns/libgmysqlbackend.so'
Aug 13 10:07:01 [gmysqlbackend] This is the gmysql backend version 4.9.8 (Aug  7 2025 08:49:26) reporting
Aug 13 10:07:01 This is a standalone pdns
Aug 13 10:07:01 Listening on controlsocket in '/var/run/pdns/pdns.controlsocket'
Aug 13 10:07:01 UDP server bound to 0.0.0.0:53
Aug 13 10:07:01 UDP server bound to [::]:53
Aug 13 10:07:01 TCP server bound to 0.0.0.0:53
Aug 13 10:07:01 TCP server bound to [::]:53
Aug 13 10:07:01 PowerDNS Authoritative Server 4.9.8 (C) PowerDNS.COM BV
Aug 13 10:07:01 Using 64-bits mode. Built using gcc 12.2.0 on Aug  7 2025 08:49:26 by root@localhost.
Aug 13 10:07:01 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.
Aug 13 10:07:01 [stub-resolver] Doing stub resolving for 'auth-4.9.8.security-status.secpoll.powerdns.com.|TXT', using resolvers: 1.1.1.1, 8.8.8.8
Aug 13 10:07:01 [stub-resolver] Question for 'auth-4.9.8.security-status.secpoll.powerdns.com.|TXT' got answered by 1.1.1.1
Aug 13 10:07:01 Polled security status of version 4.9.8 at startup, no known issues reported: OK
Aug 13 10:07:01 [bindbackend] Parsing 0 domain(s), will report when done
Aug 13 10:07:01 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed
Aug 13 10:07:01 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 10:07:01 Creating backend connection for TCP
Aug 13 10:07:01 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 10:07:01 Primary/secondary communicator launching
Aug 13 10:07:01 About to create 3 backend threads for UDP
Aug 13 10:07:01 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 10:07:01 No new unfresh secondary domains, 0 queued for AXFR already, 0 in progress
Aug 13 10:07:01 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 10:07:01 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 10:07:01 gmysql Connection successful. Connected to database 'powerdnsdb' on '127.0.0.1'.
Aug 13 10:07:02 Done launching threads, ready to distribute questions

Tekan CTRL+C untuk stop debugging.

Jalankan kembali service PowerDNS:

sudo systemctl enable pdns
sudo systemctl start pdns

Menambahkan Zone Slave di PowerDNS Menggunakan pdnsutil

pdnsutil adalah tool baris perintah bawaan PowerDNS Authoritative Server untuk mengelola zona dan record DNS langsung dari backend (seperti MySQL atau PostgreSQL) tanpa mengedit file manual.

Dengan pdnsutil, admin bisa membuat zona master/slave, menambah atau menghapus record, memicu transfer zona (AXFR/IXFR), menaikkan serial SOA, serta mengelola DNSSEC — semuanya tanpa restart layanan PowerDNS.

Tambahkan zone yang sudah dibuat di DNS Server Master namun pada type kita pilih slave

Untuk membuat zone slave di DNS Server Slave, jalankan perintah berikut:

sudo pdnsutil create-secondary-zone diginetlab.my.id 103.183.74.17

103.183.74.17 adalah IP address dari DNS Server Master

Verifikasi Zone Slave di Database

Login ke MySQL/MariaDB:

sudo mysql -u root -p

Gunakan database PowerDNS (misal powerdnsdb):

USE powerdnsdb;

Melihat daftar tabel di database:

SHOW TABLES;

Cek daftar zone yang sudah terbuat:

SELECT * FROM domains;

Contoh output:

MariaDB [powerdnsdb]> SELECT * FROM domains;
+----+------------------+---------------+------------+-------+-----------------+---------+---------+---------+
| id | name             | master        | last_check | type  | notified_serial | account | options | catalog |
+----+------------------+---------------+------------+-------+-----------------+---------+---------+---------+
|  1 | diginetlab.my.id | 103.183.74.17 | 1755083639 | SLAVE |            NULL |         | NULL    | NULL    |
+----+------------------+---------------+------------+-------+-----------------+---------+---------+---------+
1 row in set (0.001 sec)

Cek apakah records ter-update otomatis dari Master:

SELECT * FROM records;

Contoh output:

MariaDB [powerdnsdb]> SELECT * FROM records;
+----+-----------+-----------------------------+------+-------------------------------------------------------------------------------------+-------+------+----------+-----------+------+
| id | domain_id | name                        | type | content                                                                             | ttl   | prio | disabled | ordername | auth |
+----+-----------+-----------------------------+------+-------------------------------------------------------------------------------------+-------+------+----------+-----------+------+
|  1 |         1 | diginetlab.my.id            | SOA  | ns1.diginetlab.my.id hostmaster.diginetlab.my.id 2025081303 28800 7200 604800 86400 | 86400 |    0 |        0 | NULL      |    1 |
|  2 |         1 | ns1.diginetlab.my.id        | NS   | 103.183.74.17                                                                       |   120 |    0 |        0 | NULL      |    1 |
|  3 |         1 | ns2.diginetlab.my.id        | NS   | 103.183.74.200                                                                      |   120 |    0 |        0 | NULL      |    1 |
|  4 |         1 | poweradmin.diginetlab.my.id | A    | 103.183.74.17                                                                       |   120 |    0 |        0 | NULL      |    1 |
+----+-----------+-----------------------------+------+-------------------------------------------------------------------------------------+-------+------+----------+-----------+------+
4 rows in set (0.012 sec)

Jika tabel records sudah terisi otomatis seperti diatas berarti sudah berhasil.

Tips: Perintah 1 baris untuk melakukan pengecekan

Pengecekan zones/domains:

mysql -u root -p -D powerdnsdb -e "SELECT * FROM domains;"

Pengecekan records:

mysql -u root -p -D powerdnsdb -e "SELECT * FROM records;"

Verifikasi

Terdapat beberapa cara untuk melakukan verifikasi diantaranya adalah menggunakan tools berbasis command line, dan online checker.

1. Gunakan tools berbasis command line

Untuk verifikasi dengan tools berbasis command line pastikan terlebihdahulu koneksi port 53 (DNS) tidak di redirect ke Recursive DNS Server milik ISP.

Berikut perintah menggunakan tools dig untuk memastikan DNS Server dan Record yang telah kita buat sudah bisa melayani Query:

dig +short NS diginetlab.my.id @103.183.74.17
dig +short NS diginetlab.my.id @103.183.74.200
dig +short A ns1.diginetlab.my.id @103.183.74.17
dig +short A ns1.diginetlab.my.id @103.183.74.200
dig +short A ns2.diginetlab.my.id @103.183.74.17
dig +short A ns2.diginetlab.my.id @103.183.74.200
dig +short A poweradmin.diginetlab.my.id @103.183.74.17
dig +short A poweradmin.diginetlab.my.id @103.183.74.200

Output:

fariz@vm0-sg:~$ dig +short NS diginetlab.my.id @103.183.74.17
ns2.diginetlab.my.id.
ns1.diginetlab.my.id.
fariz@vm0-sg:~$ dig +short NS diginetlab.my.id @103.183.74.200
ns2.diginetlab.my.id.
ns1.diginetlab.my.id.
fariz@vm0-sg:~$ dig +short A ns1.diginetlab.my.id @103.183.74.17
103.183.74.17
fariz@vm0-sg:~$ dig +short A ns1.diginetlab.my.id @103.183.74.200
103.183.74.17
fariz@vm0-sg:~$ dig +short A ns2.diginetlab.my.id @103.183.74.17
103.183.74.200
fariz@vm0-sg:~$ dig +short A ns2.diginetlab.my.id @103.183.74.200
103.183.74.200
fariz@vm0-sg:~$ dig +short A poweradmin.diginetlab.my.id @103.183.74.17
103.183.74.17
fariz@vm0-sg:~$ dig +short A poweradmin.diginetlab.my.id @103.183.74.200
103.183.74.17

2. Gunakan Online Checker

Terdapat banyak tools Online Checker yang ada di internet beberapa diantaranya adalah:

Verifikasi query NS Record
Verifikasi query A Record

Penutup

Sampai disni kita telah berhasil melakukan setup Private Name Server (Authoritative DNS Server Master dan Slave) langkah selanjutnya jika kamu belum melakukan delegasi domain dari registrar ke Private Name Server, untuk cara delegasinya bisa dilihat di artikel Berikut.

Dengan PowerDNS Master–Slave ditambah Poweradmin, mengelola DNS jadi jauh lebih mudah. Semua zone otomatis tersinkron, dan kamu bisa atur domain langsung lewat web tanpa ribet. Intinya, setup ini bikin pekerjaan admin DNS lebih nyaman dan efisien.

Tested On:
- Debian 12 (Bookworm)
- PowerDNS 4.9.8
- Poweradmin v4.0.1