如何對 DNS SERVFAIL 問題進行疑難排解?

3 分的閱讀內容
0

在 Amazon Route 53 中解析我的網域時,我收到了「SERVFAIL」回應。

解決方法

問題: 第三方名稱伺服器 (NS) 封鎖 AWS 公有解析器的 IP 地址

如果第三方 NS 封鎖公有解析器的 IP 地址,則在解析公用網域的查詢時,您會看到 SERVFAIL 回應。無論您從一個還是從多個 AWS 區域進行解析,都會發生這種情況。不過,解析針對某些公有 DNS 解析器 (例如 8.8.8.8 或 1.1.1.1) 的相同 DNS 查詢時,會傳回 NOERROR 回應。

若要解決此問題,請聯絡您的第三方 DNS 供應商以建立允許清單。將您發現 SERVFAIL 回應的 AWS 區域的所有 AWS 公有解析器 IP 地址範圍新增至該清單。

問題: 公共託管區域中設定的子網域委派不正確

範例

您的公共託管區域「example.com」具備為「aws.example.com」設定的子網域委派。子網域委派組態指定無法連線或不正確的名稱伺服器,這些名稱伺服器沒有子網域授權。

網域「example.com」的父公共託管區域

example.comNSns1.example.com、ns2.example.com、ns3.example.com、ns4.example.com
aws.example.comNSdummy-ns1.com、dummy-ns2.net、dummy-ns3.co.uk、dummy-ns4.org

網域「aws.example.com」的子網域託管區域

aws.example.comNSns1-xxx.awsdns-xx.com、ns2-xxx.awsdns-xx.co.uk、ns3-xxx.awsdns-xx.net、ns4-xxx.awsdns-xx.org
aws.example.comA1.2.3.4

若要解決前述錯誤,請設定父託管區域內的名稱伺服器記錄,以符合子網域託管區域中的名稱伺服器。如果您使用的是自訂名稱伺服器,請確認名稱伺服器都可連線。

問題: 網域註冊商列出的名稱伺服器不正確

當網域註冊商列出不正確的名稱伺服器時,收到 SERVFAIL 回應的原因有兩種:

  • 在網域註冊商設定的名稱伺服器與公共託管區域中提供的名稱伺服器不相符。
  • 在註冊商設定的名稱伺服器存在,但不具有指定網域的授權。

如果該名稱伺服器不存在,則解析器在啟動迭代查詢後將逾時。這些逾時會導致查詢時間的顯著延遲。因為名稱伺服器無法提供答案,解析器將傳回 SERVFAIL 回應。

網域的公共託管區域

example.comNSns1.example.com、ns2.example.com、ns3.example.com、ns4.example.com

名稱伺服器已在網域註冊商設定,如下列範例所示:

whois example.com | grep "Name Server"
Name Server: ns1.test.com  
Name Server: ns2.test.com
Name Server: ns3.test.com  
Name Server: ns4.test.com

若要解決此錯誤,請執行下列其中一個動作:

  • **白標名稱伺服器未實作:**使用指派給您公共託管區域的名稱伺服器取代該註冊商的名稱伺服器。
  • **白標名稱伺服器已實作:**確認該註冊商的名稱伺服器與您的黏附記錄和公共託管區域中白標名稱伺服器的 A 記錄完全相同。

問題: 在私有託管區域中設定不支援的子網域委派

如果私有託管區域中的子網域委派設定不正確,則虛擬私有雲端 (VPC) DNS 解析器會傳回 SERVFAIL

私有託管區域

servfail.localNSns-xxx.awsdns-xx.co.uk、ns-x.awsdns-xx.com、ns-xxx.awsdns-xx.org、ns-xxx.awsdns-xx.net.
sub.servfail.localNSns-xxx.awsdns-xx.net.

注意: 您無法使用 AWS 管理主控台在私有託管區域中建立 NS 記錄,以委派對子網域的責任。請改用 AWS Command Line Interface (AWS CLI)。請注意,Amazon Route 53 不支援私有託管區域中的子網域委派

問題: DNSSEC 設定錯誤

DNSSEC 可能包含下列一個或多個設定錯誤:

  • 網域註冊商層級已啟用 DNSSEC,但 DNS 託管服務端尚未啟用。
  • 網域註冊商層級和 DNS 託管服務端皆已啟用 DNSSEC 簽署。但一個或多個基本資訊 (例如金鑰類型,簽署演算法和公開金鑰) 不相符。或者 DS 記錄不正確。
  • 父區域與子區域之間未建立信任鏈結。父區域中的 DS 記錄與子區域中的公共 KSK 雜湊不相符。

若要解決此問題,請參閱如何識別並對 Route 53 中的 DNSSEC 組態問題進行疑難排解?

問題: Route 53 解析器傳入和傳出端點鏈結設定錯誤

造成此問題的原因是循環中的 DNS 流量。造成循環的原因是下列模式的流量:

EC2 執行個體 - VPC DNS 解析器 - (符合轉發規則) - 傳出端點 - (傳入端點的目標 IP 地址) - 傳入端點 - VPC DNS 解析器

若要解決此問題,請參閱使用解析器端點避免循環組態

問題: Route 53 解析器傳出端點上存在連線問題

如果 Route 53 解析器傳出端點與解析器規則目標 IP 位址之間存在連線問題,則 AmazonProvidedDNS 會傳回 SERVFAIL

若要解決此問題,請完成下列步驟:

  • 驗證從傳出端點建立的彈性網路介面 VPC 到目標 IP 地址的網路連線:
    1. 檢查網路存取控制清單 (Network ACL)。
    2. 確定具備傳出端點安全群組輸出規則,該規則允許連接埠 53 的 TCP 和 UDP 流量傳輸到目標 IP 地址。
    3. 檢查目標 IP 位址端設定的任何防火牆規則。
    4. 驗證傳出端點彈性網路介面與目標 IP 地址之間的路由。
  • 根據設計,Route 53 解析器傳出端點彈性網路介面不具備公有 IP 地址。如果目標 DNS 伺服器是公開 DNS (例如: 8.8.8.8),請確認傳出端點是否建立在具備 NAT 閘道的路由表項目的私有子網路中。

問題: 父區域中缺少黏附記錄

範例

網域「example.com」的公共託管區域中具備「glue.example.com」的子網域委派,指向該子網域的名稱伺服器。但是,該公共託管區域「example.com」中缺少黏附記錄,如下列範例所示:

網域「example.com」的父公共託管區域

example.comNSns1.example.com、ns2.example.com、ns3.example.com、ns4.example.com
glue.example.comNSns1.glue.example.com、ns2.glue.example.com、ns3.glue.example.com、ns4.glue.example.com

網域「glue.example.com」的子網域公共託管區域

glue.example.comNSns1.glue.example.com、ns2.glue.example.com、ns3.glue.example.com、ns4.glue.example.com
glue.example.comA1.2.3.4
ns1.glue.example.comA3.3.3.3
ns2.glue.example.comA4.4.4.4
ns3.glue.example.comA5.5.5.5
ns4.glue.example.comA6.6.6.6

若要解決此問題,請在父網域託管區域中為子網域「glue.example.com.」建立黏附記錄。

網域「example.com」的父公共託管區域

example.comNSns1.example.com、ns2.example.com、ns3.example.com、ns4.example.com
glue.example.comNSns1.glue.example.com、ns2.glue.example.com、ns3.glue.example.com、ns4.glue.example.com
glue.example.comA1.2.3.4
ns1.glue.example.comA3.3.3.3
ns2.glue.example.comA4.4.4.4
ns3.glue.example.comA5.5.5.5
ns4.glue.example.comA6.6.6.6

問題: 已超過遞迴深度上限

如果查詢的網域回應深度超過九,則超過遞迴深度上限。回應必須為不超過八個 CNAME 記錄和一個最終 A/AAAA 記錄的鏈結。

若要解決此問題,請減少回應中的 CNAME 記錄數量。為了避免循環,Route 53 解析器支援的最大深度為九 (八個 CNAME 和一個 A/AAAA 記錄的鏈結)。

AWS 官方
AWS 官方已更新 1 年前