Amazon Virtual Private Cloud
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

在您的 VPC 中使用 DNS

域名系统 (DNS) 是 Internet 中名称使用的标准,以将名称解析到各自相应的 IP 地址。DNS 主机名是可以唯一并绝对区分计算机的名称;它由主机名和域名组成。DNS 服务器会将 DNS 主机名称解析到其相应的 IP 地址。

公有 IPv4 地址可实现 Internet 间的通信,而私有 IPv4 地址可实现实例 (EC2-Classic 或 VPC) 网络内的通信。有关更多信息,请参阅 您的 VPC 中的 IP 地址

我们提供 Amazon DNS 服务器。要使用您自己的 DNS 服务器,请为您的 VPC 创建一组新的 DHCP 选项。有关更多信息,请参阅 DHCP 选项集

DNS 主机名

当您将实例启动到默认 VPC 中时,我们为实例提供与其公有 IPv4 和私有 IPv4 地址对应的公有和私有 DNS 主机名。当您在非默认 VPC 中启动实例时,我们会为实例提供私有 DNS 主机名,并根据您为 VPC 指定的 DNS 属性以及您的实例是否具有公有 IPv4 地址来决定是否提供公有 DNS 主机名。

Amazon 提供的私有 (内部) DNS 主机名解析为实例的私有 IPv4 地址,并对 us-east-1 区域采用 ip-private-ipv4-address.ec2.internal 形式,对其他区域采用 ip-private-ipv4-address.region.compute.internal 形式 (其中 private.ipv4.address 是反向查找 IP 地址)。您可以使用私有 DNS 主机名在同一网络中实现实例之间的通信,但我们无法解析实例所在网络之外的 DNS 主机名。

对于 us-east-1 区域,公有 (外部) DNS 主机名采用 ec2-public-ipv4-address.compute-1.amazonaws.com 形式,对于其他区域,则采用 ec2-public-ipv4-address.region.amazonaws.com 形式。我们将公有 DNS 主机名解析为该实例在所在网络外的公有 IPv4 地址及其在所在网络内的私有 IPv4 地址。

我们不为 IPv6 地址提供 DNS 主机名。

VPC 中的 DNS 支持

您的 VPC 属性中会决定您的实例是否接收公有 DNS 主机名,以及是否支持通过 Amazon DNS 服务器进行 DNS 解析。

属性 说明
enableDnsHostnames

指明在 VPC 内启动的实例是否可获得公有 DNS 主机名。

如果此属性为 true,VPC 中的实例将获取公有 DNS 主机名,但前提是 enableDnsSupport 属性也设置为 true

enableDnsSupport

指明 VPC 是否支持 DNS 解析。

如果此属性为 false,则不启用 VPC 中由 Amazon 提供的、将公有 DNS 主机名称解析为 IP 地址的 DNS 服务器。

如果此属性为 true,则通过 169.254.169.253 IP 地址或是在 VPC IPv4 网络范围基础上“+2”的预留 IP 地址来查询 Amazon 提供的 DNS 服务器将会成功。有关更多信息,请参阅 Amazon DNS 服务器

如果两个属性都设置为 true,则会发生以下情况:

  • 您的实例会收到一个公有 DNS 主机名。

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

如果其中一个或两个属性设置为 false,则会发生以下情况:

  • 您的实例不会收到公有 DNS 主机名。

  • Amazon 提供的 DNS 服务器无法解析 Amazon 提供的私有 DNS 主机名。

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

默认情况下,在默认 VPC 或 VPC 向导创建的 VPC 中,两个属性都设置为 true。默认情况下,只有在使用 VPC 控制台的 Your VPCs 页面创建的 VPC 中,或者在使用 AWS CLI、API 或 AWS 开发工具包创建的 VPC 中,enableDnsSupport 属性才设置为 true

Amazon DNS 服务器可以将私有 DNS 主机名解析为全部地址空间内的私有 IPv4 地址,包括您的 VPC 的 IPv4 地址范围不在 RFC 1918 指定的私有 IPv4 地址范围内的情况。

重要

如果您在 2016 年 10 月之前创建 VPC,并且您的 VPC 的 IPv4 地址范围不在 RFC 1918 所指定的私有 IPv4 地址范围内,则 Amazon DNS 服务器将无法解析私有 DNS 主机名。如果您希望 Amazon DNS 服务器能够对这些 IP 地址解析私有 DNS 主机名,请联系 AWS Support

如果您在之前不支持 DNS 主机名和 DNS 支持的 VPC 中启用这两项内容,则您已经启动至该 VPC 中、具有公有 IPv4 地址或弹性 IP 地址的某个实例会获得一个公有 DNS 主机名。

有关对专用托管区域的 DNS 支持的信息,请参阅使用私有托管区域

查看您的 EC2 实例的 DNS 主机名称

您可以使用 Amazon EC2 控制台或命令行查看运行实例或网络接口的 DNS 主机名。

实例

使用控制台查看实例的 DNS 主机名称

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 从列表中选择您的 实例。

  4. 在详细信息窗格中,Public DNS (IPv4)Private DNS 字段显示 DNS 主机名 (如适用)。

使用命令行查看实例的 DNS 主机名

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon VPC

网络接口

使用控制台查看网络接口的私有 DNS 主机名

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Network Interfaces

  3. 从列表中选择网络接口。

  4. 在详细信息窗格中,Private DNS (IPv4) 字段显示私有 DNS 主机名。

使用命令行查看网络接口的 DNS 主机名

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon VPC

更新您的 VPC 的 DNS 支持

您可以通过 Amazon VPC 控制台查看并更新您的 VPC 中的 DNS 支持属性。

使用控制台描述和更新 VPC 的 DNS 支持

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Your VPCs

  3. 从列表中选择 VPC。

  4. 查看 Summary (摘要) 选项卡中的信息。在这个例子中,两项设置都已被启用。

    DNS 设置选项卡
  5. 要更新这些设置,请选择 Actions 并选择 Edit DNS ResolutionEdit DNS Hostnames。在打开的对话框中选择 YesNo,然后选择 Save

使用命令行说明 VPC 的 DNS 支持

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon VPC

使用命令行更新 VPC 的 DNS 支持

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon VPC

使用私有托管区域

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

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

您可以从通过 ClassicLink 链接到您的 VPC 的 EC2-Classic 实例访问私有托管区域,前提是您为 VPC 启用了 ClassicLink DNS 支持。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的启用 ClassicLink DNS 支持。否则,私有托管区域不支持 VPC 外的传递关系;例如,您不能使用资源的自定义私有 DNS 名称从 VPN 连接的另一端访问资源。

重要

如果您使用的是在 Amazon Route 53 中的私有托管区域中定义的自定义 DNS 域名,则必须将以下 VPC 属性设置为 trueenableDnsHostnamesenableDnsSupport。有关更多信息,请参阅 更新您的 VPC 的 DNS 支持