DNS Server (part 3): Konfigurasi Server Master dan Server Slave (PowerDNS) pada Centos 7

Setelah sukses melakukan instalasi PowerDNS dan PowerAdmin di postingan ini dan ini dimana server tersebut bertindak sebagai server Master DNS, sekarang waktunya masuk pada bagian konfigurasi master slave. Apa sih fungsinya server slave ini? Fungsi server slave adalah sebagai back up server. Jadi misalnya tiba-tiba server Master DNS-nya mati, maka server slave alias backup ini akan menggantikan server Master tersebut.

Kalau kalian melihat postingan saya yang ini, maka kalian akan melihat NS dns2.xxxxx.id dan dns3.xxxxxx.id, itulah server slave yang saya buat. Sedangkan untuk masternya adalah dns1.xxxxx.id

secara lebih detail:

  • dns1.xxxxxx.id – 10.xxx.xxx.xxx (Master Server)
  • dns2.xxxxxx.id – 18.xxx.xxx.xxx (Slave Server)
  • dns3.xxxxxx.id – 10.xxx.xxx.xxx (Slave server)

Konfigurasi untuk pdns pada PowerDNS itu defaultnya semua di ‘#’ alias tidak aktif. Otomatis fungsi master slave-nya pun belum akan bekerja meskipun kita sudah menetapkan IP yang akan menjadi server slave pada PowerAdmin (di sisi master). Untuk mengaktifkan fungsi master slave, yang harus dilakukan adalah:

Konfigurasi pada Server Master (dns1.xxxxxx.id)

  1. Ubah konfigurasi pdns.conf yang berada di /etc/pdns/pdns.conf. Caranya:
    vi /etc/pdns/pdns.conf

    editing pdns.conf
  2. Yang pertama, cari bagian allow-axfr-ips karena bagian tersebutlah yang akan kita ubah.
    allow-axfr-ips

    Pengaturan ini untuk mengizinkan IP atau netmask melakukan AXFR. AXFR ini biasa disebut juga sebagai DNS Transaction, jadi pada bagian inilah diatur IP atau netmask mana saja yang bisa bertransaksi (zonetransfer) dengan server master. List-list IP dan netmask tersebutlah yang merupakan server slave.

    Kalian bisa bebas menambahkan IP slave yang mungkin kedepannya akan kalian gunakan.

  3. Kemudian cari bagian allow-notify-from

    Allow Notify From
  4. Selanjutnya cari bagian allow-recursion

    allow-recursion

    Dengan menentukan daftar IP atau netmask yang bisa melakukan rekursi, berarti kita mengizinkan hanya IP atau netmask tersebut yang bisa melakukan rekursi atau menggunakan DNS Server kita. Defaultnya adalah semua IP bisa belakukan rekursi terhadap server kita, untuk itulah perlu dilakukan pembatasan

  5. Bagian berikutnya adalah also-notify

    Also-notify

    Jika terjadi perubahan seperti perubahan zona (penambahan record atau penghapusan record), maka server akan memberi notifikasi kepada IP tersebut. Notifikasi adalah cara untuk segera menyebarkan suatu perubahan yang terjadi ke pada slave. Pada bagian ini, masukkanlah IP yang menjadi server slave kalian.

  6. Aktifkan daemon

    daemon

    Daemon ini merupakan boolean, jadi pilihannya hanya “yes” atau “no”, kalau kita mengaktifkan ini berarti kita mengizinkan service pdns untuk berjalan di backgorund.

  7. Pada bagian disable-axfr, kita isi dengan “No”
    disable-axfr

    Disable-axfr ini kita isi dengan “no” karena kita sudah mendefinisikan IP atau subnet mana saja yang bisa melakukan zonetransfer. (lihat nomor 2)

  8. Nyalakan guardian process

    Guardian Process

    Dengan mengaktifkan guardian process berarti kita mengizinkan pdns_server untuk membungkus dirinya di dalam sebuah ‘guardian’. Guardian inilah yang akan memantau performa dari dalam pdns_server instance yang nantinya akan terbaca dalam process list OS sebagai pdns_server-instance.

  9. Tentukan local-address

    local-address

    Local IP Address adalah alamat dimana kita melakukan bind. Pada bagian ini kita diminta untuk menetukan spesifik IP yang akan kita gunakan, isi dengan alamat IP dari server ini sendiri (server master).

  10. tentukan local-port dan aktifkan log-dns-details

    log-dns-details dan dns-port

    Port yang digunakan untuk mendengar, untuk DNS biasanya adalah port 53. Pada bagian ini hanya diizinkan untuk membuka satu port saja.
    Sedangkan untuk log-dns-details, dengan mengaktifkan ini berarti kita mengizinkan detail proses yang terjadi pada pdns_server ini untuk dimasukkan ke dalam syslog.

  11. Aktifkan server ini sebagai master sekaligus sebagai slave.

    Master
    slave

    Karena server ini merupakan server master, maka kita harus mengaktifkan fungsi ini. Ketika kita menetukan server ini sebagai server master berarti server ini akan mengirimkan notifikasi kepada server slave jika terjadi perubahan, dimana notifikasi tersebut nanti akan di-query oleh PowerDNS jika terjadi perubahan zona dan mentransfer perubahan tersebut kepada server  slave.

    Lalu kenapa fitur “slave” perlu diaktifkan juga di server master ini? Hal tersebut hanya untuk menjaga-jaga apabila suatu saat server ini juga berfungsi sebagai Slave untuk zona yang lainnya.

  12. Tentukan IP dari recursor

    recursor

    Jika ini ditentukan, maka semua query rekursif akan ditangani oleh IP yang diletakkan di sini. Untuk itu, isikan IP ini dengan IP localhost.

  13. Version-string
    Version String

    Jika melakukan query untuk mengetahui versi dari PDNS melalui DNS (dig chaos txt version.bind @pdns.ip.address) , powerDNS biasanya akan memberitahukan semuanya dengan “jujur” (Defaultnya adalah Full). Apabila kita mengatur bagian ini, maka kita bisa mengatur hasil balikannya.
    Kalau version-string kita isi full, maka PowerDNS akan memberitahukan info dengan lengkap. Kalau diisi dengan powerdns, maka PowerDNS akan menjawabnya dengan “served by PowerDNS – http://www.powerdns.com”. Apabila kita mengisinya dengan anonymous maka hasil balikannya adalah “ServerFail”. Kita juga bisa mengisinya dengan nilai yang ingin kita tentukan sendiri

Kira-kira itulah beberapa opsi pada /etc/pdns/pdns.conf yang harus kita aktifkan. Apabila kalian memiliki konfigurasi lainnya yang perlu diaktifkan juga, silahkan diaktifkan sendiri ya. Setelah semua opsi yang saya sebutkan di atas selesai, maka simpan dan restart service pdns-nya. Caranya:

service pdns restart

Konfigurasi pada Server Slave (dns2.xxxxxxx.id)

Karena ini merupakan server slave, maka kita tidak membutuhkan PowerAdmin agar server ini bisa berjalan. Dalam Master Slave, hanya dibutuhkan 1 PowerAdmin yaitu pada Server Master untuk lebih mudah mengontrol record-record yang berisi dari beberapa subdomain.

  1. Instalasi server slave sama dengan Server master. Pertama kalian harus melakukan instalasi PowerDNS (bisa dibaca di sini)
  2. Setelah sukses melakukan instalasi PowerDNS, kita akan mengedit file konfigurasi yang berada pada /etc/pdns/pdns.conf. Karena ini server slave, maka ada sedikit perbedaan konfigurasi.
    vi /etc/pdns/pdns.conf

    pdns.conf pada slave

    Sejak ini bukan merupakan Server master maka kita tidak membutuhkan allow-axfr-ips dan disable-axfr diisi dengan nilay yes.
    Kita juga menonaktifkan fungsi master dengan mengisi master=no.
    Setiap 60 detik, server slave ini akan melakukan query kepada server master untuk memastikan apakah ada update yang dilakukan pada zona tersebut atau tidak. Jika ada, maka server master akan mengirimkan notifikasi kepada slave server untuk melakukan perubahan tersebut. Jika ada masalah koneksi saat update zona tersebut, slave-cycle-interval ini akan memastikan kalau perubahan akan terjadi ketika server slave online kembali.

  3. Tahap selanjutnya adalah menerangkan pada PowerDNS cara bagaimana untuk berkomunikasi dengan server master. Login ke dalam MaridDB Server yang sudah kita setting sebelumnya pada tahap nomor 1. Caranya:
    mysql -u <user_powerdns> -p
    use powerdns;
  4. Selanjutnya kita akan membuat sebuah baris baru pada tabel supermasters. Pada tabel ini kita akan menentukan IP Server master, FQDN dari slave server yang sedang kita konfigur. Caranya:
    insert into supermasters values (’10.xxx.xxx.xxx’, ‘dns2.xxxxxxxx.id’, ‘admin’);
    exit;
  5. Selanjutnya kita restart service pdns-nya. Caranya:
    service pdns restart

Untuk ns3 dns3.xxxxxx.id , lakukan hal yang sama seperti yang dilakukan pada dns2.xxxxxxx.id.

Testing Koneksi Master/Slave

  1. Dari Server master, kita akan melakukan ping terhadap server slave. Caranya:
    ping dns2.xxxxxxxx.id

    Ping dns2.xxxxxxx.id dari server master
  2. Dari server master, coba ping terhadap dirinya sendiri. Caranya:
    ping dns1.xxxxxxx.id

    ping dns1.xxxxxxx.id dari dirinya sendiri

Sekarang lakukan hal yang sama dari Server Slave, ping dns1.xxxxxxx.id dan diri sendiri dengan command yang sama seperti gambar di atas. Apabila ping berhasil dilakukan maka kita bisa lanjut ke tahapan yang berikutnya.

Test Replikasi

Setelah sebelumnya kita mendaftarkan Slave Server sebagai ns (nameserver) untuk zone yang kita buat (baca postingan ini), maka sekarang waktunya untuk menguji coba apakah record-record sudah ter-replikasi dengan baik. Caranya:

dig xxxxxxx.id A @dns1.xxxxxxx.id

Tahap selanjutnya adalah mengujicoba dns3.xxxxxxx.id . Caranya:

dig xxxxxxxxxxx.id A @dns3.xxxxxxx.id

Kita tidak pernah menambahkan record pada dns3.xxxxxxxxx.id , namun ketika kita mencoba mencari suatu record dengan address tersebut pada dns3.xxxxxxx.id dan dns3 menemukannya, maka record tersebut sudh tereplikasi dengan baik.

Untuk mengujicoba record apa saja yang sudah tereplikasi dengan baik kita bisa mencoba perintah dig berikut:

dig dns1.xxxxxxxxxx.id -t axfr

maka keluarannya adala seperti berikut:

Gambar di atas memperlihatkan list record yang mucul ketika dns3.xxxxxx.id melakukan query kepada dns1.xxxxxx.id. Hal tersebut menunjukkan kalau proses transfer berjalan dengan baik.

Catatan:

  • Jika server slave kamu tidak terdaftar sebagai nameserver untuk zona tersebut, maka zona tersebut tidak akan tereplikasi (transfer failed).
  • Ingat bahwa pengaturan untuk xxxxxxxxx.id hanya akan aktif ketika kita sudah mendaftarkan dns1.xxxxxxx.id, dns2.xxxxxxx.id dan dns3.xxxxxxx.id pada Registrar.

Itu tadi sedikit konfigurasi dan percobaan Master/slave pada PowerDNS dengan MariaDB sebagai backend-nya. Semoga postingan ini berguna untuk kalian ya.

Sampai jumpa di postingan berikutnya 🙂

Facebook Comments Box

Comments are closed.