We help IT Professionals succeed at work.

Public DNS not updating after MX record change

borgmember asked

We frequently change clients MX records when they are ready to upgrade from ISP provided POP3 to Hosted Exchange. Usually the MX record change shows within a few minutes on MX tools website, and then within a few hours goes to all of the DNS servers, and its a done deal.

We moved a client last Friday from their ISP's mail (ISP also controls DNS for their web domain) to our system. The ISP made the correct MX changes on their site. MX tools website shows both of the new MX records and none of the old ones. Our work server, and a few other peoples email go to the new system. But everything else is still going to the ISPS email system. I figured enough time had not passed, so I have waited until today (4 Days) and still no change. How can I tell for 100% when this old record will expire and people will get the new IP? Is there a way to make this happen sooner?

Watch Question

You cannot make it happen sooner.  It depends on each DNS that the clients are using.

If you had control over all the DNS's that any client might happen then you could flush or restart them as necessary.

Each DNS entry has a time-to-live value which controls when it expires, relative to the last time it was updated by the particular cache.

You can tell the remaining time to live only if you can query the nameservers that are not delivering and you have access to a linux or mac os X system.

In that case use the command "dig -t MX yourdomain"

It will return a ANSWER section, with the second column being the remaining time.

bushlife.com.au.        46      IN      MX   

Open in new window

You can query the original server to determine what the original value would have been in the same way.

This is achieved by adding the @servername after the dig command.

e.g. dig @oldnameserver -t MX domaininquestion


I am using nslookup on Windows with the set debug flag

I told it to use googles DNS and this is what they show

Here is the starting output:

->  (root)
    ttl = 1790 (29 mins 50 secs)
    primary name server = a.root
    responsible mail addr = nstl
    serial  = 2011120700
    refresh = 1800 (30 mins)
    retry   = 900 (15 mins)
    expire  = 604800 (7 days)
    default TTL = 86400 (1 day)

If I am reading this right, the expire time is 7 days from now?
According to google it has about 30 minutes to go (see caveat below).

There is nothing there indicating that you are referring to the MX record though, I don't know what your query was.  These values may relate to the domain rather than the MX record.


here is the exact commands I ran, the second should tell it to only look at the MX.

set debug
set type=mx

Then it generated a long list, but at the top of the list is what I posted earlier. This morning when I run it again the TTL is 30 minutes.

I am just worried something isnt right somewhere and this will never update correctly. I have never had the higher up root servers not get updated within a few days before.
This was an issue on the DNS providers server. They were able to resolve it.


See above