参见英文答案 >
Why can’t a CNAME record be used at the apex (aka root) of a domain?2个
我刚读了 this question,基本上说当我为example.com设置DNS时,根记录不能是CNAME,它必须是A记录.
我刚读了 this question,基本上说当我为example.com设置DNS时,根记录不能是CNAME,它必须是A记录.
我的问题是,为什么?
我确信设计DNS的聪明人没有无理由地制定任何限制,但是我没有看到我们通过将根域称为A记录而获得的收益.我很乐意将我的example.com域名指向someserver.somewebhost.example并忘记它,但我不能.
请告诉我,billpg.
解决方法
首先,根本原因不是你必须使用A记录,而是你不能使用CNAME记录,因为它们不能与其他普通资源记录类型共存.
限制的原因在RFC 1034的§3.6.2中:
If a CNAME RR is present at a node,no
other data should be present; this
ensures that the data for a canonical
name and its aliases cannot be
different. This rule also insures
that a cached CNAME can be used
without checking with an authoritative
server for other RR types.
由于(委托)域的根必须具有SOA和NS记录,因此上面的规则会启动,从而阻止使用CNAME.