域名解析之CNAME 解析过程、限制和替代

发布时间: 访问量:107

什么是 CNAME 记录?

域名系统 (DNS) 中使用规范名称 (CNAME) 记录来创建从一个域名到另一个域名的别名。一个常见的例子是 www 子域,用户访问“ www.example.com ”被转到“example.com”。

CNAME 记录的一些常见用途是:

  • 为特定网络服务(例如电子邮件或 FTP)提供单独的主机名,并将该主机名指向根域
  • 许多托管服务在服务提供商的域(例如 company.hostname.com)上为每个客户提供一个子域,并使用 CNAME 指向客户的域(www.company.com)。
  • 在多个国家注册同一个域并将国家版本指向主“.com”域
  • 从同一组织拥有的多个网站指向一个主网站
  • 用于 SSL 证书申请时的域名验证,例如 _dnsauth.yryz.net CNAME mnwwgx3uijnhsvkyjezf6nlpkn4xotzrkjpto6tfgbbuu22g.dcv.httpsauto.com.

CNAME 记录的 DNS 解析过程

  • DNS 客户端(例如浏览器或网络设备)请求地址 www.example.com ,并创建 DNS 请求。
  • DNS 解析器接收请求并找到权威名称服务器,该服务器保存带有“example.com”域的 DNS 记录的 DNS 区域文件。
  • DNS请求被解析,CNAME记录返回给客户端。
  • 客户端发现 www.example.com 只是真实地址“example.com”的别名(CNAME),并为“example.com”发出新的 DNS 查询
  • 重复该过程,解析器返回“example.com”的 A 记录,其中包含 IP 地址。
  • DNS 客户端现在使用其 IP 地址连接到“example.com”。

CNAME 记录的限制

  • CNAME 不能放置在根域级别,因为根域是 DNS 起始授权 (SOA),它必须指向一个 IP 地址。
  • CNAME 记录必须指向另一个域名,而不能指向 IP 地址。
  • CNAME 记录中定义的主机名不得包含其他类型(MX、A 等)的其他资源记录,但 DNSSEC 记录(如 RRSIG 和 NSEC)除外。
  • CNAME 记录可以指向其他 CNAME 记录,但这不是一个好的做法,因为它效率低下。
  • MX 和 NS 记录绝不能指向 CNAME 别名。
  • 用于电子邮件的域可能没有 CNAME 记录-这可能对不同的邮件服务器产生不期望的结果。

CNAME 和替代记录类型

CNAME 记录通常与其他类型的 DNS 记录一起使用- A 记录和 ALIAS 记录。

A 和 CNAME 的区别

A 记录将主机名映射到一个或多个 IP 地址,而 CNAME 记录将主机名映射到另一个主机名。

ALIAS 和 CNAME 的区别

ALIAS 记录与 CNAME 一样,也将一个主机名映射到另一个主机名。但是,ALIAS 记录可以在同一主机名上拥有其他 DNS 记录,而 CNAME 则不然。这使得在根域(DNS 区域顶点)应用 ALIAS 成为可能,这对于 CNAME 是不允许的。

此外,ALIAS 的性能 比 CNAME 更好,因为它不需要 DNS 客户端解析另一个主机名,它直接返回一个 IP。然而,ALIAS 记录也需要在幕后进行递归查找,这会影响性能。

更多文章