跳至内容

为什么我无法通过 Amazon VPC 对等连接解析域名?

2 分钟阅读
0

我无法通过 Amazon Virtual Private Cloud (Amazon VPC) 对等连接解析域名。

解决方法

如果您使用 AmazonProvidedDNS 配置了 Amazon VPC,但无法通过对等连接解析域名,请针对您的配置完成解析。

您的域名解析到对等 VPC 中创建的 Amazon EC2 实例的公共 DNS

要将公共域名解析到 Amazon Elastic Compute Cloud (Amazon EC2) 实例的私有 IP 地址,请为 VPC 对等连接启用 DNS 解析。然后,运行以下命令检查公共 DNS 是否解析到 EC2 实例的私有 IP 地址:

dig ec2-35-88-61-144.us-west-2.compute.amazonaws.com +short

输出示例:

172.31.12.97

通过 VPC 对等连接访问公共 Amazon RDS 数据库实例

如果您创建的 Amazon Relational Database Service (Amazon RDS) 数据库实例启用了公共访问,则 Amazon RDS 会为该数据库分配一个公共 IP 地址。将 RDS 端点解析到公共 IP 地址,VPC 之外的其他资源都可以连接到您的数据库。

要通过 VPC 对等连接私下访问公共 RDS 端点,请为 VPC 对等连接启用 Requester DNS resolution(请求方 DNS 解析)和 Accepter DNS resolution(接受方 DNS 解析)选项。

要检查您是否可以私下访问公共 RDS 端点,请运行类似以下示例的命令:

dig database-test.1234abcde-east-1.rds.amazonaws.com +short

输出示例:

ec2-35-88-61-144.us-west-2.compute.amazonaws.com
172.31.12.97

如果遇到 DNS 解析问题,请执行以下操作:

  • 验证源 VPC 和目标 VPC ID。
  • 确认源 VPC 和目标 VPC 之间是否存在活动的对等连接。
  • 检查对等连接的 DNS 配置。确保请求方接受方 VPC 均已启用 DNS 解析。
  • 验证解析到的公共域名是否存在。检查目标 VPC,确保存在具有域名中提及的公共 IP 地址的实例。
  • 验证 VPC 中的 DNS 配置是 AmazonProvidedDNS 还是 CustomDNS。如果使用自定义 DNS,请验证自定义 DNS 能否解析公共实例的域名。如果自定义 DNS 无法解析域名,则要么添加静态 DNS 记录,要么将查询重定向到 AmazonProvidedDNS

您的域名解析到对等 VPC 中创建的服务的域名

服务端点域名(例如 ssm.us-east-1.amazonaws.com)会解析到公共 IP 地址。即使对等 VPC 中创建的接口端点启用了私有 DNS 选项,也是如此。从创建接口端点的 VPC 内查询时,这些名称才会解析到私有 IP 地址。

要从对等 VPC 将端点域名解析到端点私有 IP 地址,您必须具备正确的 DNS 架构。

以您在 VPC A 上配置接口 VPC 端点为例。要从 VPC B 将服务域名解析到 VPC A 中的接口 VPC 端点 IP 地址,请完成以下步骤:

  1. PrivateDNS 关闭的情况下为服务创建接口端点。
  2. 使用服务域名创建私有托管区,例如 ssm.us-east-1.amazonaws.com。通过用于创建接口端点的 AWS 账户创建该区域。
  3. 确保为对等连接中的两个 VPC 启用 DNS 主机名和 DNS 解析。
  4. 创建别名记录,将服务域名指向接口端点 DNS 的区域端点,例如 vpce-057d3426e21755b8a-svk1k3tm.ssm.us-east-1.vpce.amazonaws.com。或者创建一条记录,将服务域名指向 VPC A 中创建的接口 VPC 端点的私有 IP 地址。
  5. Associate the private hosted zone that you created to the peered VPC(将创建的私有托管区与对等 VPC 关联)。如果 VPC B 是跨账户的,请参阅如何将 Amazon Route 53 私有托管区与其他账户中的 VPC 关联?

如果仍然无法从对等 VPC 将端点域名解析到端点私有 IP 地址,请执行以下操作:

  • 验证源 VPC 和目标 VPC ID。
  • 确保源 VPC 和目标 VPC 之间存在活动的对等连接。
  • 确保对等连接中的两个 VPC 均已启用 DNS 主机名和 DNS 解析。
  • 验证您在 VPC 中配置的 DNS 是 AmazonProvidedDNS 还是 CustomDNS。如果使用自定义 DNS,请验证自定义 DNS 能否解析域名。如果自定义 DNS 无法解析域名,请添加静态 DNS 记录。如果并未解决问题,请配置自定义 DNS 以将查询转发到 AmazonProvidedDNS
  • 验证两个对等 VPC 是否均已关联到创建域名记录的同一私有托管区。
  • 确保记录指向正确的 VPC 端点区域特定域或接口端点 IP 地址。

您在私有托管区中创建了自定义域名

以下场景可能会导致通过 VPC 对等连接解析自定义域名时出现问题:

  • 您为自定义域名创建了私有托管区,用于将域解析到私有托管区中创建的记录。
  • 您将 VPC A 关联到了私有托管区。
  • 您建立了从 VPC B 到 VPC A 的对等连接。

要解决这些问题,请将 VPC B 关联到创建记录的自定义域的私有托管区。完成关联后,两个对等 VPC 中的资源均可解析私有托管区中的自定义域名。

如果将 VPC B 关联到私有托管区后仍遇到问题,请执行以下操作:

  • 验证源 VPC 和目标 VPC ID。
  • 验证 VPC 中配置的 DNS 是 AmazonProvidedDNS 还是 CustomDNS。如果使用自定义 DNS,则无法解析到托管在私有托管区中的记录。要更正此问题,请在自定义 DNS 上添加静态域名记录。或者,配置自定义 DNS 以将查询转发到 AmazonprovidedDNS
  • 如果使用 Amazon 提供的 DNS,请验证您尝试解析的域以及该域托管在 Route 53 还是本地。
    **注意:**如果托管在本地,请确保您已正确配置 outbound resolver endpoint used to forward the query(用于将查询转发到本地 DNS 的出站解析器端点)。如果托管在 Route 53 私有托管区,请验证是否已将源 VPC 关联到私有托管区。源 VPC 是指您尝试解析自定义域名的位置。
  • 确保您尝试解析的完全限定域名 (FQDN) 已在私有托管区中创建了记录。
AWS 官方已更新 8 个月前