Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We are trying to move all our websites we host to CNAMES as we are planning on moving servers in the new year and would like the ability to move some clients to one server and other clients somewhere else. We were planning on giving clients a unique CNAME which we can then change at a later date. (We have other reasons for doing this now but that is the main one)

We have been testing out this theory with a few of our own domains and it seemed to be fine. However when checking the MX records on a domain I got the CNAME value back rather than the MX record.

Sadly all of these domains are done via control panels, but I am guessing they are just writing zone files for me.

I want to create 2 CNAMEs for the company.com

company.com. IN CNAME client.dns.ourserver.com
www          IN CNAME client.dns.ourserver.com

The MX record is something like the following:

company.com  IN MX 10 mail.company.com

We have an A record for mail.company.com

Doing:

host -t mx company.com

Returns the CNAME value rather than the mx record.

Is this expected behaviour?

I have managed to get the above configuration working with the 123-reg.co.uk control panel, but not sure if that is more luck than anything.

share|improve this question
    
This is a common question and has been asked many times before. See this link for an example: serverfault.com/questions/18000/… – Russell Heilling Dec 7 '09 at 16:11
    
I did spend a little while looking for an answer but couldn't figure out if I was doing something different. Especially as it is working fine with one domain provider. I have my answer so that is cool and hopefully it will be of some use to someone. – johnwards Dec 7 '09 at 18:02
up vote 34 down vote accepted

This is a common error. You cannot use a CNAME RR for your root domain (e.g. company.com) and define additional resource records for the same zone.

See Why can't I create a CNAME record for the root record? and RFC1034 section 3.6.2 for details:

If a CNAME RR is present at a node, no other data should be present; this ensures that the data for a canonical name and its aliases cannot be different.

share|improve this answer
    
RFC2181 Section 10.1 is also relevant in that in reinforces the above. – Håkan Lindqvist Mar 6 '15 at 22:56

RFC2181 section 10.3 says you can't point your MX record to a CNAME:

The domain name used as the value ... of a MX resource record must not be an alias.

share|improve this answer
    
That isn't really the scenario that the question is about, though? – Håkan Lindqvist Mar 6 '15 at 22:57

I have found that SOME MX providers in tandem with SOME DNS providers will actually work alongside a bare CNAME, if you merely order the MX record ABOVE the CNAME in the top down record order.

It is working on Name.com registrar with Office 365 MX record and bare CNAME record directing HTTP to yet another domain. While testing MX queries I noticed my CNAME result came back first corresponding to my DNS entries order, so I figured why not try ordering MX first and see if that satisfied the MX provider. To my surprise Office 365 MX verification then passed and I can confirm inbound and outbound email is indeed flowing. And after testing several web clients, HTTP also indeed resolves desirably to specified CNAME destination host.

Caveat emptor - This is clearly going against the standard and therefore probably shouldn't be considered for anything critical. I'm assuming record order is not in the spec and therefore can't be officially relied upon... i.e. subject to change right after you forget about this hack.

Tip - MX Toolbox free page is very handy for checking the result of trying different DNS settings.

Shameless plug for my corresponding post.

share|improve this answer
2  
Being undocumented behavior, this is definitely not something I'd want to count on. – ceejayoz Jun 25 at 19:13

You can use a CNAME on the root of the domain, however, those MX records must also be configured on the host record, so if you have mx1.mail.com configured on the zone for yourdomain.com, and the root of yourdomain.com is CNAME to thisrecord.cname.com, you must also make sure that mx1.mail.com is configured on that CNAME host; if not, all mail will be lost!

share|improve this answer
3  
The problem is, as per RFC1034, "if a CNAME RR is present at a node, no other data should be present" -- since the root needs to have NS records (to be useful, anyways), there will always be other data, which violates this section of the RFC. – Doktor J Sep 30 '13 at 23:05
    
In my opinion the answer is correct, except that the MX record should be instead on the CNAME host (not also). – Alexander Taubenkorb Aug 13 '15 at 5:26

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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