Cache updates when migrating DNS from one provider to another
- by JohnCC
This may be a Windows DNS specific question or a general DNS best practice question - I'm not sure!
We migrated our 3rd party DNS provision from provider A to provider B.
I noticed that our internal recursive windows DNS servers still had NS records cached for our domains pointing to provider A's servers, even though I changed the nameservers with our registrar several days ago, and even though selecting the properties of the cached records showed a TTL of 1 day.
After 24 hours when the NS records in this cache have expired, will the DNS server go back to the TLD server for an update on the authority, or will it go by preference to dns1.providera.com since that is what it has cached?
In this case I arranged to leave Provider A's servers up for a week to allow changes to propagate, so dns1.providera.com is still active and would still provide NS and SOA records that said that dns1.providera.com. was in charge of this domain. Given this fact, would the Windows DNS server ever go back to the TLD and pick up the authority changes, or would it just assume all was well and renew timestamps on its cached NS records?
I wonder what would be the best approach to ensuring that caches pick this up. Should I:-
(1) Leave Provider A's servers in place and active and wait for caches to catch up ... basically what we're doing now which seems to have issues - perhaps specifically for Windows servers, or perhaps more widely.
(2) Leave Provider A's servers in place but change the NS and/or SOA information they provide to tell caches that new servers are in charge.
(3) Remove Provider A's servers after 2*TTL to force remaining caches to update.
The issue with (2) is that on Provider A's system I can't seem to change the NS or SOA information to anything other than their servers.
The issue with (3) is that I'm not sure how a DNS server would behave in this case. When it couldn't reach the cached name servers, would it flush its cache and try a full recursive lookup, or would it just return an error, forcing the user to clear the cache manually?
Thanks in advance!