Domain-Name-System
什麼是 Amazon Route53“別名”DNS 記錄?
AWS Route53 別名值
考慮在 AWS Route53 上註冊的域。應從 AWS CloudFront CDN 分配提供對此域的 HTTP 請求。為了實現這一點,
A
定義了一個別名記錄:
dig
結果但是,
dig
結果顯示了實際的 IP 地址。事實上,這些 IP 地址不是固定不變的,會隨著時間而變化:# dig @1.1.1.1 serverlessdaystlv.io ... ;; ANSWER SECTION: serverlessdaystlv.io. 60 IN A 13.32.67.21 serverlessdaystlv.io. 60 IN A 13.32.67.27 serverlessdaystlv.io. 60 IN A 13.32.67.97 serverlessdaystlv.io. 60 IN A 13.32.67.122 serverlessdaystlv.io. 60 IN A 13.32.67.141 serverlessdaystlv.io. 60 IN A 13.32.67.159 serverlessdaystlv.io. 60 IN A 13.32.67.201 serverlessdaystlv.io. 60 IN A 13.32.67.216 # dig @1.1.1.1 serverlessdaystlv.io ... ;; ANSWER SECTION: serverlessdaystlv.io. 60 IN A 52.222.232.13 serverlessdaystlv.io. 60 IN A 52.222.232.24 serverlessdaystlv.io. 60 IN A 52.222.232.43 serverlessdaystlv.io. 60 IN A 52.222.232.55 serverlessdaystlv.io. 60 IN A 52.222.232.63 serverlessdaystlv.io. 60 IN A 52.222.232.104 serverlessdaystlv.io. 60 IN A 52.222.232.136 serverlessdaystlv.io. 60 IN A 52.222.232.224
我的問題
什麼是 Route53 別名記錄?它是 DNS 記錄的內置類型,還是只是 CloudFront 分配的實際 IP 的內部 AWS 別名,從未暴露於外部?
Route53別名記錄是一個獨立於 DNS 協議記錄類型的概念:例如
A
是地址記錄,CNAME
是規範名稱記錄。CNAME
是一個類似於指向規範名稱的別名的行為,而A
與別名無關。(參見RFC 1035。)別名記錄是在更高級別上工作的內部 Amazon 特定*指針;*在技術 DNS 級別上,它可能會導致 a
A
或 aCNAME
,具體取決於具體情況。DNS 不需要知道這個內部指針類型或目標,因為 Route53 只回答結果記錄。亞馬遜文章在別名和非別名記錄之間進行選擇詳細解釋了這一點:
別名記錄為 DNS 功能提供特定於 Route 53 的擴展。別名記錄不包含 IP 地址或域名,而是包含指向 CloudFront 分配、Elastic Beanstalk 環境、ELB Classic、應用程序或網路負載均衡器、配置為靜態網站的 Amazon S3 儲存桶的指針,或同一託管區域中的另一個 Route 53 記錄。當 Route 53 接收到與別名記錄中的名稱和類型匹配的 DNS 查詢時,Route 53 會跟隨指針並以適用的值進行響應:
- CloudFront 分配的備用域名– Route 53 的響應就像查詢已使用 CloudFront 域名請求 CloudFront 分配一樣,例如
d111111abcdef8.cloudfront.net
.- Elastic Beanstalk 環境– Route 53 使用環境的一個或多個 IP 地址響應每個請求。
- ELB 負載均衡器– Route 53 使用負載均衡器的一個或多個 IP 地址響應每個請求。
- 配置為靜態網站的 Amazon S3 儲存桶– Route 53 使用 Amazon S3 儲存桶的一個 IP 地址響應每個請求。
- 同一託管區域中的另一條 Route 53 記錄– Route 53 的響應就像查詢已要求指針引用的記錄一樣。
這種混淆是可以理解的,因為您似乎要添加
A
類型 IPv4地址記錄,而目標是主機名而不是 IP 地址;您寧願與 a 一起使用的東西CNAME
!