@(BIND)中的CNAME

我可以把这样的东西放在我的.zone文件中吗?

@ IN CNAME srvr-01.foo.bar. 

或者是无效的? 如果它是无效的,我怎样才能将访问者从mydomain.comredirect到服务器srvr-01.foo.bar ? (请注意,我没有给服务器的IP,只是域,这让我觉得它可以随机更改)

编辑:对不起,我的坏。 我用CNAME取代了NS ,这正是我想要写的。

RFC1912是非法的:

RFC1912 2.4:“CNAMElogging不允许与任何其他数据共存”。

然而,RFC1034只声明“不应该”被使用。 我认为这在技术上不是非法的(RFC2119)。 你可以使用它,如果你的DNS软件支持它,你知道你在做什么。 然而,互联网上依赖“CNAME异或其他数据”(例如MS Exchange)的实现。

简答:不。

首先,了解@含义很重要。

@是对当前原点值的引用。 默认情况下,原点是区域的名称,但可以使用$ORIGIN指令(例如$ORIGIN foo.example.com. )在区域文件中的任意点重新定义。

这意味着,关于@ IN CNAME ... ,不能进行一般性陈述@ IN CNAME ...因为其含义完全取决于当前的原始值。

可以说,添加CNAMElogging的合法性取决于是否存在其他相同名称的logging。 CNAMElogging不允许与其他数据共存。

作为上述的直接结果,在区域顶点具有CNAMElogging是永远不合法的,因为区域顶点始终具有至lessSOANSlogging。