My largest client is getting annoyed at me, and I’ve tried to hack it into the code, but it’s not working.
Heres’ the thing. User makes a change to their dns zone, and they click apply changes. This applies the change to the local DNS server using rndc reload (zonename), which is fine, but I need it to run that command on all of the slave servers too. Right now it just waits for TTL expiration on the slaves.
Any way to easily fix this, or is it a bug/feature request?
Let’s call it a bug. File it in the bug tracker and Jamie will fix it. (Though I do greatly admire your “dig in and fix it” attitude, sometimes it’s best to place the blame where it belongs and let Jamie fix it.)
Changing the ‘Bind -> Zone Defaults’ page will not help, as it just sets defaults for new domains. You need to update all existing domains to notify slaves, by going to the BIND module, clicking on each domain, clicking on ‘Edit Zone Options’ and filling in the ‘Also notify slaves’ field. Also, make sure ‘Notify slaves of changes?’ is set to ‘Yes’.
Also…even with that global setting, or setting in on individual zones still does not work, just tested it. We’ve created new zones since making that change, no impact. I’ve set it on a zone, saved, restarted webmin, made a change to the zone, saved, and it doesn’t push to the slaves, even though the screen makes a comment about running rndc reload when the button is pushed.
If you check /var/log/messages on the slave system, is anything logged that suggests why a zone transfer may have failed?
Similarly, in /var/log/messages on the master, does anything get logged when you click the Apply button that might indicate an error talking to slaves? For example, if there was a firewall blocking port 53 between them, that would cause problems.
Also, the reason for that ‘Default’ option is to fall back to the global setting for notifying slaves. In your case, I would recommend explicitly selecting ‘Yes’.
One thing to check is that your master server is setup to notify the slave when a change is made to the domain. On the master system, if you go to Webmin -> Servers -> BIND DNS Server -> your domain -> Zone Options, make sure the slave’s IP is in the ‘Also notify slaves’ field.
If not, you should add it for all zones, and click the Apply button. The latest version of Virtualmin does this automatically, for new domains.