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

我正在对我们的网站和托pipe进行大洗牌,将大约10个域名转移到新的服务器上。 在这样做时,我必须对DNS进行一些更改,将所有域指向新服务器。

如果服务器使用CNAME条目将它们指向IP地址的A条目,则不需要将所有DNSlogging指向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... 

希望你会看到我想要做的事情,保持整洁我已经设置了一个单一的logging到服务器的IP地址,并使用CNAMElogging指向所有其他域。 这意味着,如果IP必须改变,我只需要改变一次,这也意味着我可以很容易地知道每个logging指向的位置,比如指向server2.mycompany.comserver3.mycompany.com等。

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

问题 ,尽pipe是很好,可读,是有一个原因,我不应该使用CNAME指向另一个DNSlogging。 我相信@是域本身(即domain1.com )。 似乎将@设置为CNAME与我们的电子邮件混在一起,但是我有什么规则可以使用它吗?

非常感谢,本

使用CNAME作为MXlogging是RFC违规行为。 从RFC2181第10.3节:

用作MX资源logging值一部分的域名不能是别名。 […]它也可以有其他的RR,但从来没有一个CNAME RR。

在实践中,它通常会起作用,但是一些MTA意识到你不应该这样做,所以假设他们可以不理睬你,或者当他们喂养一个时,就会不称职。

  • CNAME不能指向其他CNAME
  • PTR,SRV,NS,MX不能指向CNAME
  • CNAME必须没有其他logging

除MX,NS和SRV之外,全部使用CNAME。

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