I just had a client recently ask, “Why doesn’t my secondary dns server update a zone?”
They’re running pdns and poweradmin packages:
poweradmin-2.1.4-1.el6.noarch pdns-4.0.3-1pdns.el6.x86_64 pdns-backend-mysql-4.0.3-1pdns.el6.x86_64
on both ns1 and ns2 servers. The ns2 server is set to be slave of ns1, so any changes made on ns1 automatically get populated on ns2. However one of their reverse zones didn’t have name servers. The first thing to always check is make sure that your zone has both your ns1 and ns2 servers listed as NS records.
example.com IN NS ns1.exmaple.com. example.com IN NS ns2.exmaple.com.
Those records were missing from the zone, once they were added back in the zone properly updated the ns2 server.
Here is an example of our configuration, this is the primary name server which also runs PowerAdmin.
allow-recursion=0.0.0.0/0 allow-axfr-ips=x.x.x.x/32 #config-dir=/etc/powerdns daemon=yes disable-axfr=no guardian=yes local-address=0.0.0.0 local-port=53 log-dns-details=on loglevel=3 #module-dir=/usr/lib/powerdns master=yes slave=no setgid=pdns setuid=pdns socket-dir=/var/run version-string=powerdns #include-dir=/etc/powerdns/pdns.d launch=gmysql gmysql-host=127.0.0.1 gmysql-user=pdns gmysql-dbname=pdns gmysql-password=xxxxx
Note you should replace allow-axfr-ips=x.x.x.x with the ip address of the secondary DNS so it’s allowed to perform zone transfers. Then secondly replace gmysql-password=xxxxx with your mysql password.
Their secondary name server uses this config, use this same configuration if you have multiple name servers all receiving updates from the primary. But remember to allow each of the secondary name servers on the primary name server to transfer zones.
allow-recursion=0.0.0.0/0 config-dir=/etc/pdns daemon=yes disable-axfr=yes guardian=yes local-address=0.0.0.0 local-port=53 log-dns-details=on log-failed-updates=on loglevel=3 #module-dir=/usr/lib/powerdns master=no slave=yes slave-cycle-interval=60 setgid=pdns setuid=pdns socket-dir=/var/run version-string=powerdns #include-dir=/etc/powerdns/pdns.d launch=gmysql gmysql-host=127.0.0.1 gmysql-user=pdns gmysql-dbname=pdns gmysql-password=xxxxx
Hope this help you if you run into the same issue as our client.