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

chi*_*uce 12 domain-name-system

单个 DNS 响应是否可以同时包含 A 记录和 cname 记录?如果是这样,它会被认为是不寻常的还是典型的行为?

Håk*_*ist 33

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

然而,返回CNAMEA(或任何其他记录)同名将违反标准。

有效示例:

foo.example.com.        3600   IN      CNAME   bar.example.com.
bar.example.com.        3600   IN      A       192.0.2.1
Run Code Online (Sandbox Code Playgroud)

无效示例(不气馁,无效):

foo.example.com.        3600   IN      CNAME   bar.example.com.
foo.example.com.        3600   IN      A       192.0.2.1
Run Code Online (Sandbox Code Playgroud)

  • @vino 实际上,同时提供两者都是无效的,而不是浏览器可以决定的。请参阅更详细地涵盖无效案例含义的其他答案:https://serverfault.com/a/1047779/183318 (2认同)
  • @Vino“但是有一个浏览器/客户端优先级使 CNAME 胜过 A 记录”有任何实际证据吗?最终客户端,浏览器与否,如果它依赖操作系统进行解析,它根本不会看到 CNAME,只是最终答案。只有当它自己做自己的决定时,它才能看到这些细节。 (2认同)

tat*_*ter 5

这是非典型的,实际上与 RFC 相悖。当 aCNAME存在时,对于相同的结果不应该有其他类型的记录。

  • (当然,除了 DNSSEC 相关记录,比如 RRSIG) (4认同)