Domain-Name-System

Azure DNS 服務在 CNAME 記錄查找時不返回 IP 地址

  • February 13, 2017

我發現 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

微軟 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 以在 CNAME 請求上返回相應的 A 記錄,如 AWS 或 Google 嗎?

我在 MS 論壇 ( 1 , 2 ) 上發現了幾個類似但未回答的主題。

是的,名稱伺服器應該在您的特定場景中返回 CNAME 和 A。RFC1034 說“這兩個 RR 都將在對 A 類查詢的響應中返回”。

你觀察到的是 Azure DNS 目前的設計行為。Azure DNS 目前不在 CNAME(和類似記錄類型)RDATA 中“追逐”域名。相反,它依賴於遞歸 DNS 服務來重新查詢——它確實如此,因此該方案端到端工作。重新查詢會導致輕微的額外延遲,但實際上由於 DNS 記憶體,這可以忽略不計。

這種設計的原因是為了防止跨域名追逐。例如,如果您在 Azure DNS 名稱伺服器上有 foo.com,它可能會與屬於其他人的同一名稱伺服器上的 bar.com 共享。我們不會從 foo.com 追逐到 bar.com,因為您可能更喜歡在不同的伺服器上使用不同的 bar.com。

我們正在跟踪一個積壓項目,以便將來在域名內進行追逐。

Jonathan Tuliani,Azure DNS 項目經理

引用自:https://serverfault.com/questions/821772