DNS,我应该使用 A 而不是 CNAME 吗?

DNS,我应该使用 A 而不是 CNAME 吗?

我正在对我们的网站和托管进行大规模改组,将大约 10 个域名移至新服务器。为此,我必须对 DNS 进行一些更改,将所有域名指向新服务器。

如果服务器使用 CNAME 条目将所有 DNS 记录指向 IP 地址的 A 条目,而不是将所有 DNS 记录指向 IP 地址...如果这没有意义,请看一下这个:

mycompany.com
server1 A 12.34.56.78

domain1.com
@   CNAME server1.mycompany.com.
*   CNAME server1.mycompany.com.
www CNAME server1.mycompany.com.

domain2.com
@   CNAME server1.mycompany.com.
*   CNAME server1.mycompany.com.
www CNAME server1.mycompany.com.

domain3.com
@   CNAME server1.mycompany.com.
*   CNAME server1.mycompany.com.
www CNAME server1.mycompany.com.

etc...

希望您能明白我的意思,为了保持整洁,我为服务器 IP 地址设置了一条 A 记录,并使用 CNAME 记录将所有其他域指向该记录。这意味着如果 IP 必须更改,我只需更改一次,这也意味着我可以轻松分辨出每条记录指向的位置,因为有些指向server2.mycompany.com等等server3.mycompany.com

今天早上我们的电子邮件出现了问题,收件人的电子邮件服务器无法验证我们的邮件服务器,电子邮件被拒绝。我将@我们mail.domain1.com域名上的记录从更改CNAME server1.mycompany.com为 IP 12.34.56.78,电子邮件已成功发送。

问题,尽管它很好而且可读性强,但我为什么不应该使用 CNAME 指向另一个 DNS 记录呢?我相信这@是针对域名本身(即domain1.com)。设置为 CNAME 似乎@会弄乱我们的电子邮件,但是对于何时应该使用它,有什么规则吗?

非常感谢,本

答案1

使用 CNAME 作为 MX 记录违反了 RFC。摘自 RFC2181 第 10.3 节:

用作 MX 资源记录值一部分的域名不能是别名。 [...] 它也可以有其他 RR,但永远不能有 CNAME RR。

在实践中它通常会起作用,但一些 MTA 知道你不应该这样做,所以假设它们在被输入一个时可以忽略你或行为不端。

答案2

  • CNAME 无法指向另一个 CNAME
  • PTR、SRV、NS、MX 无法指向 CNAME
  • CNAME 必须没有其他记录

除 MX、NS 和 SRV 外,所有其他的都使用 CNAME。

答案3

出于性能原因,通常会避免使用 CNAME:它强制客户端向 DNS 服务器提出第二个问题,从而导致客户端的延迟更高,DNS 服务器的负载更大。

相关内容