

# Amazon VPC 中的 DHCP 选项集
<a name="VPC_DHCP_Options"></a>

VPC 中的网络设备使用动态主机配置协议（DHCP）。您可以使用 DHCP 选项集控制虚拟网络中网络配置的以下方面：
+ VPC 中设备使用的 DNS 服务器、域名或网络时间协议（NTP）服务器。
+ 您的 VPC 是否启用了 DNS 解析。

**Topics**
+ [什么是 DHCP？](#DHCPOptionSets)
+ [DHCP 选项集概念](DHCPOptionSetConcepts.md)
+ [使用 DHCP 选项集](DHCPOptionSet.md)

## 什么是 DHCP？
<a name="DHCPOptionSets"></a>

TCP/IP 网络上的每台设备都需要一个 IP 地址才能通过网络进行通信。过去，IP 地址必须手动为网络中的每台设备分配。如今，您可以由 DHCP 服务器使用动态主机配置协议（DHCP）来动态分配 IP 地址。

在 EC2 实例上运行的应用程序可以根据需要与 Amazon DHCP 服务器通信，以检索其 IP 地址租约或其他网络配置信息（例如 Amazon DNS 服务器的 IP 地址或 VPC 中路由器的 IP 地址）。

您可以通过使用 DHCP 选项集指定 Amazon DHCP 服务器提供的网络配置。

如果 VPC 配置要求应用程序直接向 Amazon IPv6 DHCP 服务器发出请求，请注意以下各项：
+ 双堆栈子网中的 EC2 实例只能从 IPv6 DHCP 服务器检索其 IPv6 地址。*它无法从 IPv6 DHCP 服务器检索任何其他联网配置，例如 DNS 服务器名称或域名。*
+ 仅使用 IPv6 的子网中的 EC2 实例可以从 IPv6 DHCP 服务器检索其 IPv6 地址，*并可以检索其他联网配置信息，例如 DNS 服务器名称和域名。*
+ 对于仅限 IPv6 子网中的 EC2 实例，如果 DHCP 选项集中明确提及“AmazonProvidedDNS”，则 IPv4 DHCP Server 将返回 169.254.169.253 作为域名服务器。如果选项集中缺少“AmazonProvidedDNS”，则无论选项集中是否提及其他 IPv4 域名服务器，IPv4 DHCP Server 都不会返回地址。

Amazon DHCP 服务器还可以使用前缀委派为 VPC 中的网络接口提供完整的 IPv4 或 IPv6 前缀（请参阅《*Amazon EC2 用户指南*》中的[为 Amazon EC2 网络接口分配前缀](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html)）。DHCP 响应中不提供 IPv4 前缀委派。可以使用 IMDS 检索分配给接口的 IPv4 前缀（请参阅《*Amazon EC2 用户指南*》中的[实例元数据类别](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-categories))。

# DHCP 选项集概念
<a name="DHCPOptionSetConcepts"></a>

*DHCP 选项集*是 VPC 中的资源实例使用的一组网络设置（例如 EC2 实例），以用于通过您的虚拟网络进行通信。

每个区域都有默认的 DHCP 选项集。除非您创建自定义 DHCP 选项集并将其与 VPC 关联，或者在未没有 DHCP 选项集的情况下配置 VPC，否则每个 VPC 都会使用其区域的默认 DHCP 选项集。

如果您的 VPC 未配置 DHCP 选项集：
+ 对[基于 Nitro System 构建的 EC2 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-hypervisor-type)，AWS 将 `169.254.169.253` 配置为默认域名服务器。
+ 对[基于 Xen 构建的 EC2 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-hypervisor-type)，将不配置域名服务器，并且由于 VPC 中的实例无法访问 DNS 服务器，这些实例将无法访问互联网。

您可以有将一个 DHCP 选项集与多个 VPC 关联，但每个 VPC 只能有一个关联的 DHCP 选项集。

如果您删除一个 VPC，与该 VPC 关联的 DHCP 选项集将与该 VPC 解除关联。

**Topics**
+ [默认 DHCP 选项集](#ArchitectureDiagram)
+ [自定义 DHCP 选项集](#CustomDHCPOptionSet)

## 默认 DHCP 选项集
<a name="ArchitectureDiagram"></a>

默认 DHCP 选项集包含了以下设置：
+ **域名服务器**：供网络接口用于域名解析的 DNS 服务器。对于默认 DHCP 选项集，这始终是 `AmazonProvidedDNS`。有关更多信息，请参阅 [Amazon DNS 服务器](AmazonDNS-concepts.md#AmazonDNS)。
+ **域名**：客户端通过域名系统（DNS）解析主机名时应使用的域名。有关用于 EC2 实例的域名的更多信息，请参阅 [Amazon EC2 实例主机名](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html)。
+ **IPv6 首选租赁时间**：为其分配了 IPv6 的正在运行的实例续订 DHCPv6 租约的频率。默认租赁时间为 140 秒。通常在租赁时间已过一半时进行租约续订。

当您使用默认的 DHCP 选项集时，不会使用以下设置，但是 EC2 实例有默认设置：
+ **NTP 服务器**：默认情况下，EC2 实例使用 [Amazon Time Sync Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html) 检索时间。
+ **NetBIOS 名称服务器**：对于运行 Windows 的 EC2 实例，NetBIOS 电脑名称是分配给实例的一个友好名称，用于在网络上识别它。NetBIOS 名称服务器负责维护 NetBIOS 电脑名称与使用 NetBIOS 作为命名服务的网络的网络地址之间的映射列表。
+ **NetBIOS 节点类型**：对于运行 Windows 的 EC2 实例，这是这些实例用于将 NetBIOS 名称解析为 IP 地址的方法。

如果使用原定设置的选项集，Amazon DHCP 服务器将使用原定设置选项集中的网络设置。当您在 VPC 中启动实例时，他们将执行下图中显示的操作：(1) 与 DHCP 服务器交互，(2) 与 Amazon DNS 服务器交互，(3) 然后通过 VPC 的路由器连接到网络中的其他设备。这些实例可以随时与 Amazon DHCP 服务器进行交互，以获取其 IP 地址租赁和其他网络设置。

![\[默认 DHCP 选项集\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/userguide/images/dhcp-default-update-new.png)


## 自定义 DHCP 选项集
<a name="CustomDHCPOptionSet"></a>

您可以使用以下设置创建自定义 DHCP 选项集，然后将此选项集与 VPC 关联：
+ **域名服务器**：供网络接口用于域名解析的 DNS 服务器。
+ **域名**：客户端通过域名系统（DNS）解析主机名时应使用的域名。
+ **NTP 服务器**：为实例提供时间的 NTP 服务器。
+ **NetBIOS 名称服务器**：对于运行 Windows 的 EC2 实例，NetBIOS 电脑名称是分配给实例的一个友好名称，用于在网络上识别它。NetBIOS 名称服务器负责维护 NetBIOS 电脑名称与使用 NetBIOS 作为命名服务的网络的网络地址之间的映射列表。
+ **NetBIOS 节点类型**：对于运行 Windows 的 EC2 实例，即这些实例用于将 NetBIOS 名称解析为 IP 地址的方法。
+ **IPv6 首选租赁时间**（可选）：为其分配了 IPv6 的正在运行的实例续订 DHCPv6 租约的频率值（以秒、分钟、小时或年为单位）。可接受的值介于 140 到 4294967295 秒（大约 138 年）之间。如果未输入值，则默租赁时间为 140 秒。如果您对 EC2 实例使用长期寻址，则可以增加租赁时间，避免频繁的租约续订请求。通常在租赁时间已过一半时进行租约续订。

如果您使用自定义选项集，在 VPC 中启动的实例将执行如图所示的以下操作：(1) 使用自定义 DHCP 选项集中的网络设置，(2) 与自定义 DHCP 选项集中指定的 DNS、NTP 和 NetBIOS 服务器进行交互，然后 (3) 通过 VPC 的路由器连接到网络中的其他设备。

![\[自定义 DHCP 选项集\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/userguide/images/dhcp-custom-update-new.png)


**相关任务**
+ [创建 DHCP 选项集](DHCPOptionSet.md#CreatingaDHCPOptionSet)
+ [更改与 VPC 关联的选项集。](DHCPOptionSet.md#ChangingDHCPOptionsofaVPC)

# 使用 DHCP 选项集
<a name="DHCPOptionSet"></a>

使用以下过程查看 DHCP 选项集，并进行使用。有关 DHCP 选项集工作原理的更多信息，请参阅 [DHCP 选项集概念](DHCPOptionSetConcepts.md)。

**Topics**
+ [创建 DHCP 选项集](#CreatingaDHCPOptionSet)
+ [更改与 VPC 关联的选项集。](#ChangingDHCPOptionsofaVPC)
+ [删除 DHCP 选项集](#DeletingaDHCPOptionSet)

## 创建 DHCP 选项集
<a name="CreatingaDHCPOptionSet"></a>

借助自定义 DHCP 选项集，您可以使用自己的 DNS 服务器、域名等来自定义 VPC。您可以根据需要，任意创建额外 DHCP 选项集。但是，您一次只能将一个 VPC 与一个 DHCP 选项集相关联。

**注意**  
在您创建 DHCP 选项集之后，您便无法再对其进行修改。要为您的 VPC 更新 DHCP 选项，您必须创建新的 DHCP 选项集，然后将其关联到您的 VPC。

**要使用控制台创建 DHCP 选项集**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **DHCP option sets**（DHCP 选项集）。

1. 选择 **Create DHCP options set**（创建 DHCP 选项集）。

1. 对于 **Tag settings**（标签设置），根据需要输入 DHCP 选项集的名称。如果输入一个值，将会自动为 DHCP 选项集创建一个名称标签。

1. 对于**DHCP 选项**，提供所需的配置参数。
   + **域名**（可选）：输入客户端使用 DNS 解析主机名时应使用的域名。如果您未使用 AmazonProvidedDNS，您的自定义域名服务器必须正确解析主机名。如果您使用 Amazon Route 53 私有托管区域，则可以使用 AmazonProvidedDNS。有关更多信息，请参阅 [VPC 中的 DNS 属性](vpc-dns.md)。
**注意**  
仅使用您完全控制的域名。

     某些 Linux 操作系统接受由空格分隔的多个域名。但是，Windows 以及其他 Linux 操作系统将该值视为单个域，因而会导致意外行为。如果您的 DHCP 选项集与其中实例所运行操作系统将该值视为单个域的 VPC 关联，请仅指定一个域名。
   + **Domain name servers**（域名服务器，可选）：输入将用于将主机名称解析为主机 IP 地址的 DNS 服务器。

     您可以输入 **AmazonProvidedDNS** 或自定义域名服务器。使用两者都可能会导致意外行为。您最多可以输入四个 IPv4 域名服务器（或最多三个 IPv4 域名服务器和 **AmazonProvidedDNS**）和四个 IPv6 域名服务器的 IP 地址，用逗号分隔。尽管最多可以指定八个域名服务器，但某些操作系统可能会施加较低的限制。有关 **AmazonProvidedDNS** 和 Amazon DNS 服务器的更多信息，请参阅 [Amazon DNS 服务器](AmazonDNS-concepts.md#AmazonDNS)。
**重要**  
如果您的 VPC 有互联网网关，确保指定您自己的 DNS 服务器或 Amazon DNS 服务器 (AmazonProvidedDNS) 作为**域名服务器**值。否则，VPC 中的实例将无法访问 DNS，这样会禁用互联网访问。
   + **NTP servers**（NTP 服务器，可选）：输入最多八个网络时间协议（NTP）服务器的 IP 地址（四个 IPv4 地址和四个 IPv6 地址）。

      NTP 服务器为您的网络提供时间。您可以在 IPv4 地址 `169.254.169.123` 或 IPv6 地址 `fd00:ec2::123` 指定 Amazon Time Sync Service。原定设置下，实例与 Amazon Time Sync Service 通信。请注意，IPv6 地址只能在[基于 Nitro 系统构建的 EC2 实例](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)上访问。

     有关 NTP 服务器选项的更多信息，请参阅 [RFC 2132](https://datatracker.ietf.org/doc/html/rfc2132#section-8.3)。有关 Amazon Time Sync Service 的更多信息，请参阅《*Amazon EC2 用户指南*》中的[为您的实例设置时间](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html)。
   + **NetBIOS name servers**（NetBIOS 名称服务器，可选）：输入最多四个 NetBIOS 名称服务器的 IP 地址。

     对于运行 Windows 操作系统的 EC2 实例，NetBIOS 电脑名称是分配给实例的一个友好名称，用于在网络上识别它。NetBIOS 名称服务器负责维护 NetBIOS 电脑名称与使用 NetBIOS 作为命名服务的网络的网络地址之间的映射列表。
   + **NetBIOS node type**（NetBIOS 节点类型，可选）：输入 **1**、**2**、**4** 或 **8**。我们建议您指定 **2**（点对点或 P 节点）。目前不支持广播和多播。有关这些节点类型的更多信息，请参阅 [RFC 2132](https://tools.ietf.org/html/rfc2132) 的第 8.7 节，以及 [RFC1001](https://tools.ietf.org/html/rfc1001) 的第 10 节。

     对于运行 Windows 操作系统的 EC2 实例，这是这些实例用于将 NetBIOS 名称解析为 IP 地址的方法。在原定设置选项集中，NetBIOS 节点类型没有值。
   + **IPv6 首选租赁时间**（可选）：为其分配了 IPv6 的正在运行的实例续订 DHCPv6 租约的频率值（以秒、分钟、小时或年为单位）。可接受的值介于 140 到 2147483647 秒（大约 68 年）之间。如果未输入值，则默租赁时间为 140 秒。如果您对 EC2 实例使用长期寻址，则可以增加租赁时间，避免频繁的租约续订请求。通常在租赁时间已过一半时进行租约续订。

1. 添加 **Tags**（标签）。

1. 选择 **Create DHCP options set**（创建 DHCP 选项集）。将新 DHCP 选项集的名称或 ID 记录下来。

1. 要配置您的 VPC 以使用新的选项集，请参阅 [更改与 VPC 关联的选项集。](#ChangingDHCPOptionsofaVPC)。

**要使用命令行为您的 VPC 创建 DHCP 选项集**
+ [create-dhcp-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-dhcp-options.html) (AWS CLI)
+ [New-EC2DhcpOption](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2DhcpOption.html) (AWS Tools for Windows PowerShell)

## 更改与 VPC 关联的选项集。
<a name="ChangingDHCPOptionsofaVPC"></a>

创建 DHCP 选项集之后，您可以将其与一个或多个 VPC 关联。您一次只能将一个 DHCP 选项集与一个 VPC 相关联。如果您未将 DHCP 选项集与 VPC 关联，则这样会禁用 VPC 中的域名解析。

在您将新的 DHCP 选项集与 VPC 关联时，任何现有实例以及您在 VPC 内启动的所有新实例都将使用新选项。无需重新开始或重新启动您的实例。根据实例更新 DHCP 租赁权的频率，实例会在几个小时内自动拾取更改。如果您愿意，您也可以使用实例上的操作系统，直接更新租赁权。

**要使用控制台更改与 VPC 相关联的 DHCP 选项集**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **Your VPCs**(您的 VPC)。

1. 选择 VPC 的复选框，然后依次选择 **Actions**（操作）、**Edit VPC settings**（编辑 VPC 设置）。

1. 对于 **DHCP options set**（DHCP 选项集），选择新的 DHCP 选项集。或者，选择**没有 DHCP 选项集**以禁用 VPC 的域名解析。

1. 选择**保存**。

**要使用命令行更改与 VPC 相关联的 DHCP 选项集**
+ [associate-dhcp-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-dhcp-options.html) (AWS CLI)
+ [Register-EC2DhcpOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2DhcpOption.html) (AWS Tools for Windows PowerShell)

## 删除 DHCP 选项集
<a name="DeletingaDHCPOptionSet"></a>

当您不再需要 DHCP 选项集时，您可以使按照以下步骤删除 DHCP 选项集。如果正在使用 DHCP 选项集，则无法将其删除。对于要删除的每个与 DHCP 选项集关联的 VPC，您必须将不同的 DHCP 选项集与该 VPC 关联或将 VPC 配置为不使用 DHCP 选项集。有关更多信息，请参阅 [更改与 VPC 关联的选项集。](#ChangingDHCPOptionsofaVPC)。

**要使用控制台删除 DHCP 选项集**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **DHCP option sets**（DHCP 选项集）。

1. 选择 DHCP 选项集的单选按钮，然后依次选择**操作**、**删除 DHCP 选项集**。

1. 提示进行确认时，输入 **delete**，然后**选择删除 DHCP 选项集**。

**要使用命令行删除 DHCP 选项集**
+ [delete-dhcp-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-dhcp-options.html) (AWS CLI)
+ [Remove-EC2DhcpOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2DhcpOption.html) (AWS Tools for Windows PowerShell)