如何为域的根名称创建 CNAME

如何为域的根名称创建 CNAME

我想将域的根名设置为 CNAME 而不是通常的 A 记录。

这是我正在尝试做的一个完美的例子:

dig lrnskls.com

注意答案部分:

;; ANSWER SECTION:

lrnskls.com.            300     IN      CNAME   partner.adjix.com.

partner.adjix.com.      300     IN      A       67.121.212.61

我尝试这样做的原因是为了能够通过 CNAME 别名将域的根名称指向 Amazon 的 S3。使用 A 记录不起作用,因为 S3 的 IP 每隔几分钟就会更改一次,以达到负载平衡的目的。

PS - 根据 RFC 1034 第 3.6.2 节,这似乎是合法的(请注意 USC-ISIC.ARPA 示例): http://www.faqs.org/rfcs/rfc1034.html

答案1

亚马逊意识到根域和 Elastic Load Balancer 的问题。他们推荐了以下解决方法:

  • 将根域配置为将 mydomain.com 重定向到 www.mydomain.com (或您选择的任何其他子域)的服务
  • 设置一条 CNAME 记录,将负载均衡器 DNS 名称映射到“www.mydomain.com”。

我不喜欢这个解决方案,但是它比“强制根域为 CNAME”解决方案更“干净”。

更新:亚马逊现在通过 ALIAS 记录(Route53 DNS 功能)为 ELB/S3 解决此问题。

答案2

不,这不合法。CNAME不允许与其他记录共存,并且至少你需要SOA在这里。

这个例子并不能证明相反的情况,因为它并不意味着那里有任何其他记录。

答案3

但是,我的 DNS 服务器不允许这样做;GoDaddy 的 DNS 管理器也不允许。因此,我希望按照 lrnskls.com 所有者的做法去做。有人知道他是怎么做到的吗?

您可能需要搜索 DNS 服务器。大多数 DNS 服务器不允许您这样做。我记得在 serverfault 上看到过另一个问题,有人发布了某人使用哪个 DNS 服务器在根目录设置 cname,但我找不到它。

也可以看看: -根 Cname - WHM? -将根域记录设置为 CNAME

答案4

如果您使用亚马逊的 Route 53 DNS 服务器,那么它将实现您的目标。

我很好奇:RFC 禁止在 apex 中使用 CNAME。这背后的技术原因是什么(假设它不是任意的)。

相关内容