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.

Ryan
  • 997
  • 7
  • 11
  • 5
    -1 for using the term "propagation" in relation to DNS. – John Gardeniers Apr 05 '12 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](https://en.wikipedia.org/wiki/Domain_Name_System), [What's My DNS](https://www.whatsmydns.net/), [DNS Checker](https://dnschecker.org/), [GoDaddy](https://www.godaddy.com/help/what-factors-affect-dns-propagation-time-1746), etc, etc, etc – Ryan May 19 '16 at 06:10

4 Answers4

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.

Myrddin Emrys
  • 638
  • 1
  • 10
  • 24
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.

Matteo Riva
  • 297
  • 3
  • 14
joeqwerty
  • 108,377
  • 6
  • 80
  • 171
  • 2
    Everybody calls it propagation. – Sandman4 Apr 05 '12 at 20:04
  • 4
    They do, but that's incorrect and only serves to perpetuate a misconception about how DNS works. – joeqwerty Apr 05 '12 at 20:14
  • NEW records DO _propagate_ slowly to hosts that cache old records. – Sandman4 Apr 05 '12 at 20:34
  • @Sandman4, not everyone calls it propagation. Only the uninformed or misinformed do that. To propagate such misinformation is extremely detrimental. – John Gardeniers Apr 05 '12 at 21:57
  • 3
    RFCs 4704, 2916, 1995 are written by uninformed and misinformed. – Sandman4 Apr 06 '12 at 09:05
  • If DNS doesn't "propagate", then what is the correct word to use? – Ryan Apr 06 '12 at 21:48
  • It's called caching, based on the TTL of the DNS record. My DNS client queries my DNS server for your DNS record (A, MX, CNAME, etc) and my DNS server in turn queries your DNS server (after locating the authoritative name servers for your domain). Your DNS server answers my DNS server, which then caches the answer and responds to my DNS client with the answer, which then is cached in my DNS resolver client cache for the period of the TTL. – joeqwerty Apr 06 '12 at 22:03
  • Right. But one definition of propagation is: "The process of spreading to a larger area or greater number; dissemination". So while the records are not spreading they are becoming duplicated. – Ryan Apr 06 '12 at 22:40
  • Ryan: See my edit. – joeqwerty Apr 07 '12 at 00:26
  • 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. – Myrddin Emrys Dec 06 '12 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.

johnshen64
  • 5,747
  • 23
  • 17
  • I didn't realise that some DNS servers don't honor the TTL. Great link. – hookenz Apr 05 '12 at 18:53
  • Thanks for the link. I also found this one http://viewdns.info/propagation/ and a MX Lookup tool http://www.mxtoolbox.com/ – Ryan Apr 05 '12 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.

cjc
  • 24,533
  • 2
  • 49
  • 69