如何解决使用 Route 53 作为 DNS 服务时的 NXDOMAIN 响应问题?
我收到来自 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 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前