Change SOA TTL for all zones


I switched servers recently so I had set the Bind zone defaults to be rather low. I now need to increase these values for all zones. Is there a way to change them all (either graphic or cli) at one time? Or will I have to go in manually?

Another question about what “Negative cache” “refresh time” etc mean: according to my SOA TTL is 5 minutes. That’s my negative cache time setting though? I’m awfully confused what all these values mean and do. I’ve read countless websites but they seem either contradict one another by using the wrong words or use completely different words that don’t match the name in virtualmin. Can anyone help me understand these settings better?

The attached screenshot is my current zone defaults (Id like to update all four values for all my zones)

Appreciate it,

[EDIT] Don’t see a link to the screenshot but it seems it uploaded:

There’s the shell command virtualmin modify-dns remove-record and add-record, those might do what you’re after. Not sure though if they work on the SOA record, so you might want to try that with a test domain first. :slight_smile:

The “negative cache” time tells nameservers and resolvers how long they should cache “not found” results for the given zone.

Thanks Locutus, I’ll use a domain I haven’t gotten to restoring data yet and report back.

When would a “Not found” response be given? Like if someone tries going to but I don’t have a DNS entry (A record for example) for that hostname? If I’m understanding that correctly then I should probably set this value to be low in case I accidentally go to a new host before I’ve created it on Virtualmin that way it will requery my server to see that I did in fact create it.

Can you also explain Refresh time, Expiry time, Transfer retry time and Default time-to-live for records? That last one I can’t find where a global default is, I find it on the individual zone Zone Parameters page. I know in the Server Templates under BIND DNS Settings there is Default TTL for DNS records which I have set to Use BIND module setting currently. I probably could set that to custom there but I’m still curious where the Use BIND module setting setting is?

Thanks again.
Dustin J. Schreiber

Yes, “not found” is returned when a non-existent resource record is requested. That can mean there’s no such hostname at all, or it doesn’t have a RR of the requested type. The return code as shown by tools like dig is “NXDOMAIN”.

“Refresh time”: How often should a slave generally re-request the zone from its master. “Expiry time”: After what time without successful zone transfer should a slave mark a zone as “expired” and stop serving it. “Transfer retry time”: After what time should a slave re-try a zone transfer if it failed previously. “Default TTL”: Well, exactly that, the TTL Virtualmin uses by default for new RRs if no specific TTL is given. The “Use BIND module” setting is probably (can’t check it right now) on one of the pages of “Webmin -> Servers -> BIND DNS Server -> Module Config”.

Thank you so much! Nice and simple. I think I get it a little bit better now.

I thought so too, but the only option I am able to find there is Add $ttl to top of new zone files.

Thank you,
Dustin J. Schreiber