如何为域名的根名称创建CNAME


12

我想将域名的根名称设置为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


2
根据3.6.2节中的示例,关于它似乎合法的好点。RFC1034始于1987年,应立即阅读以适应当今的需求。在现代环境中,有些人/很多人认为它是非法的,请参阅serverfault.com/questions/55528/…。最好的办法是恕我直言,要谨慎行事,即不要尝试使用某些DNS服务器可能拒绝的配置来推送DNS。
杰斯珀M,

2
@jesper-RFC 1034示例无关紧要。它显示CNAME作为独立记录。委派的.com域必须具有SOA记录和NS记录。lrnskls.com配置在技术上无效。
Alnitak

您应该修正您的术语,“根名”不是您所描述内容的通用术语(似乎是您区域的顶点名称)。
bortzmeyer

Answers:


14

Amazon 知道根域和Elastic Load Balancer的问题。他们推荐此解决方法:

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

我不喜欢这种解决方案,但是比“将根域强制导入CNAME”解决方案更“干净”。

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


5
+1表示执行此操作的合规方式。要重新定义此解决方案(另请参阅链接的Amazon答案):您使用有效的SOA为根域创建有效的A记录。A记录指向您已约定将HTTP级别301/302发送到www.mydomain.com的第三方服务。
杰斯珀M,

@JesperMortensen您能推荐一些进行此类重定向的承包商吗?我的用户访问mycompany.com并只看到我的域名提供商的广告真是令人讨厌。A record指向一个IP地址,我绝对不会为此目的而购买静态IP。
foresightyj 2014年

10

不,这是不合法的。CNAME不允许与其他记录共存,您至少需要在SOA这里。

该示例没有另外证明,因为它并不暗示那里有任何其他记录。


所以,我的问题的重点是我该怎么做?如何将域名的根名称设置为CNAME而不是A记录?“ dig lrnskls.com”示例的工作原理与我期望的完全一样。或者,我是否缺少挖掘示例?

您可以完全按照完成的方式来说lrnskls.com-只是在这里放一张CNAME唱片,但是没有唱片是违法的SOA;-)
Michael Krelin-hacker

因此,我猜测没有合法的方法来让域名的根名称指向S3作为CNAME?

有一种合法的托管方式,例如s3stuff.example.com合法指向S3。
Michael Krelin-黑客

3
确实,正确的解决方案是不委托example.com并说服.COM注册中心Verisign在.COM区域中添加CNAME ...从技术上讲合理,但Verisign和ICANN当然会找到非技术性的理由拒绝它。
bortzmeyer

2

但是,我的DNS服务器不允许这样做。GoDaddy的DNS管理器也没有。因此,我希望做的事情与lrnskls.com的所有者完全一样。有人知道他是怎么做到的吗?

您可能需要对DNS服务器进行一些搜索。大多数DNS服务器不允许您执行此操作。我想我记得在serverfault上看到另一个问题,有人发布了有人用来在根目录设置cname的DNS服务器,但我找不到它。

另请参阅:- 根名-WHM? - 将根域记录设置为CNAME


它根据这个问题,是的1and1 serverfault.com/questions/55528/...
hdanniel

1

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

我很好奇:RFC禁止在顶点使用no CNAME。造成这种情况的技术原因是什么(假设它不是任意的)。


1
CNAME会覆盖所有其他记录。因此,不可能在顶点具有CNAME的地方构造有效区域,因为它还会覆盖SOA。
迈克尔·汉普顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.