不含 A 记录的 MX 记录

不含 A 记录的 MX 记录

我有一个网站托管在Openshift并且它允许用户使用外部 DNS 提供商添加域名别名。我使用 Cloudflare 作为我的 DNS。但是,由于 Openshift 的 IP 地址已知会发生变化,因此您必须使用CNAME记录而不是A记录。(我知道这很糟糕!)

然而,这会破坏我的服务MX records,我想使用我的域名主机的免费电子邮件重定向服务。

有没有什么办法可以解决这个问题?

答案1

来自 RFC 2181:

10.3. MX 和 NS 记录

用作 NS 资源记录的值或 MX 资源记录值的一部分的域名不得是别名。规范不仅明确了这一点,而且在这两个位置使用别名既不能达到预期的效果,也不能很好地实现可能导致此方法的抱负。 此域名必须具有一个或多个地址记录作为其值。 现在这些将是 A 记录,但将来其他提供地址信息的记录类型也可能被接受。它也可以有其他 RR,但绝不是 CNAME RR

原因是您需要进行额外的查询:

  • 向 IP 请求 MX 记录 -> CNAME
  • 向 IP 请求此 CNAME -> A 记录
  • 向 IP 请求该 A 记录 -> 最后 IP

这会导致很多开销

答案2

我只是使用智能主机。

此外,OpenShift 正在快速发展,如果您遇到问题,请将其发布到社区中,我们将予以解决

答案3

有一个解决方法,就像 heroku 中的人在谈论时隐含地声明的那样避免裸域名。我在 OpenShift 中尝试过,效果是一样的。

1)如果你拥有该域名example.com,请创建一个子域名www.example.com

2)使用CNAME记录作为wwww.example.com别名example-yournamespace-rhcloud.com

3) 永久重定向(301)example.comwww.example.com。例如,使用.htaccess

redirect 301 / http://www.example.com

4)您没有触碰CNAME任何A记录,因此您可以自由配置您的MX记录。

答案4

你可以有一条MX没有A记录的记录,如下所示:

你的域名。IN MX 50 mail.otherserver.com。

相关内容