Domain-Name-System

域名註冊商允許@CNAME 用於根域,這可靠嗎?

  • February 5, 2022

由於知識上的差距,我在 Azure 上設置了一個 Windows VM,然後我去了 Namecheap 並註冊了一個域。在某個地方,我想到了針對 @ 和 FQDN 輸入 CNAME 記錄,並且它有效。

在我的姓名記錄中,針對 Azure VM FQDN 的 CNAME 字面上有 2 個條目 @ 和 www。一切都很順利。

昨天,我正在為其工作的人去切換不在 Namecheap 的計劃域上的名稱伺服器(我使用的是我在 Namecheap 註冊的虛擬域)並且無法做我所做的,我們花了幾個小時調查它。

今天,我使用了一個工具來查找站點,似乎 Namecheap 使用我提供的域來查找 IP 地址並針對該 IP 輸入 A 記錄,但它沒有出現在管理頁面上。所以它是在後台完成的。昨天我重置了 VM,IP 發生了變化,幾分鐘後域就恢復了。

這有多正常?這有多穩定?我在 Azure 上沒有專用 IP。

我現在明白非 www 域上的 @ 是不正常的(即通常不能將 @ 放在 CNAME 記錄中)。但是是否有信譽良好的域名託管服務商免費提供這項服務?它是我可以搜尋的嗎?(第二個問題是 Namecheap 目前不願意轉移這個域,因為顯然 .com.au 域很難轉移)。

如果這種情況很少見,我唯一的選擇是向 Azure 支付靜態 IP 並使用 A 記錄嗎?

任何標準都不真正支持根目錄下的 CNAME,但一些提供商會這樣做,因為它非常方便。正如您所注意到的,問題在於,由於它不是一個標準化的解決方案,因此實現會有所不同,例如查詢 CNAME 中的名稱、解析它並將 IP 作為 A 記錄插入。

我不推薦這種做法,因為根記錄需要是 A 或 AAAA 記錄是有實際原因的。

處理此問題的正確方法是從 Azure 購買並支付靜態 IP,或者,如果您託管大量此類站點,則為負載均衡器/反向代理獲取單個靜態 IP,然後讓它將請求轉發到您的動態 Web 應用程序。

或者,您可以使用 Cloudflare,因為他們實際上已經設法在根實現中創建了符合 RFC 的 CNAME。https://blog.cloudflare.com/introducing-cname-flattening-rfc-compliant-cnames-at-a-domains-root/

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