CNAME Record

A Canonical Name record (abbreviated as CNAME record) is a type of resource record in the Domain Name System (DNS) used to specify that a domain name is an alias for another domain (the 'canonical' domain).

This can prove convenient when running multiple services (like an FTP server and a webserver; each running on different ports) from a single IP address. One can, for example, point and to the DNS entry for, which in turn has an A record which points to the IP address. Then, if the IP address ever changes, one only has to record the change in one place within the network: in the DNS A record for

CNAME records must always point to another domain name, never directly to an IP address.


DNS CNAME records are specified in RFC 1034 and clarified in Section 10 of RFC 2181.

CNAME records are handled specially in the domain name system, and have several restrictions on their use. When a DNS resolver encounters a CNAME record while looking for a regular resource record, it will restart the query using the canonical name instead of the original name. (If the resolver is specifically told to look for CNAME records, the canonical name (right-hand side) is returned, rather than restarting the query.) The canonical name that a CNAME record points to can be anywhere in the DNS, whether local or on a remote server in a different DNS zone.

For example, if there is a DNS zone as follows:

NAME                    TYPE   VALUE
--------------------------------------------------        CNAME        A

when an A record lookup for is carried out, the resolver will see a CNAME record and restart the checking at and will then return

Possible confusion

With a CNAME record, one can point a name such as "" to "" Because of this, during casual discussion the "" (left-hand) side of a DNS entry can be incorrectly identified as "the CNAME" or "a CNAME." However, this is inaccurate. The canonical (true) name of "" is "" Because CNAME stands for Canonical Name, the right-hand side is the actual "CNAME."

This confusion is specifically mentioned in RFC 2181, "Clarifications to the DNS Specification." The left-hand label is an alias for the right-hand side (the RDATA portion), which is (or should be) a canonical name.[1] In other words, a CNAME record like this:        CNAME

may be read as: is an alias for the canonical name (CNAME) A client will request and the answer will be


  • CNAME records must always be pointed to another domain name, never to an IP address.
  • An alias defined in a CNAME record must have no other resource records of other types (MX, A, etc.). (RFC 1034 section 3.6.2, RFC 1912 section 2.4) The exception is when DNSSEC is being used, in which case there can be DNSSEC related records such as RRSIG, NSEC, etc. (RFC 2181 section 10.1)
  • CNAME records that point to other CNAME records should be avoided due to their lack of efficiency, but are not an error.[2] It is possible, then, to create unresolvable loops with CNAME records, as in:  CNAME  CNAME
  • CNAME records that are served by DNAME records may cause recursive loops in older resolvers.[clarification needed]
  • MX and NS records must never point to a CNAME alias (RFC 2181 section 10.3). So, for example, a zone must not contain constructs such as:      MX     0  CNAME A
  • Domains that are used for e-mail may not have a CNAME record.[3] In practice this may work, but can have different behavior with different mail servers, and can have undesired effects.[4]

DNAME record

A DNAME record or Delegation Name record is defined by RFC 6672 (original RFC 2672 is now obsolete). A DNAME record creates an alias for an entire subtree of the domain name tree. In contrast, the CNAME record creates an alias for a single name and not its subdomains. Like the CNAME record, the DNS lookup will continue by retrying the lookup with the new name. The name server synthesizes a CNAME record to actually apply the DNAME record to the requested name--CNAMEs for every node on a subtree have the same effect as a DNAME for the entire subtree.

For example, if there is a DNS zone as follows:        DNAME        A  A
*      A

An A record lookup for will return no data because a DNAME is not a CNAME and there is no A record directly at foo.

However, a lookup for will be DNAME mapped and return the A record for, which is; if the DNAME record had been a CNAME record, this request would have returned name not found.

Lastly, a request for would be DNAME mapped and return

See also


  1. ^ "RFC 2181: Clarifications to the DNS Specification". IETF. July 1997. Retrieved . 
  2. ^ Mockapetris, P. (November 1987). "RFC1034 - Domain Names, Concepts and Facilities". ISI. Retrieved 2011. 
  3. ^ Braden, R. (October 1989). "RFC1123 - MAIL - SMTP & RFC-822". Retrieved 2011. 
  4. ^ Bernstein, D.J. "CNAME records in mail". Retrieved 2011. 

External links

  This article uses material from the Wikipedia page available here. It is released under the Creative Commons Attribution-Share-Alike License 3.0.



Connect with defaultLogic
What We've Done
Led Digital Marketing Efforts of Top 500 e-Retailers.
Worked with Top Brands at Leading Agencies.
Successfully Managed Over $50 million in Digital Ad Spend.
Developed Strategies and Processes that Enabled Brands to Grow During an Economic Downturn.
Taught Advanced Internet Marketing Strategies at the graduate level.

Manage research, learning and skills at defaultLogic. Create an account using LinkedIn or facebook to manage and organize your Digital Marketing and Technology knowledge. defaultLogic works like a shopping cart for information -- helping you to save, discuss and share.

  Contact Us