DNS 响应同时包含 A 记录和 cname 记录是否不常见?

DNS 响应同时包含 A 记录和 cname 记录是否不常见?

单个 DNS 响应可以同时包含 A 记录和 cname 记录吗?如果可以,这会被视为异常行为还是典型行为?

答案1

如果A您引用的记录是规范名称(记录的“目标” CNAME)而不是查询名称,那么这是完全正常的。

CNAME然而,归还A(或任何其他记录)将违反标准相同的姓名。

有效示例:

foo.example.com.        3600   IN      CNAME   bar.example.com.
bar.example.com.        3600   IN      A       192.0.2.1

无效的例如(不气馁,无效的):

foo.example.com.        3600   IN      CNAME   bar.example.com.
foo.example.com.        3600   IN      A       192.0.2.1

答案2

这是不典型的,事实上违反了 RFC。当CNAME存在时,同一结果不应有其他类型的记录。

答案3

我可以确认这不是有效的 DNS 响应 - 而如何解决则取决于运气。如果您是执行此操作的 DNS 服务器管理员,请使用 A 或 CNAME(最好是 A)。

注意:您可以返回其他类型或记录的任意组合,或者CNAME,但如果你返回 CNAME,则不能返回任何除了RRSIGDNSSEC 签名之外,还有其他类型的记录,如果您尝试并拒绝认真对待答案,任何有效的 DNS 解析器都会引发几次错误。

相关内容