如何测试我的委派子域是否正确解析?

3 分钟阅读
0

我想要测试并确认我的委派子域是否正确解析。如果子域未正确解析,那么我想对其进行故障排除。

简短描述

您可以使用 Amazon Route 53 或第三方 DNS 提供商为顶点域(例如 example.com)配置父区域。您也可以使用您的 DNS 提供商为子域(例如 www.example.com)设置委派集。

如果您为子域使用单独的委派集,则可以具有以下配置:

  • 均使用 Route 53 的顶点域和子域
  • 使用第三方 DNS 服务的顶点域和使用 Route 53 的子域
  • 使用 Route 53 的顶点域和委派给第三方 DNS 服务的子域

要验证您的子域是否正确解析并根据需要进行故障排除,请根据您的 DNS 提供商和配置完成以下步骤。

解决方法

注意: 以下命令仅适用于 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例。如果您使用 Amazon EC2 for Windows,则可以使用 DiG GUIDig Web 界面等第三方 Web 工具进行故障排除。

均使用 Route 53 的顶点域和子域

1.    要检查您的子域是否正确解析,请运行 dig 命令:

dig RECORD_TYPE DESIRED_SUBDOMAIN_RECORD

**注意:**请将 RECORD_TYPEDESIRED_SUBDOMAIN_RECORD 替换为您的相关详细信息。

2.    在输出中,验证您在子域的托管区下是否有您选择的记录类型。在以下示例输出中,子域下有 www.example.com 的 A 记录:

$ dig www.example.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48170
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.example.com.                IN         A
;; ANSWER SECTION:
www.example.com.     60          IN         A          127.0.0.1

3.    如果针对其他 DNS 服务器的查找成功,则您的本地解析器可能存在缓存问题。要绕过本地解析器,请使用另一个解析器和您的域名运行 dig @ 命令。例如,以下查找使用 Google 的公共解析器:

dig @8.8.8.8 www.example.com

直接针对顶点域托管区的权威 AWS 名称服务器之一执行查找:

dig @ns-***.awsdns-**.com www.example.com

4.    如果 DNS 查找失败,请使用 dig +trace 命令:

dig +trace www.example.com

然后,查看输出以确定 DNS 链中查找失败的位置。请参阅 dig +trace 命令的以下输出示例:

$dig +trace www.example.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.56.amzn1 <<>> +trace www.example.com
;; global options: +cmd
.                                   518400 IN         NS        G.ROOT-SERVERS.NET.
.....
.                                   518400 IN         NS        F.ROOT-SERVERS.NET.
;; Received 228 bytes from 169.xxx.xxx.xxx#53(169.xxx.xxx.xxx) in 21 ms
com.                            172800 IN         NS        c.gtld-servers.net.
.....
com.                            172800 IN         NS        i.gtld-servers.net.
;; Received 498 bytes from 199.xxx.xxx.xxx #53(199.xxx.xxx.xxx) in 198 ms
.example.com.   172800          IN         NS        ns-xxx.awsdns-xx.com.
.example.com.   172800          IN         NS        ns-xxx.awsdns-xx.net.
.example.com.   172800          IN         NS        ns-xxx.awsdns-xx.co.uk.
.example.com.   172800          IN         NS        ns-xxx.awsdns-xx.org.
;; Received 207 bytes from 192.xxx.xxx.xxx #53(192.xxx.xxx.xxx) in 498 ms
www.example.com.     172800 IN         NS        ns-xxx.awsdns-xx.com.
www.example.com.     172800 IN         NS        ns-xxx.awsdns-xx.net.
www.example.com.     172800 IN         NS        ns-xxx.awsdns-xx.co.uk.
www.example.com.     172800 IN         NS        ns-xxx.awsdns-xx.org.
;; Received 175 bytes from 205.xxx.xxx.xxx #53(205.xxx.xxx.xxx) in 345 ms
www.example.com.     900      IN         SOA      ns-xxx.awsdns-xx.com. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
$ dig www.example.com.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22072
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
www.example.com.com.          IN         A
;; AUTHORITY SECTION:
www.example.com.com. 60       IN         SOA      ns-xxx.awsdns-xx.com. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

5.    根据输出中的信息,按照相关的故障排除步骤进行操作。

dig 返回 NOERROR 状态,没有 ANSWER 部分,而 dig +trace 输出仅包含顶点域的名称服务器

您的顶点域的托管区中缺少您的委派子域的 NS 记录。此外,根域下子域的记录类型错误。例如,列出了 MX 记录而不是 A 记录。

要解决此问题,请使用正确的名称服务器在顶点域的托管区下为子域创建 NS 记录。此外,删除顶点域的托管区下子域的非 NS 记录。然后,将非 NS 记录放在子域的托管区下。

dig 返回 NXDOMAIN 状态,而 dig +trace 输出仅包括顶点域的名称服务器

您的顶点域的托管区下缺少委派子域的 NS 记录。

要解决此问题,请使用正确的名称服务器在顶点域的托管区下创建 NS 记录。

dig +trace 返回您的委派子域的名称服务器,而 dig 返回 NOERROR 状态且没有 ANSWER 部分

托管区包含的记录类型与您的委派子域不符。例如,子域的托管区下存在一个 TXT 记录,而不是您的子域的 A 记录。

要解决此问题,请在子域的托管区下为委派子域创建新的 A 记录。

dig +trace 返回委派子域的名称服务器,而 dig 返回 SERVFAIL 状态

您的顶点域的托管区下您的委派子域的 Route 53 名称服务器在 NS 记录中不正确。使用 dig @ 命令确认对委派子域的其中一个名称服务器执行的 DNS 查找存在此问题。错误的名称服务器返回 REFUSED 状态。

要解决此问题,请使用您的子域的托管区的正确名称服务器修改 NS 记录。

使用第三方 DNS 服务的顶点域和使用 Route 53 的子域

1.    检查子域的名称服务器在父区域中是否正确配置。

2.    如果名称服务器未正确配置,请查找您的子域的托管区的 NS 记录。然后,使用第三方 DNS 提供商将这些记录添加到顶点域的托管区或区域文件。

3.    要验证子域是否正确解析,请对子域的托管区名称服务器使用 dig @ 命令:

dig @ns-***.awsdns-**.com www.example.com

注意:如果 DNS 解析失败,请按照均使用 Route 53 的顶点域和子域的步骤 4 中的方法进行操作。

使用 Route 53 的顶点域和委派给第三方的子域

1.    检查子域的名称服务器在父区域中是否正确配置。

2.    如果名称服务器未正确配置,请在 Route 53 中您的顶点域的托管区下添加 NS 记录。

3.    要验证子域是否正确解析,请在第三方 DNS 服务的权威名称服务器上使用 dig @ 命令:

dig @THIRD_PARTY_NAME_SERVER www.example.com

注意:如果 DNS 解析失败,请按照均使用 Route 53 的顶点域和子域的步骤 4 中的方法进行操作。

相关信息

如何为 Route 53 中托管的域创建子域?

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