如何解决 Route 53 私有托管区的 DNS 解析问题?

2 分钟阅读
0

我在 Amazon Route 53 中为我的域创建了一个私有托管区。但是,DNS 在我的虚拟私有云(VPC)中不起作用。

解决方法

**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新版本的 AWS CLI

  1. 确认相应的 VPC ID 与私有托管区相关联。使用 AWS CLI 命令 get-hosted-zone 获取与您的托管区关联的 VPC 列表。或者,使用 list-hosted-zone-by-vpc 获取与某一 VPC 关联的私有托管区列表。
    **注意:**确保您从同一 VPC 中查询该域。

  2. 确认在您的 VPC 中将 DNS 主机名DNSSupport 参数设置为。为此,请检查您的 VPC 设置

  3. 检查 VPC 设置,验证您是否在 DHCP 选项集中配置了自定义 DNS 服务器。如果已配置,请确认 DNS 服务器已设置为将针对私有域的 DNS 查询转发到您 VPC 中的 Amazon 提供的 DNS 服务器。例如,如果您的 VPC 的 CIDR 范围为 10.0.0.0/16,那么 VPC DNS 服务器的 IP 地址为 10.0.0.2。IP 地址是 VPC 网络范围加 2。
    **注意:**只能通过 VPC DNS 解析私有托管区。

  4. 查看您的源实例的解析器配置设置。

    • 对于 Linux 实例,使用 cat/etc/resolv.confcat/etc/hosts 文件。
    • 对于 macOS,请参阅 macOS 用户指南中的在 Mac 上更改 DNS 设置
    • 对于 Windows,请完成以下步骤:
      选择开始 > 网络和互联网设置
      高级网络设置下选择更改适配器选项
      右键单击网络连接,然后选择属性
      选择 IPv4 属性,然后在 DNS 服务器地址中输入首选的 DNS IP 地址。

    示例:您可以在 resolv.conf 中配置轮换选项,以便在 Amazon 提供的 DNS 服务器和公有名称服务器之间对 DNS 查询进行负载均衡。此配置会导致间歇性 DNS 解析。到达与您的私有托管区关联的 VPC DNS 解析器的查询得到解决。路由到公用名称服务器的查询失败。

  5. 检查是否有多个命名空间重叠的私有托管区,例如 example.comtest.example.com。如果存在重叠的命名空间,那么解析器将会根据最具体的匹配将流量路由到托管区。如果有匹配的区域但没有与域名和类型匹配的记录,那么解析器会向客户端返回 NXDOMAIN(不存在的域)。在这种情况下,解析器不会将请求转发给其他区域或公有 DNS 解析器。确认在最具体的私有托管区中配置了正确的记录,以成功进行 DNS 解析。

  6. 确认您在父域的私有托管区中没有为子域配置 NS 记录
    **注意:**在私有托管区中,不支持名称服务器(NS)记录来为子域委派职责。

  7. 确认您配置了私有托管区支持的路由策略。支持的路由策略是:

    • 简单路由
    • 失效转移路由
    • 多值应答路由
    • 加权路由
    • 基于延迟的路由
    • 地理位置路由
  8. 确认您使用的是带有出站端点的解析器。如果同时满足以下两个条件,则解析器规则具有优先权:

    • 您有一条解析器规则,将流量路由到您私有托管区的域的网络。
    • 您有一条与同一 VPC 关联的解析器规则,该 VPC 还与私有托管区相关联。

    有关详细信息,请参阅解决 VPC 与您的网络之间的 DNS 查询

  9. 确认解析器规则和 VPC 的入站端点未导致查询循环。如果您执行以下操作,则会创建循环:

    • 在解析器转发规则中创建指向 VPC 的入站端点的目标 IP 地址。
    • 将端点与私有托管区相关联,并且
    • 将相同的解析器规则与 VPC 相关联。
  10. 确认本地解析器发送了递归请求。在 DNS 解析器(本地)上使用抓包来验证解析类型。然后,查看 DNS 标志(所需的递归 = 0)。您也可以通过使用 +norecurse 和 dig 命令发送迭代请求来测试解析,或者使用 nslookup 设置“norecurse”。

  11. 确认您为 Amazon 提供的 DNS 配置了正确的规则优先级。通常,最具体的规则最优先。如果规则处于同一级别,那么优先级分别为解析器规则、私有托管区规则和内部规则。

相关信息

使用私有托管区

我需要激活哪些 Amazon VPC 选项才能使用我的私有托管区?

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