Sign up ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

This question already has an answer here:

I've just read this question which essentially says that when I set up DNS for, the root record can't be a CNAME, it has to be an A record.

My question is, why?

I'm sure the clever people who designed DNS didn't make arbitary restrictions for no reason, but I don't see what we gain by requring root domains to be A records. I would love to just point my domain to someserver.somewebhost.example and forget about it, but I can't.

Please enlighten me, billpg.

share|improve this question

marked as duplicate by Michael Hampton May 1 at 21:05

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

2 Answers 2

up vote 13 down vote accepted

Firstly, the underlying reason is not that you must use an A record, but that you cannot use a CNAME record because those cannot coexist with other normal resource record types.

The reason for that restriction is in §3.6.2 of RFC 1034:

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. This rule also insures that a cached CNAME can be used without checking with an authoritative server for other RR types.

As the root of a (delegated) domain must have an SOA and NS records the rule above kicks in, preventing use of CNAMEs too.

share|improve this answer
The restriction is still annoying, but at least now it makes sense. Thanks. –  billpg Aug 13 '10 at 13:51

Well it's not that the root of a domain can't be a CNAME - It's that a CNAME cannot coexist with other record types for the same domain.

Simply put, it would make no sense for a domain with a CNAME to have any other record type, because the CNAME would ensure that they would never be seen or read.

Let's say we did try to give both a CNAME (pointing to and an A record (pointing to some other IP address).

  1. First, the client would request an A record from from's nameservers.

  2.'s nameservers would inform us that we need to follow a CNAME record in order to proceed. So we do. The CNAME points to

  3. The client would request an A record from's nameservers.

Notice how we never got the chance to read an A record, or any other record type, from The CNAME takes precedence.

share|improve this answer

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