使用 CNAME 转发裸域的流量

使用 CNAME 转发裸域的流量

我有一个域名,flyh2.com。

我使用 CNAME 将 www.flyh2.com 转发到托管我网站的 flyh2.elasticbeanstalk.com。这是 Amazon 允许自定义域名的唯一方式。不允许使用 A 记录。

我希望人们只需输入http://flyh2.com(没有 www)并且仍然有访问者看到我的网站。

最初我使用 CNAME 将裸记录和 www 记录转发到我的网站,但它似乎导致了问题。

收到的邮件被退回给发件人:

Fwd: Returned mail: see transcript for details
<[email protected]>... Deferred: Connection timed out with flyh2.elasticbeanstalk.com.
Message could not be delivered for 6 hours
Message will be deleted from queue

似乎裸域上的 CNAME 正在覆盖 MX 记录。

现在我已将 flyh2.com 记录上的 CNAME 更改为指向 www.flyh2.com,并将 www.flyh2.com 更改为 CNAME 指向 flyh2.elasticbeanstalk.com。

我的 MX 记录设置正确,但裸域上的 CNAME 似乎覆盖了它们。我必须使用 A 记录吗?

答案1

不能拥有该域名的 CNAME。

CNAME 只能作为单个记录存在,不能与任何其他资源记录组合。由于域始终具有 SOA 和 NS 记录,因此您不能为域使用 CNAME。这在RFC 1034,第 3.6.2 节。

电子邮件中断的原因在于RFC 5321,第 5.1 节:

查询该域名时,必须返回至少一个地址记录(例如 A 或 AAAA RR),该记录提供应将邮件定向到的 SMTP 服务器的 IP 地址。任何其他响应(特别是包括在查询时将返回 CNAME 记录的值)不在本标准的范围内。RFC 2181 第 10.3 节更详细地讨论了禁止在数据中使用解析为 CNAME 的标签。

换句话说 - 只要您的提供商不允许 A 记录,您想要的事情就无法实现。

答案2

听起来您不知道 FQDN 的正确定义。听起来您也不知道 CNAME 的用途。

如果您计划将邮件发送到您的域,则需要为您的域添加 MX 记录。请确保正确添加,并且您的服务器已正确配置以处理邮件。

答案3

解决方案隐藏在评论中,没有得到很好的解释。以下是完整的解决方案迈克尔·汉普顿

  1. 设置从 www.flyh2.com 到 flyh2.elasticbeanstalk.com 的 CNAME。使用 www 时,这会将网络请求重定向到 Amazon 网络服务器。
  2. 设置从 flyh2.com 到 174.129.25.170 的 A 记录。该 IP 有一个将裸域重定向到 www. 子域的 Web 服务器。这会将 Web 流量从裸域 flyh2.com 重定向到 www.flyh2.com。www.flyh2.com 将重定向到 flyh2.elasticbeanstalk.com(由于上面的 cname)。
  3. 设置从 flyh2.com 到其邮件服务器的 MX 记录。发送到 flyh2.com 的邮件将忽略 CNAME,因为它仅适用于 www.flyh2.com。邮件将忽略 A 记录,而是使用指向邮件服务器的 MX 记录。Web 流量将转到 elasticbeanstalk 并发送到邮件服务器。

相关内容