AWS Route 53 無法對二級域名 (如 abcde.tw) 設定 CNAME

2024012415:13

AWS Route 53 無法對二級域名 (如 abcde.tw) 設定 CNAME,設定時 會出現警告:
InvalidChangeBatch 400: RRSet of type CNAME with DNS name abcde.tw. is not permitted at apex in zone abcde.tw

 **Cloudflare 中允許對二級域名設定 CNAME
這是 RFC1912 的規定

 

解決的辦法:

1.在 Route 53 中仍舊使用 A Record
2.再設定 【別名 Alias】即可 (這是 Route 53 的特異功能)


設定完成
使用 dig 查詢,會類似這樣:
$ dig xxxxx.tw

; <<>> DiG 9.11.36-RedHat-9.11.36-8.el8_8.1 <<>> xxxxx.tw
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9723
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;xxxxx.tw.                    IN      A

;; ANSWER SECTION:
xxxxx.tw.             50      IN      A       13.35.35.98
xxxxx.tw.             50      IN      A       13.35.35.75
xxxxx.tw.             50      IN      A       13.35.35.11
xxxxx.tw.             50      IN      A       13.35.35.34

;; Query time: 11 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Jan 24 15:23:39 CST 2024
;; MSG SIZE  rcvd: 103

--------
使用 nslookup 查詢 類似這樣:
$ nslookup xxxxx.tw
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   xxxxx.tw
Address: 13.35.35.11
Name:   xxxxx.tw
Address: 13.35.35.75
Name:   xxxxx.tw
Address: 13.35.35.98
Name:   xxxxx.tw
Address: 13.35.35.34

參考
RRSet of type CNAME with DNS name foo.com. is not permitted at apex in zone bar.com (stackoverflow)

Choosing between alias and non-alias records (AWS)

順便問一下 chatGPT 4 :
給 100分!!

問:
aws route 53 ,出現這個訊息 怎麼辦? InvalidChangeBatch 400: RRSet of type CNAME with DNS name abcde.tw. is not permitted at apex in zone abcde.tw

回答:
這個錯誤訊息 "InvalidChangeBatch 400: RRSet of type CNAME with DNS name abcde.tw. is not permitted at apex in zone abcde.tw" 指的是在 AWS Route 53 中,您嘗試在域名的根(apex)位置設置一個 CNAME 記錄,但這是不被允許的。

根據 DNS 標準,域名的根(或稱 apex,例如 abcde.tw)不能有 CNAME 記錄,因為它可能會與其他必要的 DNS 記錄(如 NS 和 SOA 記錄)產生衝突。CNAME 記錄通常用於將一個域名指向另一個域名,但它不能與其他任何記錄共存於相同的 DNS 名稱。

要解決這個問題,您有幾個選擇:

  1. 使用 AWS Route 53 的 Alias 記錄:與 CNAME 相似,Alias 記錄可以將您的根域(例如 abcde.tw)指向另一個域名(例如 AWS 上的某個服務),但不會有 CNAME 的限制。Alias 記錄專門為了解決這種情況而設計。

  2. 改用子域名:如果您必須使用 CNAME,考慮創建一個子域名(例如 www.abcde.tw),並為該子域名設置 CNAME 記錄。

  3. 檢查其他記錄類型:如果您的用途不一定需要 CNAME,也可以考慮其他類型的 DNS 記錄,如 A 記錄或 AAAA 記錄,這些可以直接指向 IP 地址。

建議您根據您的需求和配置選擇最合適的方法。如果您對如何操作還有疑問,AWS 的官方文檔提供了詳細的指導,也可以考慮聯繫 AWS 支持尋求幫助。