PowerDNS’de DNS Master Slave çoğaltmasını bir profesyonel gibi yapılandırın.
PowerDNS’de DNS Master Slave çoğaltması nasıl yapılandırılır
PowerDNS’de DNS Master-Slave replikasyonunu yapılandırmak için ön koşullar kapsamında PowerDNS’i kurup yapılandırmamız gerekmektedir. Bundan sonra bu yazımızda bahsettiğimiz değişiklikleri pdns.conf dosyasında yapacağız. Devam etmeden önce aşağıdaki varsayımları aklınızda bulundurun:
- ns1 – master – 192.168.250.52
- ns2 – slave – 192.168.250.152
- ns3 – slave – 192.168.250.252
DNS Ana İkincil çoğaltma: Ana Yapılandırma
Here, burada izin ver-axfr-ips ve master olmak üzere iki seçenek tanımlıyoruz. Allow-axfr-ips seçeneği, PowerDNS’e bölge aktarımlarını başlatabilen ve alabilen uç noktalar hakkında bilgi verir.
Örneğin, burada ns2.example.com 192.168.250.152’de çalışır ve ns3.example.com 192.168.250.252’de çalışır. Yani bu IP’ler bölge aktarımları için temizlenmiştir.
192.168.250.0/25 gibi tam aralıkları da tanımlayabiliriz. Bölge transferlerinin minimum düzeyde tutulması tercih ediyor.
cp -pv /etc/powerdns/pdns.conf /etc/powerdns/pdns.conf-bkp22; vim /etc/powerdns/pdns.conf allow-axfr-ips=192.168.250.152,192.168.250.252
Daha sonra master parametresini aşağıda görüldüğü gibi “evet” olarak ayarlayacağız:
master=yes
Bu değişikliklerden sonra PowerDNS’i şu komutla yeniden başlatacağız:
systemctl restart pdns
DNS Ana İkincil çoğaltma: İkincil Yapılandırma
Köle sunucularda, pdns.conf dosyasında köleyi evet olarak ayarlayacağız. Bu, PowerDNS’e bunun bir bağımlı sunucu olduğunu bildirir. Ayrıca aşağıda görüldüğü gibi NOTIFY komutunu beklemeden de slave-cycle-interval seçeneği ile ikincil sunucuyu ana bilgisayarıyla güncel tutabiliyoruz:
cp -pv /etc/powerdns/pdns.conf /etc/powerdns/pdns.conf-bkp23; vim /etc/powerdns/pdns.conf slave=yes slave-cycle-interval=60
Daha sonra ana sunucuyu arka uç yapılandırmasına da ekleyeceğiz. Veriler aşağıdaki üç değeri içerir:
- Bu senaryoda DNS sunucusunun IP adresi, 192.168.250.52
- İkincil sunucunun FQDN’si
- Atanacak rol, bu senaryoda yönetici rolü
Her bir ikincil sunucunun kendi FQDN’sine sahip olacağını hatırlayın.
Dolayısıyla NS2’de:
mysql use pdns; insert into pdns.supermasters values ('192.168.250.52', 'ns2.example.com', 'admin');
Benzer şekilde NS3’te:
mysql use pdns; insert into pdns.supermasters values ('192.168.250.52', 'ns3.example.com', 'admin');
Daha sonra PowerDNS’i bu komutla yeniden başlatacağız.
systemctl restart pdns
Replikasyonu test etme
Ana sunucuya yeni bir bölge ekledikten sonra hiçbir şey olmazsa aşağıdaki kodu çalıştıracağız:
root@master:~# pdnsutil create-zone replicateme.dev Creating empty zone 'replicateme.dev'
Etki alanının kölede görünmemesi durumunda şu kodu çalıştıracağız:
root@slave:~# pdns_control list-zones | grep replicateme
Ayrıca bölgede henüz NS girişi bulunmadığından sonraki adım, aşağıdaki komutla NS1 ve NS2 için NS girişlerini yapmaktır:
pdnsutil add-record replicateme.dev @ NS ns1.example.com; pdnsutil add-record replicateme.dev @ NS ns2.example.com;
Örneğin:
root@master:~# pdnsutil add-record replicateme.dev @ NS ns1.example.com New rrset: replicateme.dev. IN NS 3600 ns1.example.com root@master:~# pdnsutil add-record replicateme.dev @ NS ns2.example.com New rrset: replicateme.dev. IN NS 3600 ns1.example.com replicateme.dev. IN NS 3600 ns2.example.com
Bundan sonra bölgenin seri numarasını artıracağız ve ardından notify komutunu kullanacağız:
pdnsutil increase-serial replicateme.dev; pdns_control notify replicateme.dev;
Örneğin:
root@master:~# pdnsutil increase-serial replicateme.dev SOA serial for zone replicateme.dev set to 2019040101 root@master:~# pdns_control notify replicateme.dev Added to queue
Bu, ikincil sunucuda aşağıdaki günlük girişleriyle sonuçlanır:
Apr 3 11:00:10 slave pdns_server[19627]: Received NOTIFY for replicateme.dev from 192.168.250.52 for which we are not authoritative Apr 3 11:00:10 slave pdns_server[19627]: Created new slave zone 'replicateme.dev' from supermaster 192.168.250.52 Apr 3 11:00:10 slave pdns_server[19627]: 1 slave domain needs checking, 0 queued for AXFR Apr 3 11:00:10 slave pdns_server[19627]: Received serial number updates for 1 zone, had 0 timeouts Apr 3 11:00:10 slave pdns_server[19627]: Domain 'replicateme.dev' is stale, master serial 2019040101, our serial 0 Apr 3 11:00:10 slave pdns_server[19627]: Initiating transfer of 'replicateme.dev' from remote '192.168.250.52' Apr 3 11:00:10 slave pdns_server[19627]: Starting AXFR of 'replicateme.dev' from remote 192.168.250.52:52 Apr 3 11:00:10 slave pdns_server[19627]: AXFR started for 'replicateme.dev' Apr 3 11:00:10 slave pdns_server[19627]: AXFR of 'replicateme.dev' from remote 192.168.250.52:52 done Apr 3 11:00:10 slave pdns_server[19627]: Backend transaction started for 'replicateme.dev' storage Apr 3 11:00:10 slave pdns_server[19627]: AXFR done for 'replicateme.dev', zone committed with serial number 2019040101
Ayrıca bu, domainin kölede görünmesine neden olur ve onu aşağıda görüldüğü gibi sorgulayabiliriz:
pdns_control list-zones | grep replicateme; dig -t NS replicateme.dev @localhost +short;
Örneğin:
root@slave:~# pdns_control list-zones | grep replicateme replicateme.dev. root@slave:~# dig -t NS replicateme.dev @localhost +short ns1.example.com. ns2.example.com.
Sonuç olarak, /etc/powerdns/pdns.conf dosyasındaki ana yapılandırma şu şekilde görünecektir:
allow-axfr-ips=135.181.95.52 allow-dnsupdate-from=127.0.0.0/8,::1 allow-notify-from=0.0.0.0/0,::/0 api=yes api-key=oL7TzKcAGGgmkdkb default-soa-content=pdns1.maxihoster.com. sysadmin.maxihoster.com. 2021101402 21600 3600 1209600 21600 disable-axfr=no disable-syslog=no include-dir=/etc/powerdns/pdns.d launch= log-dns-queries=yes log-timestamp=yes loglevel=5 master=yes primary=yes query-logging=yes
Ayrıca, /etc/powerdns/pdns.conf dosyasındaki yardımcı yapılandırma şuna benzer olacaktır:
api=yes api-key=lgAw2d170Y4mzyQw disable-syslog=no include-dir=/etc/powerdns/pdns.d launch= local-address=0.0.0.0, :: local-port=52 log-dns-queries=yes log-timestamp=yes query-logging=yes slave=yes slave-cycle-interval=60 superslave=yes
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.