我无法使用 Amazon Route 53 中的入站或出站终端节点解析 DNS 记录。如何排查这些 DNS 解析失败问题?
解决方法
排查入站终端节点的问题
完成以下步骤,确保网络上的 DNS 解析程序可以使用入站终端节点将 DNS 查询转发给 Route 53 Resolver。
- 如果您需要本地 DNS 服务器将 DNS 查询转发到域的入站终端节点,则必须在本地 DNS 服务器上创建条件转发规则。此配置适用于私有托管区和公有域。
- 确认您已通过 AWS Direct Connect 连接或 VPN 连接到入站解析程序终端节点 IP 地址。此步骤验证您是否可以从本地网络访问入站解析程序终端节点 IP 地址。使用以下 telnet 命令测试端口 53 上入站终端节点解析程序 IP 地址之间的连通性:telnet <入站终端节点解析程序 IP 地址> 53。
- 检查与入站解析程序终端节点关联的安全组。安全组必须允许 TCP 和 UDP 端口 53 上来自本地 DNS 服务器 IP 地址的流量。
- 如果您将自定义网络访问控制列表(网络 ACL)与创建入站终端节点的子网一起使用,请确认网络 ACL 允许:
- 端口 53 上来自本地 DNS 服务器的入站 UPD 和 TCP 流量。
- 目标端口范围 1024-65535 上本地 DNS 服务器的出站 UDP 和 TCP 流量。
- 确认与创建入站终端节点解析程序的子网关联的路由表包含指向本地网络的路由。您可以通过 Direct Connect 连接或 VPN 配置路由。此路由允许入站终端节点解析程序返回 DNS 查询响应。
- 要验证域解析,请从本地 DNS 服务器或本地主机完成域名查找。
- 对于 Windows:nslookup <私有托管区域域名>
- 对于 Linux 或 macOS:dig <私有托管区域域名>
- 如果以前的命令无法返回记录,则可以绕过本地 DNS 服务器。使用以下命令将 DNS 查询直接发送到入站解析程序终端节点 IP 地址。
- 对于 Windows:nslookup <私有托管区域域名> @ <入站终端节点 IP 地址>
- 对于 Linux 或 macOS:dig <私有托管区域域名> @ <入站终端节点 IP 地址>
- 确认您的本地 DNS 服务器仅发送递归查询。Route 53 入站解析程序不支持迭代查询。
- 如果您要解析私有托管区中的记录,请确认入站解析程序终端节点和私有托管区与正确的 VPC 关联。
排查出站终端节点的问题
完成以下步骤,确保 Route 53 Resolver 使用出站终端节点有条件地将查询转发给网络上的解析程序。
- 确认您使用的是 Amazon 提供的 DNS。如果您在 VPC 中的实例上使用自定义 DNS 服务器,则必须配置 DNS 服务器,将私有 DNS 查询路由到 Amazon 提供的 VPC DNS 服务器的 IP 地址。此 IP 地址是位于 VPC 网络范围起始地址 + 2 位置的 IP 地址。
- 确认与出站解析程序终端节点关联的安全组的出口规则允许指向本地 DNS 服务器 IP 地址的 UDP 和 TCP 端口 53 流量。
- 如果您有网络 ACL 自定义规则与创建出站终端节点接口的子网对应,请确认这些规则允许:
- 端口 53 上指向本地 DNS 服务器的出站 UDP 和 TCP 流量。
- 来自临时端口范围 1024-65535 上本地 DNS 服务器的入站 UDP 和 TCP 流量。
- 确认与出站解析程序终端节点子网关联的路由表具有通往本地 DNS 服务器的路由。路由可以通过 Direct Connect 连接或 VPN 进行配置。
- 确定您的本地 DNS 服务器是否受防火墙保护。如果服务器受防火墙保护,则确认防火墙允许来自出站解析程序终端节点 IP 地址的流量。
- 请注意,如果您有私有托管区以及将流量路由到同域名的网络的 Resolver 规则,则 Resolver 规则优先。
- 请注意,Resolver 使用包含最具体域名的规则路由出站 DNS 查询。有关更多信息,请参阅 Resolver 如何确定查询中的域名是否匹配任意规则。
- 如果您使用的是共享规则,请确认共享规则与您的 VPC 关联。
- 使用 VPC 流日志捕获解析程序所用网络接口的流信息。按解析程序的名称进行筛选,查看解析程序的弹性网络接口的日志。