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

Ben*_*ard 2 domain-name-system hosting reverse-dns mx-record

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

如果服务器我使用 CNAME 条目将它们指向 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...
Run Code Online (Sandbox Code Playgroud)

希望你能明白我在做什么,为了保持整洁,我为服务器 IP 地址设置了一个 A 记录,并使用 CNAME 记录将所有其他域指向它。这意味着,如果该IP必须改变我只有一次改变它,这也意味着我可以很容易地分辨其中每个记录指向,因为一些点server2.mycompany.comserver3.mycompany.com等。

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

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

非常感谢,本

Mad*_*ter 11

将 CNAME 用作 MX 记录是违反 RFC 的。来自 RFC2181 第 10.3 节:

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

在实践中它通常会奏效,但一些 MTA 知道你不应该这样做,所以假设他们可以忽略你或在他们被喂食时行为不端。


alv*_*osu 7

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

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