如何疑難排解 Route 53 中以 IP 為基礎的路由問題?

2 分的閱讀內容
0

針對 Amazon Route 53 以 IP 為基礎的路由政策測試 DNS 解析時,系統顯示預期以外的結果。

解決方法

範例案例

您的用戶端 CIDR 172.32.0.0/16 和 172.33.0.0/16 分別指向兩個 Elastic Load Balancing (ELB) 負載平衡器,而這些用戶端都具有以 IP 為基礎的路由記錄。一個 ELB 負載平衡器位於維吉尼亞州 (us-east-1),另一個位於愛爾蘭 (eu-west-1)。用戶端 CIDR 172.32.0.0/16 會解析網域,傳送給 us-east-1 的負載平衡器。用戶端 CIDR 172.33.0.0/16 會解析網域,傳送給 eu-west-1 的負載平衡器。然而,用戶端並未收到預期中的輸出內容。

**注意:**私有託管區域不支援以 IP 為基礎的路由。

若要針對以 IP 為基礎的路由執行疑難排解,請完成以下步驟:

1.    確認您已依照您的使用案例,正確設定 Route 53 託管區域以 IP 為基礎的資源記錄。開啟 Route 53 主控台,查看 Route 53 託管區域組態所指定的預設位置。

注意:

  • 如果與來源 IP 地址相符的 CIDR 集合中未指定 CIDR 區塊,Route 53 會回覆預設的「*」位置。
  • 如果以下條件為真,Route 53 會回覆 NODATA
    未指定預設的「*」位置。
    查詢的來源 CIDR 區塊與 CIDR 集合中指定的 CIDR 區塊無一相符。
  • Route 53 會將 CIDR 長度超過指定 CIDR 的 DNS 查詢與 CIDR 集合中指定的較短 CIDR 相互比對。例如,如果您在 CIDR 集合中指定 2001:db8::/32 作為 CIDR,並接收來自 2001:0db8:1234::/48 的查詢,則 CIDR 相符。如果您在 CIDR 集合中指定 2001:db8:1234::/48,但接收的查詢來自 2001:db8::/32,則不相符。Route 53 會回覆「*」位置的記錄。

如需了解 CIDR 集合和 CIDR 區塊限制配額,請參閱記錄配額

2.    檢查用戶端是否正確解析。

如果用戶端是在虛擬私有雲端 (VPC) 解析,並使用 VPC DNS .2 解析程式,以 IP 為基礎的路由將無法正常運作,原因是 .2 解析器不支援 EDNS 用戶端子網路 (ECS)。

如果用戶端是在 VPC 以外的位置解析,請執行下列命令,確認您的 DNS 解析程式是否支援 EDNS0:

Linux 或 macOS

dig TXT o-o.myaddr.google.com -4

Windows

nslookup -type=txt o-o.myaddr.google.com

以下範例輸出內容顯示不支援 EDNS0 的 DNS 解析程式:

$ dig TXT o-o.myaddr.google.com -4

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> TXT o-o.myaddr.google.com -4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38328
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;o-o.myaddr.google.com. IN TXT

;; ANSWER SECTION:
o-o.myaddr.google.com. 60 IN TXT "3.209.83.70"

以下範例輸出內容顯示支援 EDNS0 的 DNS 解析程式:

$ dig TXT o-o.myaddr.google.com -4 @8.8.8.8

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> TXT o-o.myaddr.google.com -4 @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30624
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;o-o.myaddr.google.com. IN TXT

;; ANSWER SECTION:
o-o.myaddr.google.com. 60 IN TXT "172.253.8.137"
o-o.myaddr.google.com. 60 IN TXT "edns0-client-subnet 54.82.0.0/24"

3.    若要檢查 DNS 解析,請使用託管區域的授權名稱伺服器來解析記錄。執行以下命令。在下列範例命令中,將 example.com 改成您的網域。

dig A example.com +subnet=172.3.0.0/16 @ns-1875.awsdns-42.co.uk

或者,您也可以使用 dignslookup 來驗證 DNS 解析是否如預期中運作。在以下範例命令中,將 example.com 改成您的網域。

dig example.com @8.8.8.8
nslookup example.com 8.8.8.8

4.    如果您要為以 IP 為基礎的資源記錄設定運作狀態檢查記錄,請使用這些記錄驗證運作狀態。如果記錄具有預設 (*) 位置,但運作狀態檢查執行失敗,Route 53 會在 DNS 查詢回應中傳回預設位置。

相關資訊

以 IP 為基礎的路由

AWS 官方
AWS 官方已更新 10 個月前