了解 Amazon RDS - Amazon Virtual Private Cloud

了解 Amazon RDS

身为 AWS 架构师或管理员,您会遇到的一种基本联网组件是 Amazon DNS 服务器,也称为 Route 53 Resolver。此 DNS 解析器服务原生集成到您所在 AWS 区域的每个可用区中,可为虚拟私有云(VPC)中的域名解析提供可靠且可扩展的解决方案。在本节中,您会了解到 Amazon DNS 服务器的 IP 地址、Amazon DNS 服务器可以解析的私有 DNS 主机名以及管理着 Amazon DNS 服务器使用的规则。

Amazon DNS 服务器

Route 53 Resolver(也称“Amazon DNS 服务器”或“AmazonProvidedDNS”)是一种 DNS 解析程序服务,内置于 AWS 区域内的每个可用区中。Route 53 Resolver 位于 169.254.169.253(IPv4)、fd00:ec2::253(IPv6)以及预置到“VPC+2”的主要私有 IPV4 CIDR 范围。例如,如果您 VPC 的 IPv4 CIDR 为 10.0.0.0/16、IPv6 CIDR 为 2001:db8::/32,则可通过 169.254.169.253(IPv4)、fd00:ec2::253(IPv6)或 10.0.0.2(IPv4)访问 Route 53 Resolver。VPC 内的资源使用链路本地地址进行 DNS 查询。这些查询会私下传输到 Route 53 Resolver,但在网络上不可见。在仅限 IPv6 子网中,只要“AmazonProvidedDNS”是 DHCP 选项集中的域名服务器,便仍可访问 IPv4 链路本地地址(169.254.169.253)。

当您将实例启动到 VPC 中时,我们会为该实例提供一个私有 DNS 主机名。如果该实例配置了一个公有 IPv4 地址并且启用了 VPC DNS 属性,我们还会提供一个公有 DNS 主机名。

私有 DNS 主机名的格式取决于您在启动 EC2 实例时如何配置它。有关私有 DNS 主机名类型的更多信息,请参阅 EC2 实例命名

您的 VPC 中的 Amazon DNS 服务器用于解析您在 Route 53 中的私有托管区域中指定的 DNS 域名。有关私有托管区域的更多信息,请参阅 Amazon Route 53 开发人员指南 中的使用私有托管区域

规则和注意事项

使用 Amazon DNS 服务器时,适用以下规则和注意事项。

  • 您无法使用网络 ACL 或安全组筛选进出 Amazon DNS 服务器的流量。

  • 使用 Hadoop 框架的服务(如 Amazon EMR)要求实例解析自己的完全限定域名 (FQDN)。这种情况下,如果 domain-name-servers 选项设置为自定义值,则 DNS 解析可能会失败。要确保正确解析 DNS,请考虑在您的 DNS 服务器添加条件转发服务器,将针对域 region-name.compute.internal 的查询转发到 Amazon DNS 服务器。有关更多信息,请参阅 Amazon EMR 管理指南中的设置 VPC 以托管集群

  • Amazon Route 53 Resolver 只支持递归 DNS 查询。

DNS 主机名

当您启动实例时,实例始终会收到一个私有 IPv4 地址和一个与其私有 IPv4 地址对应的私有 DNS 主机名。如果您的实例具有公有 IPv4 地址,则该实例 VPC 的 DNS 属性决定实例是否接收与公有 IPv4 地址对应的公有 DNS 主机名。有关更多信息,请参阅 VPC 中的 DNS 属性

启用 Amazon 提供的 DNS 服务器后,DNS 主机名按如下方式分配和解析。

私有 IP DNS 名称(仅 IPv4)

您可以使用私有 DNS 名称(仅限 IPv4)主机名在同一 VPC 中的实例之间进行通信。您可以解析其他 VPC 中其他实例的私有 IP DNS 名称(仅限 IPv4)主机名,只要这些实例位于同一 AWS 区域,并且其他实例的主机名位于 RFC 1918: 10.0.0.0 - 10.255.255.255 (10/8 prefix)172.16.0.0 - 172.31.255.255 (172.16/12 prefix)192.168.0.0 - 192.168.255.255 (192.168/16 prefix) 定义的私有地址空间范围内。

私有资源 DNS 名称

基于 RBN 的 DNS 名称,它可以解析为此实例选择的 A 和 AAAA DNS 记录。此 DNS 主机名在双堆栈和仅 IPv6 子网中的实例的实例详细信息中可见。有关 RBN 的更多信息,请参阅 EC2 实例主机名类型

公有 IPv4 DNS

对于 us-east-1 区域,公有(外部)IPv4 DNS 主机名采用 ec2-public-ipv4-address.compute-1.amazonaws.com 形式,对于其他区域,则采用 ec2-public-ipv4-address.region.compute.amazonaws.com 形式。Amazon DNS 服务器将公有 DNS 主机名解析为该实例在所在网络外的公有 IPv4 地址及其在所在网络内的私有 IPv4 地址。有关更多信息,请参阅《Amazon EC2 用户指南》中的公有 IPv4 地址和外部 DNS 主机名

VPC 中的 DNS 属性

以下 VPC 属性决定了为您的 VPC 提供的 DNS 支持。如果两项属性均启用,则如果在创建时为启动到 VPC 内的实例分配了公有 IPv4 地址或弹性 IP 地址,则该实例会接收公有 DNS 主机名。如果您为之前未启用两项属性的 VPC 启用这两项属性,则已经启动至该 VPC 的实例将接收公有 DNS 主机名(如果它们具有公有 IPv4 地址或弹性 IP 地址)。

要检查是否为 VPC 启用了这些属性,请参阅查看和更新 VPC 的 DNS 属性

属性 描述
enableDnsHostnames

确定 VPC 是否支持将公有 DNS 主机名分配给具有公有 IP 地址的实例。

除非 VPC 是默认 VPC,否则此属性的默认值为 false。请注意下面此属性的规则和注意事项

enableDnsSupport

确定 VPC 是否支持通过 Amazon 提供的 DNS 服务器进行 DNS 解析。

如果此属性是 true,对 Amazon 提供的 DNS 服务器的查询成功。有关更多信息,请参阅 Amazon DNS 服务器

此属性的默认值为 true。请注意下面此属性的规则和注意事项

规则和注意事项
  • 如果两个属性都设置为 true,则会发生以下情况:

    • 具有公有 IP 地址的实例会收到对应的公有 DNS 主机名。

    • Amazon Route 53 Resolver 服务器可以解析 Amazon 提供的私有 DNS 主机名。

  • 如果至少将某个属性设置为 false,将出现以下情况:

    • 具有公有 IP 地址的实例不会收到对应的公有 DNS 主机名。

    • Amazon Route 53 Resolver 无法解析 Amazon 提供的私有 DNS 主机名。

    • 如果 DHCP 选项集中存在自定义域名,则实例会收到自定义私有 DNS 主机名。如果您未使用 Amazon Route 53 Resolver 服务器,您的自定义域名服务器必须正确解析主机名。

  • 如果您使用在 Amazon Route 53 中的私有托管区域中定义的自定义 DNS 域名,或者使用具有接口 VPC 终端节点的私有 DNS (AWS PrivateLink),则必须将 enableDnsHostnamesenableDnsSupport 属性设置为 true

  • Amazon Route 53 Resolver 可以将私有 DNS 主机名解析为全部地址空间内的私有 IPv4 地址,包括您的 VPC 的 IPv4 地址范围不在 RFC 1918 指定的私有 IPv4 地址范围内的情况。但是,如果您在 2016 年 10 月之前创建了 VPC,并且您的 VPC 的 IPv4 地址范围不在这些地址范围内,则 Amazon Route 53 Resolver将无法解析私有 DNS 主机名。要支持这种情况,请联系 AWS Support

  • 如果您使用 VPC 对等,则必须为两个 VPC 都启用这两个属性,并且必须为对等连接启用 DNS 解析。有关更多信息,请参阅实现对 VPC 对等连接的 DNS 解析

DNS 配额

每个 EC2 实例可以每秒为每个网络接口向 Route 53 Resolver(具体指 .2 地址,例如,10.0.0.2 和 169.254.169.253)发送 1024 个数据包。无法提高此配额。由 Route 53 Resolver 支持的每秒 DNS 查询数量因查询类型、响应大小和所用协议而异。有关可扩展 DNS 架构的更多信息和建议,请参阅具有 Active Directory 的 AWS 混合 DNS 技术指南。

如果您达到配额,Route 53 Resolver 将拒绝流量。达到配额的部分原因可能是 DNS 限制问题,或者是使用 Route 53 Resolver 网络接口的实例元数据查询。有关如何解决 VPC DNS 限制问题的信息,请参阅如何确定对 Amazon 提供的 DNS 服务器的 DNS 查询是否由于 VPC DNS 限制而失败。有关实例元数据检索的更多信息,请参阅《Amazon EC2 用户指南》中的检索实例元数据

私有托管区域

要使用自定义 DNS 域名(如 example.com)而不是使用私有 IPv4 地址或AWS提供的私有 DNS 主机名来访问您的 VPC 中的资源,您可以在 Route 53 中创建一个私有托管区域。私有托管区域就是一个容器,其中包含的信息说明您希望如何在一个或多个 VPC 中为某个域及其子域路由流量而不将您的资源公开到 Internet。您可以创建 Route 53 资源记录集,用来确定 Route 53 将如何响应对您的域及其子域的查询。例如,如果您希望将对 example.com 的浏览器请求路由到您 VPC 中的某个 Web 服务器,可以在您的私有托管区域中创建一条 A 记录并指定该 Web 服务器的 IP 地址。有关创建私有托管区域的更多信息,请参阅 Amazon Route 53 开发人员指南 中的使用私有托管区域

要使用自定义 DNS 域名访问资源,必须连接到您的 VPC 中的实例。在您的实例中,您可通过使用 ping 命令来测试是否可从私有托管区域中的资源的自定义 DNS 名称访问该资源;例如,ping mywebserver.example.com。(您必须确保您的实例的安全组规则允许入站 ICMP 流量才能使 ping 命令正常运行。)

私有托管区域不支持 VPC 外的传递关系;例如,您不能使用资源的自定义私有 DNS 名称从 VPN 连接的另一端访问资源。

重要

如果您使用在 Amazon Route 53 中的私有托管区域中定义的自定义 DNS 域名,则必须将 enableDnsHostnamesenableDnsSupport 属性设置为 true