Windows – Default TTLs in Windows DNS

domain-name-systemwindows

We are trying to set the TTLs for a select set of servers to a low value (1 minute). That's the easy part, and has already been done manually. However, I'm concerned about what will happen if the record becomes stale/scavenged for whatever reason, or the server updates it and resets the TTL back to the default, so I want to make this more permanent. I have a few questions…

How does the Minimum Default TTL value under the SOA function in Windows? In another post, it's mentioned that the canonical behavior of this value has changed. Does this also apply in Windows?

My Minimum Default TTL value is set to 10 minutes currently, but all of the A records that were registered by clients are set with a TTL of 20 minutes. How is the TTL set per record under Windows? Does the client request a value, or is this determined by the DNS server? In either case, how is it changed?

Best Answer

It appears that the Minimum Default TTL in the SOA is how long failed DNS queries are cached, as Celada stated.

The 20 minute TTL on each record is independent of that, and is set by the client when dynamically updating its own record (the default is 20 minutes).

The default of 20 minutes can be changed by setting a DWORD named DefaultRegistrationTTL in HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters (the value should be in seconds. A reboot is not necessary for it to go into effect, but you'll need to run ipconfig /registerdns after the change if you want the new TTL updated immediately.

Related Topic