无法为域根设置 CNAME 记录

无法为域根设置 CNAME 记录

我最近从 namecheap 购买了一个新域名,并决定将其委托给 Yandex.Connect 服务,因此我将 namecheap 的 DNS 更改为自定义,在控制面板中添加了 Yandex 的名称服务器(dns1.yandex.netdns2.yandex.net),添加了证明,几个小时内我的域名就由 Yandex 管理了。

由于我在自己的场所托管个人网站,并且我的 ISP 不出售任何静态 IP,因此我决定使用 DDNS。但是当我尝试添加指向该地址的 CNAME 时,@my-domain.example-ddns.org发现它什么也没有。记录没有被创建。我尝试为子域添加另一个记录,它运行正常。

看完之后Yandex 指南我读过这个:

CNAME。请记住,不能为域根设置 CNAME 记录,因为这是 RFC 所禁止的。

想象一下,当我读到这样的事情时我有多震惊,当时我在 namecheap 注册了另一个域名,但使用的是 namecheap 的基本 DNS,我为 @ 设置了一个指向的 CNAME 记录,my-other-domain.example-ddns.org它运行得很好!

我该如何解决这个问题?使用 A 记录是行不通的,因为我无法获得静态 IP。

答案1

解决这个问题没有简单的办法。RFC 1912

2.4 CNAME records
    A CNAME record is not allowed to coexist with any other data.

然而,任何区域的顶点必须包含其他数据,例如 SOA 和 NS 记录,这就是 CNAME 不能存在于顶部的原因。

因此,您通常必须使用 A 记录而不是 CNAME;但是,如果域名托管在能够动态生成 A 记录的服务器中,则有例外。例如,EasyDNS 可以使用“ANAME”记录的专有实现来解决这个问题,如下所述这里。但是,符合 RFC 的标准名称服务器不会直接支持此功能。

相关内容