无法将“ example.com”设置为CNAME记录吗?


19

我目前正在家里运行服务器,但是我有一个动态IP。因此,我订阅了动态dns服务(dlinkddns.com)。我在自己的网络中进行了所有正确的设置,并且ip更新完美。

问题是我有一个域名(比如说:“ example.com”),我想将不带任何前缀的根域名(“ example.com”)设置为dlinkddns域的CNAME。但是我的域名DNS主机说我不能这样做(“不允许”)。我可以针对“ www.example.com”等执行此操作,但效果很好,但不能用于根域名。有人知道解决方案吗?


您正在使用哪个DNS主机?听起来好像他们的软件A Record出于某种原因想要一个像www.domain.com这样的Domain前缀。
乔纳森·罗斯

我使用的是荷兰语:www.webreus.nl。那么,可能仅仅是他们的软件使我感到困惑吗?:P

我会向他们寻求帮助或查看文档。
乔纳森·罗斯,

Answers:


26

您不能为根域(例如example.com)设置CNAME记录,因为这会破坏RFC 1034第3.6.2节的规定,

如果节点上存在CNAME RR,则不应存在其他数据。这样可以确保规范名称及其别名的数据不能不同。

example.com之所以不能这样做,是因为它example.com也将具有NS记录以使其正常工作,这打破了不应存在任何其他数据的规则。

您可以拥有一个CNAME记录,www.example.com因为它不是根域,因此很容易没有其他数据。

解决此问题的唯一方法是

  • 使用www前缀,或
  • 将您的域名停放在您希望CNAME记录指向的位置,并获取相关的IP地址以为建立A记录example.com

我刚刚读到您正在使用动态DNS。如果您将动态域名托管服务商托管在其域名服务器上,则某些动态DNS提供商可以使用您的域名:这样,他们的动态DNS更新程序就可以更新example.com的IP地址,从而完全避免了任何CNAME问题。从我的头顶上,我只知道提供这项服务的企业。


我还想在从No-ip免费获得的FQDN上设置CNAME,然后自己托管DNS服务器。似乎很难。
Aki

就其价值而言,Hover.com确实允许您在裸域(也称为域的顶点)上使用CNAME。通过他们的界面执行此操作时不会发出警告。我不知道实际的效果,但是到目前为止,它对我来说还是有效的。
Mason G. Zhwiti 2014年

MasonG.Zhwiti仅仅因为您可以,并不意味着您应该...它仍然会破坏RFC,并且如果这样做了,可能会给您带来严重的问题
anthonysomerset 2014年

1
假设别名域的NS和SOA数据与规范域的NS和SOA数据相同,是否可能没有任何NS和SOA记录,而别名域的根上只有一个CNAME?如果可能的话,这似乎仍然可以满足RFC中引用的语句。
加里

4

您不能在CNAME记录中设置裸域名。您仅必须在CNAME记录中为别名域(例如www.example.com,about.example.com等)进行设置,并且必须在A记录中进行主域或ROOT域设置,并且必须提供主机的IP地址。首先从CNAME中删除有关裸域的设置,并将其设置为“ A Records”,然后在C Name中为诸如www,about或类似名称的别名进行设置。

这可能对您帮助:A记录,CNAME,MX记录:设置博客的基础


2

我发现,CNAME通过裸域的@记录就像提到这里不适合某些域名提供商合作。要摆脱这种情况,您可以考虑将您的NAME SERVERS指向支持ALIAS或的DNS提供商ANAME

遵循 这个也有一些DNS主机提供一种方式来获得CNAME使用自定义记录类型在区顶点(根域级别,裸域名)样的功能。

此类记录包括,例如:

  • ALIAS 在DNSimple
  • ANAME 在DNS轻松实现
  • ANAME 在easyDNS
  • CNAME 在CloudFlare
  • ALIAS 在CloudDNS

对于每个提供商,设置都类似:将您的顶点域的ALIASANAME条目指向example.yourdomain.com,就像CNAME记录一样。

ALIAS or ANAME or @ example.whateverdomain.com.
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.