使用 Route 53 作為 DNS 服務時,如何對 NXDOMAIN 回應進行疑難排解?

3 分的閱讀內容
0

我在解析 Amazon Route 53 記錄時,收到來自 DNS 解析程式的 NXDOMAIN 回應或是 DNS_PROBE_FINISHED_NXDOMAIN 錯誤。

解決方法

判斷網域是處於作用中狀態還是暫停狀態

1.    針對網域執行 whois 查詢。

**注意:**在執行下列命令之前,確定已安裝 whois。

**對於 Windows:**開啟 Windows 命令提示字元,然後輸入 whois -v example.com
對於 Linux:開啟您的 SSH 用戶端。在命令提示字元中,輸入 whois example.com

**注意:**如果網域透過 Amazon Registrar 註冊,您可以使用 Amazon Registrar whois 查詢工具

2.    檢查網域的狀態。如果網域狀態的值為 clientHold,則該網域將暫停。

範例 whois 輸出:

whois example.com
   Domain Name: EXAMPLE.COM
   Registry Domain ID: 87023946\_DOMAIN\_COM-VRSN
   Registrar WHOIS Server: whois.godaddy.com
   Registrar URL: http://www.godaddy.com
   Updated Date: 2020-05-08T10:05:49Z
   Creation Date: 2002-05-28T18:22:16Z
   Registry Expiry Date: 2021-05-28T18:22:16Z
   Registrar: GoDaddy.com, LLC
   Registrar IANA ID: 146
   Registrar Abuse Contact Email: abuse@godaddy.com
   Registrar Abuse Contact Phone: 480-624-2505
   Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
   Domain Status: clientHold https://icann.org/epp#clientHold  
   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
   Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
   Name Server: ns-1470.awsdns-55.org.
   Name Server: ns-1969.awsdns-54.co.uk.
   Name Server: ns-736.awsdns-28.net.
   Name Server: ns-316.awsdns-39.com.

若要再次在網際網路上使用某個網域,請將網域從暫停狀態移除。以下是網域可能暫停的最常見原因:

  • 您註冊了新的網域,但沒有按一下確認電子郵件中的連結。
  • 您關閉了網域的自動續約,且網域已過期。
  • 您變更了註冊聯絡人的電子郵件地址,但未驗證新電子郵件地址是否有效。

如需詳細資訊,請參閱我的網域已暫停 (狀態為 ClientHold)

確認在網域註冊機構上設定了正確的名稱伺服器

1.    在 whois 輸出中,記下對您的網域為可信賴的名稱伺服器。如需範例,請參閱前面的 whois 輸出。

您也可以使用 dig 公用程式來檢查已設定的名稱伺服器。

dig +trace 輸出範例:

dig +trace example.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.2 <<>> +trace example.com
;; global options: +cmd
.                       518400  IN      NS      H.ROOT-SERVERS.NET.
.                       518400  IN      NS      I.ROOT-SERVERS.NET.
.                       518400  IN      NS      J.ROOT-SERVERS.NET.
.                       518400  IN      NS      K.ROOT-SERVERS.NET.
;; Received 239 bytes from 10.0.0.2#53(10.0.0.2) in 0 ms

com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
C41A5766
com.                    86400   IN      RRSIG   DS 8 1 86400 20210329220000 20210316210000 42351 .
;; Received 1174 bytes from 192.112.36.4#53(G.ROOT-SERVERS.NET) in 104 ms

example.com.         172800  IN      NS      ns-1470.awsdns-55.org.  	------>Name servers of interest.
example.com.         172800  IN      NS      ns-1969.awsdns-54.co.uk.
example.com.         172800  IN      NS      ns-736.awsdns-28.net.
example.com.         172800  IN      NS      ns-316.awsdns-39.com.

;; Received 732 bytes from 192.33.14.30#53(b.gtld-servers.net) in 91 ms

example.com.         3600    IN      A       104.200.22.130
example.com.         3600    IN      A       104.200.23.95
example.com.         3600    IN      NS      ns-1470.awsdns-55.org.
example.com.         3600    IN      NS      ns-1969.awsdns-54.co.uk.
example.com.         3600    IN      NS      ns-736.awsdns-28.net.
example.com.         3600    IN      NS      ns-316.awsdns-39.com.

;; Received 127 bytes from 173.201.72.25#53(ns-1470.awsdns-55.org) in 90 ms

2.    開啟 Route 53 主控台

3.    在導覽窗格中,選擇託管區域

4.    在託管區域頁面上,選取託管區域的選項按鈕 (而非名稱)。然後選擇檢視詳細資訊

5.    在託管區域的詳細資訊頁面上,選擇託管區域詳細資訊

6.    確認託管區域詳細資訊中列出的名稱伺服器與 whois 或 dig +trace 輸出中的名稱伺服器相同。

**重要:**如果名稱伺服器不同,請在網域註冊機構上進行更新。對於透過 Route 53 註冊的網域,請參閱新增或變更網域的名稱伺服器和黏附記錄。對於透過第三方註冊的網域,請參閱供應商的文件,以取得有關如何更新名稱伺服器的步驟。

確認請求的記錄存在

檢查網域的託管區域是否包含請求的記錄。例如,如果您在嘗試解析 www.example.com 時收到 NXDOMAIN 回應,請檢查 example.com 託管區域中的 www.example.com 記錄。如需有關如何在 Route 53 中列出記錄的步驟,請參閱列出記錄

如果您具有指向另一個網域名稱的 CNAME 記錄,請確定正規名稱存在且可解析。

範例

example.com CNAME 記錄的設定值為 blog.example.com。在此情況下,請確認記錄 blog.example.com 存在並且可解析。

檢查子網域委派問題

1.    檢查父託管區域是否存在您正在解析的網域名稱的名稱伺服器 (NS) 記錄。如果子網域的 NS 記錄存在,該網域及其子網域的權限將委派給另一個區域。例如,如果存在 www.example.com 的 NS 記錄,www 的權限將委派給 NS 記錄中的名稱伺服器。如果委派有效,您必須在委派區域中為網域建立記錄,而不是在 example.com 的父區域。

2.    如果委派無效,請刪除網域的 NS 記錄。確認父託管區域 (example.com) 包含您嘗試解析的網域名稱的記錄。

3.實作 QNAME 最小化的解析程式會在每個查詢中包含最少的詳細資訊,這是解析過程中該步驟所需的。這可能會導致某些解析程式中出現 NXDOMAIN 問題。當您設定多個層級的子網域委派時,在每個層級遵循嚴格委派。如需詳細資訊,請參閱路由其他子網域層級的流量

判斷 DNS 解析問題是否僅存在於 VPC 中

1.    檢查用戶端作業系統 (OS) 上設定的解析程式 IP 位址。對於 Linux,檢查 /etc/resolv.conf 檔案。對於 Windows,檢查 ipconfig /all 輸出中的 DNS 伺服器。尋找預設虛擬私有雲端 (VPC) DNS 解析程式 (VPC CIDR+2)。例如,如果 VPC CIDR 為 10.0.0.0/8,則 DNS 解析程式 IP 位址為 10.0.0.2。如果您在 /etc/resolv.conf 中沒有看到 VPC DNS 解析程式,請檢查自訂 DNS 解析程式。

2.    如果您使用 VPC DNS 解析程式,請檢查私有託管區域和 Route 53 解析程式規則。

在使用解析程式規則和私有託管區域時

如果解析程式規則和私有託管區域名稱相符,則解析程式規則優先。如需詳細資訊,請參閱使用私有託管區域時的考量。在此情況下,DNS 查詢會傳送至解析程式規則中設定為目標的目標 IP 位址。

使用私有託管區域且沒有解析程式規則時

確認是否具有與 VPC 關聯的相符網域名稱的私有託管區域。例如,您可能具有與 VPC 關聯的網域的公有託管區域和私有託管區域。這是一個分割檢視或水平分割 DNS。在此情況下,VPC 中的用戶端無法解析在公有託管區域中建立的記錄。如果私有託管區域中沒有記錄,則 VPC DNS 不會回復為公有託管區域。

僅使用解析程式規則而沒有私有託管區域時

檢查 Route 53 解析程式規則。如果有與網域名稱相符的規則,則網域查詢將路由至設定的目標 IP 位址。這意味著查詢不會路由至預設的公有解析程式。

判斷您的問題是否是負面快取所造成

負面快取是將來自授權名稱伺服器的負面回應儲存在快取中的過程。NXDOMAIN 回應視為負面回應。請考慮下列範例:

用戶端對 neg.example.com 進行 DNS 查詢並收到 NXDOMAIN 回應碼,因為記錄 neg.example.com 不存在。

此使用者還擁有 example.com,因此他們為 neg.example.com建立一個新記錄。當其他網路中的使用者可以成功解析記錄時,使用者會繼續收到 NXDOMAIN 回應。

當使用者在建立新記錄之前向 neg.example.com 進行查詢時,他們會收到 NXDOMAIN 回應。如果使用者在其解析程式設定中開啟了負面快取,則解析程式會快取此回應。使用者建立新記錄後,他們會再次進行查詢。解析程式之前收到了此查詢並予以快取,所以它從快取中傳回了回應。

負面回應的回答中沒有傳回任何記錄,因此與正面回應相比沒有存留時間 (TTL) 值。在此情況下,解析程式會使用下列值中的最小值:

  • 起始授權 (SOA) 記錄的最小 TTL 值。
  • 用於快取 NXDOMAIN 回應的 SOA 記錄的 TTL 值。

若要確認此問題,請直接向名稱伺服器傳送查詢以查看是否收到回應。例如:

dig www.example.com @ns-1470.awsdns-55.org
AWS 官方
AWS 官方已更新 1 年前