0

I recently moved a website to a new server by changing its A record to the IP address of its new server.

Within four hours, all the machines on our network were resolving properly, within 24 hours, every nameserver dig / cachecheck.opendns.com / etc could find were serving up the right IP.

However, the client's machine seem to be the only machines in the world that still resolve to the old IP.

It's been 72hrs, he's flushed his DNS, and he cannot change his DNS resolver, since he said it causes other issues.

I currently created a configuration that rewrites the IP as the URL, and a php header directive that redirects the old site to the new one via the new IP (and I'm keeping my fingers crossed it doesn't cause a redirect loop)

How on earth does every nameserver I can find give the right IP address for this website, while the client's machines are still going to the old one?

I have also:

nslookup [the-domain] [all-three.nameservers.com] to no avail ; they all show the right IP.

Is there some directive I can put on the old server that says "Sorry, pal, wrong IP" -? Or what else can I really do, since we cannot replicate this --- ?

  • I'm not quite sure what the question is here. Are you asking how to set up the old server so that it displays a "you are lost" page when the client accesses it? Or how to clear out all the caches that might be causing him to have the problem? The two questions are quite different (and to my mind the second one can't be answered). – MadHatter Mar 31 '14 at 14:33
  • 1
    Before you start debugging, run it through dnscheck.iis.se and make sure that you don't have some silly problem with one of the slaves... – pehrs Mar 31 '14 at 14:39
  • 1
    Oh, thanks - it tells me that "x.nameserver does not accept queries over TCP [& UDP]" --- And @MadHatter - you're right, let me edit the question - – rm-vanda Mar 31 '14 at 16:22
5

DNS responses may be cached for TTL time. Every DNS server and caching client should forget everything about you old IP after TTL seconds since you've changed you A record on last authoritative server.

If TTL of your old record has not passed yet, then clients still may see old IP. And this is much more likely to happen with your clients, as they often use your DNS record and cache it.

If your old TTL has already passed, then there's something buggy between you and your client (it's not necessary exactly on client side). Unfortunately there are no guaranteed ways to fix it on your side (except may be using raw ip address or new DNS name).

I would check this in following sequence:

  • Check the list of authoritative servers for your domain (type NS for you zone)
  • Check that every authoritative server actually returns new address
  • Make sure that TTL didn't changed or find out old TTL (i.e. from backup of old zone).

If all above shows that your records are fresh everywhere and TTL has passed since last change than it seems that your side is ok.

  • Ask you client to resolve your name with dig or other tool that reports record's TTL (not sure if this can be done with nslookup) and check if this TTL is adequate. TTL reported by cacher is (at least should be) reduced by the time passed since last cache record update so you will see that it decreases between several requests. If it does not - there's buggy or misconfigured DNS.
4

It sounds like the problem is strictly on the client's side. While it is noble of you to want to help them in any way you can, if they aren't willing to see the issue is on their end there's not a lot you can do.

Have them test nslookup on their end and verify it resolves to the OLD IP.

Then have them do the same nslookup test but with:

  1. nslookup
  2. server 8.8.8.8 (this will change their DNS resolver temporarily for testing during the command)
  3. www.domain.com

It SHOULD show the right IP at that point. If it still doesn't...the issue is on your end. If it does show the right IP, then the issue is on your client's end, and you can point them to their DNS server and see if they have possibly setup manual entries for the website on their DNS server or are still caching the old IP.

  • That command does show the right IP on my end - But the client said he had a home machine with the same symptom -- Otherwise, I would think it is their internal DNS - which, it probably is, even though it doesn't explain his home machine. – rm-vanda Mar 31 '14 at 16:23
  • Do what I mentioned in both locations. It should point out the issue. – TheCleaner Mar 31 '14 at 18:14
2

Of course, there's no data for your domain in the hosts file in the client machines, are there?

Some time ago I got stuck with a DNS cache not honouring TTL - if your client is using some of them, it may be necessary to restart them.

Hope that helps.

1

Instead of redirecting directly from the domain to the IP address, you can redirect through a new subdomain. This will force the client's DNS server to resolve that subdomain. By hosting DNS for that subdomain on a server that you control, you can actually find the IP address of the client's DNS server.

At that point you may be able to send DNS queries to the client's DNS server in order to find out how much the remaining TTL on the cached record.

This approach works with some DNS servers and not with others. You'll only know if it works, once you have tried it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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