Azure DNS 服务在 CNAME 记录查找中未返回 IP 地址

Azure DNS 服务在 CNAME 记录查找中未返回 IP 地址

我发现 Azure DNS 服务在 CNAME 记录查找中不返回 IP 地址。例如,Google 或 AWS Route 53 DNS 服务器会在同一查询中返回相应 A 记录的 IP 地址。为了测试目的,我创建了指向 www.myzone.com 的 www1 CNAME 记录:

AWS Route 53 测试

$ dig www.myzone.com @ns-560.awsdns-06.net
;; ANSWER SECTION:
www.myzone.com.        7200    IN      A       MY.IP.ADD.RESS

$ dig www1.myzone.com @ns-560.awsdns-06.net
;; ANSWER SECTION:
www1.myzone.com.       3600    IN      CNAME   www.myzone.com.
www.myzone.com.        7200    IN      A       MY.IP.ADD.RESS

Google DNS服务器显示相同的结果:

$ dig www1.myzone.com @8.8.8.8
;; ANSWER SECTION:
www1.myzone.com.       3599    IN      CNAME   www.myzone.com.
www.myzone.com.        7199    IN      A       MY.IP.ADD.RESS

MS Azure 测试

$ dig www.myzone.com @ns1-02.azure-dns.com
;; ANSWER SECTION:
www.myzone.com.        7200    IN      A       MY.IP.ADD.RESS

$ dig www1.myzone.com @ns1-02.azure-dns.com
;; ANSWER SECTION:
www1.myzone.com.       3600    IN      CNAME   www.myzone.com.

请注意,Azure DNS 在第二次查询中未返回任何 IP 地址。

我的问题是:这是预期的行为吗?我可以配置 Azure DNS 以像 AWS 或 Google 一样在 CNAME 请求上返回相应的 A 记录吗?

我在 MS 论坛上发现了几个类似但尚未解答的主题(12)。

答案1

是的,在您的特定场景中,名称服务器应该同时返回 CNAME 和 A。RFC1034 说“这两种 RR 都会在对 A 类查询的响应中返回”。

答案2

您观察到的是 Azure DNS 当前的设计行为。Azure DNS 目前不会在 CNAME(和类似记录类型)RDATA 中“追踪”域名。相反,它依赖于递归 DNS 服务进行重新查询 - 它会这样做,因此该场景可以端到端运行。重新查询会导致轻微的额外延迟,但实际上由于 DNS 缓存,这可以忽略不计。

这种设计是为了防止跨域名追踪。例如,如果您在 Azure DNS 名称服务器上有 foo.com,则它可能与属于其他人的同一名称服务器上的 bar.com 共享。我们不会从 foo.com 追踪到 bar.com,因为您可能更喜欢在其他服务器上使用不同的 bar.com。

我们正在跟踪积压项目,以便将来在域名内进行追踪。

Azure DNS 项目经理 Jonathan Tuliani

相关内容