跳至内容

如何解决使用 Route 53 作为 DNS 服务时的 NXDOMAIN 响应问题?

3 分钟阅读
0

当我尝试解析 Amazon Route 53 中的记录时,我收到了来自 DNS 解析器的 NXDOMAIN(不存在的域)响应或 DNS_PROBE_FINISHED_NXDOMAIN 错误。

简短描述

当 DNS 解析器找不到请求的域名时,您可能会收到 NXDOMAIN 响应或 DNS_PROBE_FINISHED_NXDOMAIN 错误。这可能是由于域暂停、名称服务器配置错误或 DNS 记录缺失导致的。

解决方法

检查域是处于活动状态还是暂停状态

要检查域是处于活动状态还是暂停状态,请完成以下步骤。

  1. 对域运行 WHOIS 查询。
    在运行以下命令之前,请确保已安装 WHOIS
    **对于 Windows:**打开 Windows 命令提示符,然后输入 whois-v example.com
    对于 Linux:打开 SSH 客户端。在命令提示符中,输入 whois example.com
    如果域是通过 Amazon Registrar 注册的,则您可以使用 Amazon Registrar WHOIS 查找工具
  2. 查看域的状态。如果“域状态”的值为 clientHold,则表示该域已被暂停。

域暂停的常见原因:

  • 域注册后未验证确认电子邮件。
  • 自动续费已关闭,域已过期。
  • 注册人的电子邮件地址已更改,但从未验证。

有关详细信息,请参阅我的域已暂停(状态为 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.

确认配置了正确的名称服务器

您可以使用 WHOIS 输出或 dig +trace 命令来查看权威名称服务器。

要验证 Route 53 中的托管区设置,请完成以下步骤:

  1. 打开 Amazon Route 53 控制台
  2. 在导航窗格中,选择 Hosted zones(托管区)。
  3. 选择所需的托管区,然后选择 View details(查看详细信息)。
  4. 选择 Hosted zone details(托管区详细信息)。
  5. 将列出的名称服务器与 WHOIS 或 dig +trace 输出中的名称服务器进行比较。

**重要事项:**如果名称服务器不同,请在您的域注册商处进行更新。

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

确认请求的记录存在

在托管区中,检查请求的记录是否存在。

如果您使用 CNAME,请确认目标域(规范名称)也存在且可解析。

例如,如果将 example.com CNAME 记录的值配置为 blog.example.com,请验证记录 blog.example.com 是否存在且可解析。

检查子域委派问题

要检查子域委派问题,请考虑执行以下操作:

  • 在父托管区中查找该域的 NS 记录。例如,如果 www.example.com 存在 NS 记录,则表明该域已委派。
  • 如果委派有效,请将记录添加到委派的区域中。
  • 如果委派无效,请删除 NS 记录并将该记录添加到父区域。

注意: DNS 解析器中的 QNAME 最小化可能会导致深度子域委派时出现 NXDOMAIN 错误。有关详细信息,请参阅防止 Route 53 中悬空委派记录

确定 DNS 解析问题是否仅存在于 VPC 中

检查您的操作系统上是否配置了 DNS 解析器。

  • 对于 Linux: 打开 /etc/resolv.conf 文件。
  • 对于 Windows: 在命令提示符中运行以下命令:ipconfig /all

查找 DNS 解析器地址。如果虚拟私有云 (VPC) CIDR 为 10.0.0.0/8,则解析器应为 10.0.0.2

如果您使用的是 Amazon Virtual Private Cloud (Amazon VPC) 解析器,请查看以下场景:

场景 A: 您同时拥有解析器规则和私有托管区

  • 解析器规则优先。
  • DNS 查询将转发到解析器规则中的 IP 地址。

有关详细信息,请参阅使用私有托管区

场景 B: 您只有私有托管区

  • VPC 内的客户端将无法解析公共区域中的记录。
  • 此配置称为水平分割 DNS

场景 C: 您只有解析器规则

  • DNS 查询将转发到配置的 IP 地址。
  • 在这种情况下,不会使用默认的公共解析器。

检查问题是否由负面缓存导致

如果负面缓存处于活动状态,则解析器可能会缓存 NXDOMAIN 响应。
示例场景:

  • 您查询了 neg.example.com,但它不存在。
  • 解析器缓存了 NXDOMAIN 结果。
  • 然后,您创建了记录,但解析器仍返回 NXDOMAIN。

解析器使用以下内容来确定负面响应的缓存时间:

  • SOA 记录中的最小 TTL
  • SOA 记录的 TTL(以较低者为准)

要确认负面缓存是否处于活动状态,请直接向名称服务器发送查询以获取响应,如以下示例所示:

dig www.example.com @ns-1470.awsdns-55.org
AWS 官方已更新 9 个月前