8

How long does it take a change in MX records to propagate? Is the MX record TTL the max time it will take or do we also need to wait for all DNS records to propagate?

We are changing our mail server from Exchange 2003 to Exchange Online. Our current MX records (at Network Solutions) have a 1 & 2 hour TTL (primary and backup MX respectively). When we change the MX records to point to Exchange Online should all MX records worldwide be updated within 2-4 hours or should we assume the traditional 48 hours for DNS to propagate?

I assume that once all MX records propagate that all new incoming email will be directed to the new server.

2
  • 5
    -1 for using the term "propagation" in relation to DNS. Apr 5, 2012 at 21:59
  • Boo to John for the -1. Just because the term "propagation" isn't technically correct, it's meaning is widely accepted: Wikipedia, What's My DNS, DNS Checker, GoDaddy, etc, etc, etc
    – Ryan
    May 19, 2016 at 6:10

4 Answers 4

9

You are correct that your TTL should cause all sites to upgrade within 2 hours. However, having worked at an ISP for years I can attest that many large and important sites ignore TTL, and cache for 24-48 hours regardless. So most sites will change within your TTL... but an annoying few will take days. I once saw a DNS that took 7 days before it read a new record (I queried it daily until it finally updated).

Some few sites ignore TTL. There is nothing you can do about it except hope that none of the ones important to you/your client are among them.

8

It takes exactly 0 seconds for the MX records to propagate... because DNS records don't propagate.

What you need to think about is how long the TTL for the MX record and corresponding A record are. That will determine how long a DNS client which has already resolved the MX and A record will hold that information in its DNS cache (which would be on the DNS client and its corresponding DNS server).

All DNS clients that haven't already resolved the MX and A record will query your name servers and get the new MX and A record immediately, so no TTL cache delay will occur.

EDIT:

My intention was not to start a semantical debate about the definition of the word propagation and its relation to DNS and without belaboring this point too much longer I'd simply state that only a DNS client that requests info from your DNS zone will get that information. The DNS client lives in a bubble. It knows nothing about your DNS until and unless it asks for it. Even if you consider that a DNS client's DNS server can make the information available to its other DNS clients, it doesn't do so until asked to do so. The DNS info doesn't get propagated or disseminated to any DNS client that doesn't ask for it. Once the TTL expires the information is flushed from the DNS cache, never to be seen or used again unless that client makes a new request. It does nothing else with the information other than hold it in its own cache. Other DNS clients of the same DNS server that query for the same information will get it from the DNS server by asking for it, not by the DNS server propagating or disseminating it.

We can debate whether or not the word propagation, as it's used in relation to DNS, is a loosely defined term with the understanding that we all really mean caching when we say propagation, but at the end of the day it's an incorrect usage of the word, implying a mechanism that isn't employed, and as evidenced by your question, is misunderstood and therefore "propagates" a misunderstanding of how DNS works.

Regardless of what you or I think the word propagation means, its use in the context of your question is incorrect.

10
  • 2
    Everybody calls it propagation.
    – Sandman4
    Apr 5, 2012 at 20:04
  • 4
    They do, but that's incorrect and only serves to perpetuate a misconception about how DNS works.
    – joeqwerty
    Apr 5, 2012 at 20:14
  • NEW records DO propagate slowly to hosts that cache old records.
    – Sandman4
    Apr 5, 2012 at 20:34
  • 3
    RFCs 4704, 2916, 1995 are written by uninformed and misinformed.
    – Sandman4
    Apr 6, 2012 at 9:05
  • 2
    You are assuming that propagation implies 'push' notification. That is false. The word has nothing do to with whether records spread via push or pull (they do via 'pull' when their cache expiration time passes and the remote server requests updated information). Some users may misunderstand what the word propagate means; that does not make it the wrong word. Dec 6, 2012 at 22:37
4

Yes, it should be your TTL setting, IF all the dns servers are standard and honor that, which is not always the case.

You can use a tool like http://www.digwebinterface.com/ to verify the propagation, however.

2
  • I didn't realise that some DNS servers don't honor the TTL. Great link.
    – hookenz
    Apr 5, 2012 at 18:53
  • Thanks for the link. I also found this one viewdns.info/propagation and a MX Lookup tool mxtoolbox.com
    – Ryan
    Apr 5, 2012 at 19:09
1

Yes, the propagation should be the TTL you have listed. For example, look at this Google documentation on switching to Postini:

http://www.google.com/support/enterprise/static/postini/docs/admin/en/activate/mx_faq.html#967012

If you are switching mail servers, you may consider changing the current TTL to something smaller (e.g., 300 seconds) a few hours prior to the cutoff and revert it afterwards. You will put a somewhat higher load on the authoritative DNS servers in that case.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .