How to force the MX record to update

dnsdomain-nameemail

I own a domain name and have been using it for email, hosted through a friend's company, for the past years or so. I'm attempting to switch over to Google's hosting (Google Apps for your Domain) and have been at it most of this week, but things haven't switched over yet.

What I've done so far:

  1. Switched the primary DNS server from my friend's to my registrar's (000domains; I own & have primary control over the domain registration)
  2. Added the Google verification code to a TXT record
  3. Removed my friend's mail server from the MX record and added MX records for Google's server

I completed steps 1 & 2 the night of July 3rd, and Google picked up that change sometime overnight. At this point, I completed step 3, so we're now 48 hours post-change. Yet when I look up the MX record via dig (dig @fwns01.000domains.com MX DOMAIN) I still get the MX records for my friend's server. I have verified (many times) in the 000domains control panel that the MX records are set up properly there.

I know that at some point the MX record should be removed from my friend's DNS server, but he's very slow to respond lately so this may take a few more days. I'm still getting email to the old server, so nothing is being lost, but I really want to get this finished. What else can I do, or what steps have I missed, to make this switch complete?

Best Answer

In order for the changes to be propagated, the serial in the zone file needs to be updated. Quoting the documentation:

The <serial-number> directive is a numerical value incremented every time the
zone file is altered to indicate it is time for named to reload the zone.

So as your comment says, you forgot this step -- so the zone file was not loaded by the primary DNS server, and never made it anywhere. So I wonder what "Google picked up" -- but to solve your issue, increment the serial number in your zone file. If I may suggest: For my zone files' serials, I use the pattern YYYYMMDDNNN (i.e. 4-digit year followed by 2-digit month plus 2-digit day, and 3-digits for the "change number of the day" -- unlikely to have more than 999 changes a day), e.g. for the first change today 20120706001. This is a valid serial, and you always can see the time of the latest change easily as well as increment it easily.

Having increased the serial, the DNS server should reload the zone file and propagate changes automatically.

Related Question