是否允许 CNAME 到 CNAME 链?

是否允许 CNAME 到 CNAME 链?

DNS 中是否允许有指向另一个 CNAME 记录的 CNAME 记录?

我们需要这样做的原因是,我们有一个主机名,我们希望将其与 Web 服务器计算机的 IP 地址进行匹配。我们还有另一台备用 Web 服务器计算机,可以在第一台计算机死机时激活。在这种情况下,我们需要快速将主机名指向备用 Web 服务器计算机的 IP 地址。

不幸的是,主机名位于 DNS 域中,由于手动操作依赖于其他系统管理员,任何更改都需要很长时间。但我们有另一个 DNS 域,我们可以自己快速执行更改。拥有 CNAME 到 CNAME 链似乎是一个可行的解决方案。但这被允许吗?网络浏览器会理解它吗?

答案1

RFC 1034 - 域名 - 概念和设施

RR 中指向其他名称的域名应始终指向主名称而不是别名。这可避免访问信息时出现额外的间接操作。例如,上述主机的名称 RR 地址应为:

52.0.0.10.IN-ADDR.ARPA  IN      PTR     C.ISI.EDU

而不是指向 USC-ISIC.ARPA。当然,根据稳健性原则,域软件在出现 CNAME 链或循环时不应失败;应遵循 CNAME 链,并将 CNAME 循环作为错误发出信号。

所以是的,这是允许的,正确编写的软件可以很好地处理它。然而,CNAME 链并不被认为是好的做法,并且会给基础设施带来开销。

答案2

当然有可能。

通常来说灰心不过,原因很明显,它占用了更多的 DNS 资源。例如:

foo   IN      CNAME  someserver.somehost.com.
bar   IN      CNAME  foo

查询“bar”将导致 CNAMEfoo被查询,然后someserver.somehost.com.被查询,从而导致一次额外的查询。

对于链中添加的每个元素,都需要另一个查询。

另一个原因不鼓励这样做的原因是,通过创建这样的链条,你以某种方式创造的机会CNAME 循环有所增加;当前的 DNS 服务器应该可以自动检测到这些情况,但仍会给服务器带来很大的负载。

答案3

是的,这是允许的,而且会起作用,但这不是好的做法。多次查找会消耗更多资源,而且存在意外创建循环的风险。

相关内容