I'm struggling with DNS caching issues on a Windows based LAN.
I've noticed that if I change a DNS record on a domain hosted by a 3rd party nameserver, that I always seem to be the very last person to see the change happen. I can often query the domain using a service which checks propagation around the world like www.whatsmydns.net but I usually find that all other DNS servers are correct and it's only my own server which has the old IP - even 8-12 hours later. This is an issue for us as we're website developers and often making changes to DNS records so these huge delays are frustrating.
It seems to be because our primary domain controller server (+Active Directory & DNS) on our LAN (which is also our local DNS server) caches records for AGES (Way beyond it's published TTL). How can I stop the Windows DNS server from caching, or reduce the caching to only an hour or so?
If I understand your situation correctly, it's that you're not satisfied with your DNS server's caching of external records. You might want to experiment with these settings on both your DNS server (because it has its own cache) and the end user workstations. Restart the DNS client service after making registry changes.
Incoming Microsoft Support KB:
Using the Registry to Control the Caching Time
The length of time for which a positive or negative response is cached depends on the values of entries in the following registry key:
The TTL for positive responses is the lesser of the following values:
Notes
If you do not want negative responses to be cached, set the MaxNegativeCacheTtl registry setting to 0.
To set the caching time on a client computer:
Locate and then click the following key in the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
On the Edit menu, point to New , click DWORD Value, and then add the following registry values: Value name: MaxCacheTtl
Data type: REG_DWORD Default value: 86400 seconds Value data: If you lower the Maximum TTL value in the client's DNS cache to 1 second, this gives the appearance that the client-side DNS cache has been disabled.
Value name: MaxNegativeCacheTtl
Data type: REG_DWORD Default: 900 seconds Value data: Set the value to 0 if you do not want negative responses to be cached.
Type the value that you want to use, and then click OK.
Quit Registry Editor.