Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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?

share|improve this question

1 Answer 1

up vote 1 down vote accepted

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:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters

The TTL for positive responses is the lesser of the following values:

  • The number of seconds specified in the query response the resolver received
  • The value of the MaxCacheTtl registry setting.

Notes

  • The default TTL for positive responses is 86,400 seconds (1 day).
  • The TTL for negative responses is the number of seconds specified in the MaxNegativeCacheTtl registry setting.
  • The default TTL for negative responses is 900 seconds (15 minutes).

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:

  • Start Registry Editor (Regedit.exe).
  • 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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.