Domain-Name-System

存在 A 記錄時將 CNAME 記錄添加到 DNS?

  • March 5, 2021

我們正在為我們的客戶管理 DNS 區域,他們正在對……進行一些更改。無論如何,沒關係。為我們的客戶進行更改的顧問公司向我們發送了一個請求,要求我們將一堆 CNAME 記錄(以及一個 SPF 更改,我認為這些用於 DKIM)添加到客戶端的 DNS 區域,所有這些 CNAME 記錄別名都是一些外部的域不在我們的 DNS 中。我們稱它為 hostx.externaldomain.com。

但是對於要添加的三個 CNAME 記錄,我們的 DNS 中已經存在一條記錄:

  • host1.example.com A(IP 地址)
  • host2.example.com NS(負載均衡器)
  • host3.example.com NS(負載均衡器)

所以第一個是該 IP 地址後面的實際網頁,另外兩個被委託給我們的負載均衡器,而負載均衡器又為它們提供 A 記錄等。我們的 DNS 拒絕添加這三個 CNAME 記錄,因為現有的 A和 NS 記錄相同的名稱,我猜這是預期的。

但是,現在似乎大家都不清楚如何從這裡著手。如果我只是刪除 host1 A 記錄並添加 CNAME 記錄(指向不在我們的 DNS 中的外部主機名的別名),https: //host1.example.com 網站不會停止回答嗎?

在基本級別上,我了解如果別名也在我們的 DNS 中,CNAME 和 A 將如何工作,而不是:

  • example.com A(IP 地址)
  • www.example.com A(與上面相同的IP地址)

我可以刪除 www A-record 並將其替換為:

這意味著www.example.com將只使用為 example.com 設置的相同 IP 地址(帶有 A 記錄)。

那麼這是否意味著無論誰為 CNAME 別名指向的外部主機名 (hostx.externaldomain.com) 管理 DNS,都應該首先將 A 記錄添加到他的 DNS (hostx.externaldomain.com A (IP 地址)),其中 IP 地址與我們的 host1 IP 地址指向的地址相同),只有在那之後我才能刪除我們的 A 記錄並將其替換為 CNAME 記錄?

然後我又不確定這將如何工作,因為 hostx.externaldomain.com 已經設置了一些 IP 地址(只需使用 ping 檢查),我不知道他們如何通過將 A 記錄點設置為 host1 IP 地址來改變它…而且,我們應該設置的所有其他 CNAME 記錄都使用相同的別名。

CNAME記錄只能單獨存在。您不能擁有像這樣的區域數據:

name A xx.xx.xx.xx
name CNAME othername

一些特殊記錄可能並存CNAME,以證明它是真實的。DNSSEC 規範要求使用RRSIGNSEC用於身份驗證,它可以與 共存CNAME,請參閱RFC 4034 第 3 節RFC 4034 第 4 節。有較舊的規範,RFC 2181, section 10.1 , RFC 2535 section 2.3.5,對SIG,NXTKEY記錄也是如此。

所有最終應用程序數據都必須附加到作為CNAME目標的 RR;請參閱RFC1034 第 3.6.2 節(原始 DNS 規範)。

some.name.tld CNAME rec.othername.tld
rec.othername.tld A xx.xx.xx.xx
rec.othername.tld TXT text-rr-data

另請注意,該CNAME標籤不僅繼承A(地址),還繼承了目標標籤的許多其他特徵,特別是TXT.

這個(較舊的)RFC 還包含為 DNSSEC 取消的上述限制的更硬版本:

如果 CNAME RR 出現在節點上,則不應出現其他數據;這可確保規範名稱及其別名的數據不能不同。

如果沒有 DNSSEC,這個更嚴格的限制仍然有效。

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