@ID10T - Thank you for the reply and helping me here also.
This slave DNS server was a Virtualmin server previously (slaved to the old server and master DNS). It used to get updates from the old server. Since I was installing Debian 11 on the new server (master) I decided to wipe the old slave DNS server because it was running Debian 10 and (I think) PHP 7.3.
This slave DNS server really only runs our secondary DNS and is in a different datacenter and geo location than the master DNS server.
I’ve wiped this slave DNS server and started over and it still gets the zones from the master DNS server, but no records as shown in the above screenshots.
I’ve noticed the same on a new setup, and this does not occur on older setups that are as far as I can tell identical.
My current workaround is to quickly reload bind on the slave after adding a new domain (systemctl reload named or using “Reload configuration” in Webmin), as you can see it attempts a transfer in the logs but the master is indicated as non-authoritive until after the reload.
Dunno why it happens and haven’t had the energy to properly look into it yet.
Following up on this, @jtomelevage could you see if you have the same behaviour as this post?
Because this is exactly what I am seeing on a freshly installed system from last week, while my others that were installed long ago and upgraded works flawlessly. Configuration is exactly the same and I verified that the fix mentioned by @Jamie and @Ilia is in place.
Any thoughts on what else might cause this now?
Edit: Apologies for slightly hijacking the thread in case OP is not seeing the same. Then I’ll open a new one.
Strange. I found that most Zone options pages were set to yes but about 10% were set to default. I changed them all to yes.
For my first tests I tried adding a test A record via bind on the master DNS server:
Webmin | Servers | Bind DNS Server | Selecting a Zone | Clicking “Address” (A records) | adding my test Name and server IP
This resulted in no records being generated or added to the slave DNS server - the modified Zone still had zero records.
For some reason I thought to try adding the test A record via (master DNS server):
Virtualmin | Choosing the domain from the dropdown | Server Configuration | DNS Records | Green “Create Record Of Type” button and adding my test name and IP address.
This resulted in a successful Zone transfer and all Zone records from the master DNS server. Now the zone had all the records on the slave DNS server as the master DNS server.
Next I deleted the test A record from the master DNS server and checked and the record was also deleted from the slave DNS server.
It was a long painful process, but I did this procedure for all virtual servers on the master DNS server and verified that each Zone was added to and deleted from correctly.
Lastly I added a completely new domain to the master DNS server ( Virtualmin | Create Virtual Server ).
This successfully added the domain, Zone and DNS records to the slave DNS server.
Deleting this new test Virtual Server was also successful.
So, this was resulting from a migration from one master DNS server to a brand new one (shiny). I do not understand why some virtual servers transferred with the slave zone option set to default and some to yes.
Regardless, all seems well now.
Thank you all for you patience and input helping me through this. Also kudos to the Virtualmin team for a really great product!