排查常见的私有 DNS 域验证问题 - Amazon Virtual Private Cloud
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

排查常见的私有 DNS 域验证问题

要使用 Amazon VPC 验证终端节点服务私有 DNS 域名,请使用 Amazon VPC 控制台或 API 启动该过程。本节包含有可帮助解决验证过程问题的信息。

常见的域验证问题

如果您尝试验证域但遇到问题,请查看下面的可能原因和解决方法。

  • 您正在尝试验证您不拥有的域。除非您拥有域,否则您无法验证域。

  • 您的 DNS 提供商不允许在 TXT 记录名称中使用下划线。某些 DNS 提供商不允许在域的 DNS 记录名称中包含下划线字符。如果提供商有此要求,可以省略 TXT 记录名称中的 _amazovpc

  • 您的 DNS 提供商已将域名附加到 TXT 记录的末尾。某些 DNS 提供商会自动将您的域名附加到 TXT 记录的属性名称中。例如,如果您创建一个属性名称为 _amazonvpc.example.com 的记录,提供商可能会附加域名,最终的属性名称将为 _amazonvpc.example.com.example.com。要避免域名重复,您可以在创建 TXT 记录时在域名结尾添加句点。此步骤告知 DNS 提供商没有必要将域名附加到 TXT 记录。

  • 您的 DNS 提供商修改了 DNS 记录值。某些提供商会自动修改 DNS 记录值以仅使用小写字母。我们仅在您的域检测到其属性值与您启动域所有权验证流程时提供的值完全匹配的验证记录时才验证您的域。如果域的 DNS 提供商将 TXT 记录值更改为仅使用小写字母,请与 DNS 提供商联系获取更多帮助。

  • 您需要多次验证同一个域。您可能需要从不同 AWS 区域发送或使用同一个域从多个 AWS 账户发送,因而需要多次验证您的域。如果 DNS 提供商不允许您拥有多条具有相同属性名称的 TXT 记录,您仍可以验证两个域。如果 DNS 提供商允许,可以将多个属性值分配到同一条 TXT 记录。例如,如果 DNS 由 Amazon Route 53 管理,可以按照以下步骤为同一条 TXT 记录设置多个值:

    1. 在 Route 53 控制台中,选择在验证第一个区域中的域时创建的 TXT 记录。

    2. Value (值) 框中,转到现有属性值的末尾,然后按 Enter。

    3. 添加附加区域的属性值,然后保存记录集。

    如果 DNS 提供商不允许向同一条 TXT 记录分配多个值,则可以使用 TXT 记录的属性名称中的值来验证域一次,而另一次使用从属性名称中删除的值来验证域。例如,您使用“_asnbcdasd”进行验证,然后使用“asnbcdasd”进行验证。此解决方案的缺点是只能对同一个域验证两次。

如何检查域验证设置

您可以使用以下过程验证您的私有 DNS 名称域所有权验证 TXT 记录是否正确发布到您的 DNS 服务器。此过程使用 nslookup 工具,目前支持的平台有 Windows 和 Linux。在 Linux 上,您也可以使用 dig

这些说明中的命令在 Windows 7 中执行,我们使用的示例域为 example.com

在此过程中,您首先要查找适用于您的域的 DNS 服务器,然后查询这些服务器以查看 TXT 记录。您查询适用于您的域的 DNS 服务器,因为这些服务器包含适用于您的域的最新信息,这可能需要一定时间才会传播到其他 DNS 服务器。

验证您的域所有权验证 TXT 记录已发布到您的 DNS 服务器

  1. 通过采取以下步骤查找您的域的名称服务器。

    1. 进入命令行。要进入 Windows 7 中的命令行,请选择开始,然后输入 cmd。在基于 Linux 的操作系统中,打开终端窗口。

    2. 在命令提示符处,输入以下命令,其中 <domain> 是您的域。

      nslookup -type=NS <domain>

      例如,如果您的域是 example.com,则命令如下所示。

      nslookup -type=NS example.com

      命令的输出将列出可用于您的域的名称服务器。您将在下一步骤中查询这些服务器之一。

  2. 通过采取以下步骤,验证 TXT 记录已正确发布。

    1. 在命令提示符处,输入以下命令,其中 <domain> 是您的域,<name server> 是您在步骤 1 中找到的某个名称服务器。

      nslookup -type=TXT _aksldja21i1.<domain> <name server>

      _aksldja21i1.example.com 示例中,如果我们在步骤 1 中找到的名称服务器名为 ns1.name-server.net,则输入以下内容。

      nslookup -type=TXT _aksldja21i1.example.com ns1.name-server.net
    2. 在命令的输出中,请验证 text = 后的字符串与在 Amazon VPC 控制台的身份列表中选择域时看到的 TXT 值匹配。

      在本示例中,我们正在 _aksldja21i1.example.com 下寻找值为 asjdakjshd78126eu21 的 TXT 记录。如果记录已正确发布,我们希望命令具有以下输出。

      _aksldja21i1.example.com text = "asjdakjshd78126eu21"