Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

CNAME record

From Wikipedia, the free encyclopedia
Type of resource record in the Domain Name System (DNS)
For RTCP CNAME records, seeRTP Control Protocol.

ACanonical Name (CNAME)record is a type ofresource record in theDomain Name System (DNS) that maps one domain name (an alias) to another (thecanonical name).[1]

This can prove convenient when running multiple services (like anFTP serverand aweb server, each running on different ports) from a singleIP address. One can, for example, use CNAME records to pointftp.example.com andwww.example.com to the DNS entry forexample.com, which in turn has anA 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 forexample.com.

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

Details

[edit]

DNS CNAME records are specified inRFC 1034 and clarified in Section 10 ofRFC 2181.

CNAME records are handled specially in the domain name system and have several restrictions on their use. When aDNS 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. However, 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 differentDNS zone.

For example, consider a DNS zone as follows:

NAMETYPEVALUE--------------------------------------------------bar.example.com.CNAMEfoo.example.com.foo.example.com.A192.0.2.23

When anA record lookup forbar.example.com is carried out, the resolver will see a CNAME record and restart the lookup forfoo.example.com and will then return 192.0.2.23.

Possible confusion

[edit]

With a CNAME record, one can point a name such as "bar.example.com" to "foo.example.com". Because of this, during casual discussion, the "bar.example.com." (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 "bar.example.com" is "foo.example.com". Because CNAME stands for Canonical Name, the right-hand side is theactual "CNAME"; on the same side as the address "A".

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), whichis (or should be) a canonical name.[2] In other words, consider the following CNAME record:

bar.example.com.CNAMEfoo.example.com.

This may be read as saying that "bar.example.com" is an alias for the canonical name (CNAME) "foo.example.com". A client will request "bar.example.com" and the answer will be "foo.example.com".

Restrictions

[edit]
  • CNAME records must always be pointed to another domain name, never to an IP address.
  • If a CNAME record 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. (RFC 1034 section 3.6.2, RFC 1912 section 2.4) The exception is whenDNSSEC 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.[3] It is possible, then, to create unresolvable loops with CNAME records, as in:
    foo.example.com.CNAMEbar.example.com.bar.example.com.CNAMEfoo.example.com.
  • A CNAME record cannot be present at the zone apex. RFC 1034 section 4.2.1[4] demands aSOA record at the zone apex and RFC 1034 section 3.6.2[5] demands that are no other records be present if a CNAME record is present. Therefore a CNAME record cannot appear at the zone apex.
  • CNAME records that are served by DNAME records may cause recursive loops in older resolvers.[clarification needed]
  • MX andNS records must never point to a CNAME alias (RFC 2181 section 10.3). So, for example, a zone mustnot contain constructs such as:
    example.com.MX0foo.example.com.foo.example.com.CNAMEhost.example.com.host.example.com.A192.0.2.1
  • Domains that are used in theSMTP MAIL and RCPT commands may not have a CNAME record.[6] In practice this may work, but can have different behavior with different mail servers, and can have undesired effects.[7]

DNAME record

[edit]

ADNAME record orDelegation Name record is defined byRFC 6672 (original RFC 2672 is now obsolete). The DNAME record provides redirection (alias) for a subtree of the domain name tree in the DNS. That is, all names that end with a particular suffix are redirected to another part of the DNS. 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:

foo.example.com.DNAMEbar.example.com.bar.example.com.A192.0.2.23xyzzy.bar.example.com.A192.0.2.24*.bar.example.com.A192.0.2.25

AnA record lookup forfoo.example.com will return no data because a DNAME is not a CNAME and there is no A record directly atfoo.

However, a lookup forxyzzy.foo.example.com will be DNAME mapped and return theA record forxyzzy.bar.example.com, which is 192.0.2.24; if the DNAME record had been a CNAME record, this request would have returned name not found.

Lastly, a request forfoobar.foo.example.com would be DNAME mapped and return 192.0.2.25.

ANAME record

[edit]

Several managed DNS platforms implement a non-standard ALIAS[8] or ANAME[9] record type. These pseudo records are managed by DNS administrators like CNAME records, but are published and resolved by (some) DNS clients like A records. ANAME records are typically configured to point to another domain, but when queried by a client, answer with an IP address. While ANAME record types were submitted for standardization,[10] there are other non-conforming implementations, so they can do whatever the owner of the DNS platform chooses, including existing at the apex of a zone and existing for domains that receive mail.

The main advantage of ANAME records over CNAME records is that they can be used on azone apex, while a standards-following resolver will not treat domain names with CNAME records as a zone apex.[11]Also, while a DNS client requires at least two queries to resolve a CNAME to an A record to an IP address, an ANAME will shift the second and subsequent query to the server. If the DNS server can resolve the A record and cache the requested IP address more efficiently and with less latency than its DNS clients can, then the DNS client can resolve the query faster.

The ANAME record type was submitted as a draft standard to IETF. However, the latest draft document expired in January 2020[10] and has been superseded by a series of proposals, the most recent of which is the one for the SVCB and HTTPS record types.[12]

See also

[edit]

References

[edit]
  1. ^Mockapetris, P. (November 1987)."RFC 1035 - Domain names - implementation and specification". Internet Engineering Task Force. Retrieved16 March 2019.
  2. ^"RFC 2181: Clarifications to the DNS Specification".IETF. July 1997. Retrieved2011-03-09.
  3. ^Mockapetris, P. (November 1987)."RFC 1034 - Domain names - concepts and facilities". Internet Engineering Task Force. Retrieved15 July 2019.
  4. ^Mockapetris, P. (November 1987)."RFC 1034 section 4.2.1". Retrieved15 July 2019.
  5. ^Mockapetris, P. (November 1987)."RFC 1034 section 3.6.2". Retrieved15 July 2019.
  6. ^Braden, R. (October 1989)."RFC1123 - MAIL - SMTP & RFC-822". Retrieved23 July 2020.
  7. ^Bernstein, D. J."CNAME records in mail". Retrieved3 June 2011.
  8. ^"ALIAS Records". Retrieved2019-07-26.
  9. ^"ANAME Records". Retrieved2022-09-24.
  10. ^ab"Address-specific DNS aliases (ANAME)". 2019-07-08. Retrieved2019-07-26.
  11. ^Goldlust, Suzanne; Almond, Cathy."CNAME at the apex of a zone".ISC's Open Source Knowledgebase. Internet Systems Consortium. Retrieved8 April 2023.
  12. ^Schwartz, B.; Bishop, M.; Nygren, E. (2023-03-11)."Service binding and parameter specification via the DNS (DNS SVCB and HTTPS RRs)". Retrieved2023-04-08.

External links

[edit]
  • RFC 2219 – Use of DNS Aliases for Network Services
Retrieved from "https://en.wikipedia.org/w/index.php?title=CNAME_record&oldid=1264347807"
Category:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp