Say we have an A REC that points to IP x of our LB for one of our services. It has a TTL of 3600s. But... what it should have been was a C NAME that points to a A REC for a VIP. It's already in production and has about 10 services that calls the new A REC comprising of ~100 machines. If the A REC is deleted and a new C NAME is created with the same name and points to a new A REC, will the consumers notice this change? Is there a chance that the callers would time out?
I'd assume with the amount of machines some are bound to be impacted. If I set the TTL to 5 hours would there be a better chance of no one noticing?
So my question is, how do I swap an A REC for a C NAME without consumers of our service noticing?
Would it matter if the record is for use inside the network only vs available to the public?
I ask because we will need to load balance across data centers soon, and we have some records that are stuck pointing to an IP.
It would be nice to have an explanation of how the DNS system would behave in this scenario. Thanks.
Let's assume that you have a name
foo.example.org
that has nothing except anA
record with the IPv4 address192.0.2.1
and a 3600 second TTL. Anyone who looks upfoo.example.org
will get thatA
record, and remember it for an hour before they go and ask your name server for fresher information.Then assume you change things so that
foo.example.org
has aCNAME
record pointing atbar.example.net
, which in turn has anA
record holding the address192.0.2.1
. Anyone who looks up the namefoo.example.org
for the first time will get theCNAME
, proceed to look upbar.example.net
, and get theA
record from there.The only complication is that anyone who looked up
foo.example.org
during the 3600 seconds immediately before you change to theCNAME
chain took effect will remember the direct lookup, and thus not see the new information until the TTL expires. So for up to an hour after you do the change, some people may still see the old information. So to keep the change transparent to users, make sure that the old information (the old IP address) still works for at least one full TTL period after you make a change.This is not in any way special for changing from
A
toCNAME
. No matter what you change, there will be a full TTL period during which clients can legitimately get the old info. That's just how DNS works.On top of that, of course, there are clients and caching servers that don't pay as much attention to the TTL value as they should, but that's a whole different thing.