CNAME记录真实名称记录(英語:Canonical Name Record),即CNAME记录,是域名系统(DNS)的一种记录。CNAME记录用于将一个域名(同名)映射到另一个域名(真实名称),域名解析服务器遇到CNAME记录会以映射到的目标重新开始查询。[1] 这对于需要在同一个IP地址上运行多个服务的情况来说非常方便。若要同时运行文件传输服务和Web服务,则可以把ftp.example.com和www.example.com都指向DNS记录example.com,而后者则有一个指向IP地址的A记录。如此一来,若服务器IP地址改变,则只需修改example.com的A记录即可。 CNAME记录必须指向另一个域名,而不能是IP地址。 细节《RFC 1034》详细定义了CNAME记录的标准,并在《RFC 2181》的第十节中做了进一步规范。 CNAME记录在域名系统中的使用有诸多限制。当一个DNS解析服务器在查询各类记录时遇到一则CNAME记录时,它会立即重启查询,查询所映射到域名的对应记录。(除非是要查询CNAME记录本身,在那种情况下会返回所映射到的域名。)CNAME记录所映射的域名可以是域名服务中的任何域名。在同一服务器上,在远程服务器上,甚至在属于不同DNS zone(解析空间)的服务器上,都可以。 假设有下述DNS zone: NAME TYPE VALUE -------------------------------------------------- bar.example.com. CNAME foo.example.com. foo.example.com. A 192.0.2.23 当要查询bar.example.com的A记录时,域名解析器会查到对应的CNAME记录,即foo.example.com,随即开始查询该域名的A记录,查到192.0.2.23则返回结果。 误会可以使用CNAME记录将「bar.example.com」指向「foo.example.com」。因此,可能会有人随意的将bar.example.com称作是foo.example.com的「CNAME」。然而事实并非如此,bar.example.com的「CNAME」是foo.example.com,因为CNAME的意思是真实名称,而右侧才是真实名称,才是CNAME。 这则误会在《RFC 2181》「DNS规范的解释」一章中有提到。应当说左侧标签是右侧真实名称的一个同名。即下述CNAME记录: bar.example.com. CNAME foo.example.com. 应当读作: bar.example.com的真实名称是foo.example.com。请求访问bar.example.com的客户端会得到foo.example.com返回的结果。 限制
foo.example.com. CNAME bar.example.com. bar.example.com. CNAME foo.example.com.
example.com. MX 0 foo.example.com. foo.example.com. CNAME host.example.com. host.example.com. A 192.0.2.1
example.com. CNAME foo.example.com. 但這樣做會導致該網域若有用于邮箱服务,則可能造成錯誤,詳見如下方。 而願意遵守 RFC 標準的 DNS 供應商 (例如 Neustar UltraDNS、Cloudflare DNS)則採用了 Apex Alias 或 CNAME flattening 技術,這個技術將使得由 DNS 服務商自行處理 CNAME 解析的過程,並將最終解析的 A 紀錄作為實際解析的結果,從而不與 RFC 標準抵觸,比如: example.com. A 192.0.2.1
DNAME记录DNAME记录,即代理名称记录,由《RFC 6672》定义(原《RFC 2672》已经废弃)。一条DNAME记录会将某个域名的整个解析子树映射到另一域名,而CNAME只映射设定的域名,不映射子域名。如同CNAME一样,在DNS查询过程中,会查找所映射到的新域名的地址。域名解析服务器会为每一个被查询的子域名生成一则CNAME记录。为某个域名设置DNAME记录和为该域名的所有子域名设置CNAME记录的效果是一样的。 例如下述记录: foo.example.com. DNAME bar.example.com. bar.example.com. A 192.0.2.23 xyzzy.bar.example.com. A 192.0.2.24 *.bar.example.com. A 192.0.2.25 查询foo.example.com的A记录不会返回任何结果。不同于CNAME记录,DNAME不会直接影响所设置域名的解析。 如果我们需要查询xyzzy.foo.example.com,则由于DNAME记录的映射会返回xyzzy.bar.example.com的A记录,即192.0.2.24。而如果将DNAME记录换成是CNAME记录的话,这样的请求则会报错提示无法找到。 由此,查询foobar.foo.example.com会由于DNAME记录映射返回192.0.2.25。 ANAME记录部分DNS平台支持尚未被标准化的ALIAS[3]或ANAME记录类型。此类伪记录由DNS服务器维护,类似于CNAME记录,但在(某些)客户端解析时等同于A记录。ANAME记录通常会被设置指向另一域名。但在被客户端请求时候,则会直接返回对应的IP地址。ANAME记录的标准化过程正在进行中[4],但已经有许多不同的实现,所以由于平台的不同,效果也多种多样。有些存在于域名解析区的顶端,有些则为了提供邮件服务而存在。ANAME记录相对CNAME记录的一大优势是速度。服务端解析A记录的速度通常比客户端快,同时可以缓存对应的IP地址以备查询。IETF正在讨论和考虑ANAME记录的标准化。[5] 参见参考资料
外部链接
|
Portal di Ensiklopedia Dunia