Domain-Name-System
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
微軟 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 嗎?
是的,名稱伺服器應該在您的特定場景中返回 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 項目經理