AWS 网站和 GoogleApps 邮件的 DNS 条目

AWS 网站和 GoogleApps 邮件的 DNS 条目

我需要一些帮助来整理我的 DNS 条目。我有一个域名,假设它是 somecompany.com。
通过这个域名,我在 AWS Cloudfront 上有一个网站,可以通过 www.somecompany.com 和 somecompany.com 访问。
我还为电子邮件设置了 Google Apps,因此用户有以下地址[电子邮件保护]

我的问题是,虽然我可以设置 Google Apps DNS 条目并将邮件发送到正确的地址。一旦我也设置了网站的条目,邮件就无法通过[电子邮件保护]。我怀疑 MX 记录和 somecompany.com 的 CNAME 之间存在某种冲突,但我不确定如何解决它。

DNS表如下...

somecompany.com     CNAME   xxxxxxxx.cloudfront.net
www.somecompany.com CNAME   somecompany.com
somecompany.com     MX  ASPMX.L.GOOGLE.COM
somecompany.com     MX  ALT1.ASPMX.L.GOOGLE.COM
somecompany.com     MX  ALT2.ASPMX.L.GOOGLE.COM
somecompany.com     MX  ALT3.ASPMX.L.GOOGLE.COM
somecompany.com     MX  ALT4.ASPMX.L.GOOGLE.COM
somecompany.com     NS  ns1.openprovider.nl
somecompany.com     NS  ns2.openprovider.be
somecompany.com     NS  ns3.openprovider.eu
somecompany.com     SOA ns1.openprovider.nl [email protected] xxxxxxxxxx
somecompany.com     TXT google-site-verification=xxxxxxxxxx

答案1

CNAME 作为域的顶级条目(在区域顶点)是无效的。foo.example.com 可以是 CNAME 并且通常可以正常工作,但 example.com(也称为“裸域”)则不能。根据定义,CNAME 会屏蔽所有其他记录,并且与其他记录结合使用时无效。如果您的 DNS 托管提供商允许您以这种方式配置它,那么从技术上讲,他们已经崩溃了。您通常可以只对网站这样做,但正如您所见,电子邮件是您不能这样做的几个地方之一。

由于 CNAME 的限制,Amazon Route 53 实施了记录的概念ALIAS,用于将区域顶点的 A 记录指向 CloudFront、Elastic Load Balancer 和 S3 静态托管端点。这些服务为您的端点提供主机名,而不是 IP 地址,因此您需要在顶点使用这种类型的记录。

这种记录类型实际上根本不是一种记录类型;记录本身仍然是 A 记录,响应可以证明这一点,但 Route 53 通过交叉引用在内部解析它们,以便从底层服务中找到正确的 A 记录,并将其返回给请求者。

我与 AWS 没有任何关系;这不是推销。从技术角度来看,如果您在 CF、ELB 或 S3 上托管网站,那么在 Route 53 上托管 DNS 通常最合理,因为 Alias 记录可以满足您的需要,而使用其他 DNS 提供商并不总是能够做到正确的事情。有些提供商确实有一种称为“ANAME”的东西,其行为类似于 Alias,如果您的提供商提供这种东西,那么它也应该可以工作。

也可以看看Route 53 中的 A 记录和 CNAME 之间的区别有关 CNAME 与别名的更多信息。

相关内容