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

3 分钟阅读
0

我收到来自 DNS 解析器的 NXDOMAIN 响应,或者在解析 Amazon Route 53 记录时收到 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.

要使域名在互联网上重新可用,请将其从暂停状态中删除。以下是域名可能被暂停的最常见原因:

  • 您注册了一个新域名,但是未点击确认电子邮件中的链接。
  • 您关闭了该域名的自动续费,该域名已过期。
  • 您更改了注册联系人的电子邮件地址,但没有验证新的电子邮件地址是否有效。

有关更多信息,请参阅 My domain is suspended (status is 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 注册的域名,请参阅 Adding or changing name servers and glue records for a domain。如果是通过第三方注册的域名,请参阅提供商的文档,了解如何更新名称服务器的步骤。

确认请求的记录存在

查看域名的托管区是否包含所请求的记录。例如,如果您在尝试解析 www.example.com 时收到 NXDOMAIN 响应,那么请查看 example.com 托管区中是否有 www.example.com 记录。有关如何列出 Route 53 中的记录的步骤,请参阅 Listing records

如果您有一个 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 问题。当您配置多个级别的子域委派时,请严格遵守每个级别的委派。有关更多信息,请参阅 Routing traffic for additional levels of subdomains

确定 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 解析器规则。

使用解析器规则和私有托管区时

如果解析器规则和私有托管区的域名重叠,则优先采用解析器规则。有关更多信息,请参阅 Considerations when working with a private hosted zone。在这种情况下,DNS 查询将会发送到在解析器规则中配置为目标的目标 IP 地址。

使用私有托管区且没有解析器规则时

确认是否有私有托管区使用与 VPC 关联的匹配域名。例如,对于与 VPC 关联的域,您可能同时拥有公共托管区和私有托管区。这是分割视图 DNS 或水平分割 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 值。
  • SOA 记录中缓存 NXDOMAIN 响应的 TTL 值。

要确认此问题,请直接向名称服务器发送查询,以查看是否能收到响应。例如:

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