由於Amazon Route 53允許您使用別名將A記錄或CNAME設置爲不同的子域名,因此我想知道現在A記錄和CNAME之間有什麼區別。Route53中的A Rec和CNAME之間的差別
爲了澄清我的問題,傳統NameServer中CNAME和A記錄之間的區別是隻有CNAME可以用來指向不同的子域,並且A記錄必須指向有效的IP地址。由於AWS Route53允許您使用具有A Rec或CNAME的子域名,因此它不會模糊兩者之間的區別。
由於Amazon Route 53允許您使用別名將A記錄或CNAME設置爲不同的子域名,因此我想知道現在A記錄和CNAME之間有什麼區別。Route53中的A Rec和CNAME之間的差別
爲了澄清我的問題,傳統NameServer中CNAME和A記錄之間的區別是隻有CNAME可以用來指向不同的子域,並且A記錄必須指向有效的IP地址。由於AWS Route53允許您使用具有A Rec或CNAME的子域名,因此它不會模糊兩者之間的區別。
你的問題是相當有效的,但你用一個不太精確的方式使用「子域」這個詞。
實際上,您要詢問的是,Route 53,A
記錄可以顯示引用來自其他域的完全限定主機名,或來自其自己域的主機名或子域, DNS,引用另一個主機名的唯一方法是使用CNAME
,但這些不能在指向子域(「www.example.com」)的域頂部(「example.com」)進行配置。
一個別名,你說的,似乎是功能上等價的,但比CNAME
更靈活,所以有區別嗎?
一個CNAME
和別名之間的區別在於,CNAME
仍然是正確的,標準的,普通DNS CNAME
,它返回一個DNS查詢響應「嗨,你需要知道的是,真正(」 Ç anonical「)名稱您正在查找的服務器爲'x'」,根據具體情況,還可能包括目標主機的A
記錄,或者可能不包括,要求客戶端進行第二次查找。
另一方面,別名是亞馬遜創建的一種巧妙的破解方式,它不會中斷協議,但當資源「Y」的A
記錄爲「0」時,允許Route 53直接從資源「X」分發A
記錄請求。別名還可以引用其他記錄類型,但它們引用的記錄類型必須相同,爲了討論的目的,我正在討論A
記錄別名。
而且,這裏重要的缺點是別名實際上會返回A
記錄 - 而不是對目標的引用,就像CNAME
一樣。
問題在於,如果使用別名,則不能在該框中放置任何主機名。它必須是Route 53具有魔術掛鉤的域中的主機名,以便它可以檢索要提供的apprpriate A
記錄 - 可以是您的區域中的另一個條目,也可以是S3,ELB或Cloudfront。這與CNAME
記錄的工作方式是非常不同的,儘管淨效應似乎是相同的。
把其他東西放在那裏,然後The record set could not be saved because:- Alias Target contains an invalid value.
試試吧。:)
當然,CNAME
記錄沒有像這樣的限制...他們只是受限於設計在區域頂部的使用。
所以,實際上,別名和CNAME
記錄沒有像您最初想象的那麼多重疊。在某些情況下,只有一個是可用的,任何一個人都可以工作的情況下,差異可能是微不足道的。
可以使用任何一種方法的別名的一個優點是別名從不需要2次DNS查詢,正如我上面提到的。它總是直接通過Route 53和相應的A
記錄進行回答,其中CNAME
(至少在引用不同頂級域中的主機名的情況下)可能需要兩次連續的DNS查找,這給Alias帶來了理論上的性能優勢,案件。
我想你有錯誤的信息。亞馬遜Route53不允許A
記錄與子域名。當我試圖把它設置爲一個域名,我得到一個錯誤:
The record set could not be saved because:
- The Value field contains invalid characters or is in an invalid format.
A
記錄僅針對IP地址。
哇 - 感謝這樣詳細的答案。我的理解用這個改進了很多。 – Scalable
非常好。請考慮接受我的回答,除非有其他要點讓我澄清。 –
只是爲了增加一點混淆,你可以有'別名cnames'。如果您希望cdn1.website.com,cdn2.website.com和cdn3.website.com都指向相同的第三方域,則可以將它們別名爲cdn.website.com,這將成爲網站的一個cname。 bestcdn.com。這樣做的好處是,如果cdn發生更改,而不是2個cname查找(內容加載延遲幾毫秒),則只有一個,並且只有一條記錄要更新。如果您要問爲什麼要使用多個cdn url來訪問同一個plce?這有時用於增加併發資產下載。 – KHobbits