

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 防止 Route 53 中悬挂委派记录
<a name="protection-from-dangling-dns"></a>

使用 Route 53，客户可以创建托管区（比如 `example.com`）来托管其 DNS 记录。每个托管区均附带一个“委托集”，此集内含有四个名称服务器，客户可以借此服务器在父域中配置 NS 记录。这些 NS 记录可称为“委托 NS 记录”或“委托记录”。

为了使 `example.com` Route 53 托管区成为权威区域，`example.com` 域的合法所有者需要通过域注册商在其“.com”父域中配置委托记录。如果客户无法访问在父域中配置的四个名称服务器，例如由于关联的托管区被删除，则可能会带来攻击者可利用的风险。这称为“悬挂委托记录”风险。

在托管区遭到删除的情况下，Route 53 可防止出现悬挂委托记录的风险。删除后，如果使用相同的域名创建新的托管区，Route 53 会查看指向已删除托管区的委托记录是否仍存在于父域中。如果存在，Route 53 会阻止分配任何重叠的名称服务器。这是以下示例中的场景 1。

但是，还有其他悬而未决的委托记录风险，Route 53 无法防范这些风险，如以下示例中的场景 2 至 5 所详述。为了保护自己免受这些更广泛的风险，请确保父 NS 记录与为 Route 53 托管区的委托集相匹配。您可以通过 Route 53 控制台或者，找到托管区域的委托集 AWS CLI。有关更多信息，请参阅 [列出记录](resource-record-sets-listing.md)或 [get-hosted-zone](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/get-hosted-zone.html)。

此外，为 Route 53 托管区启用 DNSSEC 签名可以在上述最佳实践之外提供另一层保护。DNSSEC 会验证 DNS 答案是否来自权威来源，从而有效防止此种风险。有关更多信息，请参阅 [在 Amazon Route 53 中配置 DNSSEC 签名](dns-configuring-dnssec.md)。

## 示例
<a name="protection-from-dangling-dns-examples"></a>

在以下示例中，我们假设您拥有一个域 `example.com` 及其子域 `child.example.com`。我们将解释在各种情况下如何创建悬挂委托记录、Route 53 如何保护域免遭滥用，以及如何有效降低与悬挂委托记录相关的风险。

**方案 1:**  
您可以使用四个名称服务器 <ns1>、<ns2>、<ns3> 和 <ns4> 创建一个托管区 `child.example.com`。您在托管区 `example.com` 中正确设置了委托，并使用四个名称服务器 <ns1>、<ns2>、<ns3> 和 <ns4> 为 `child.example.com` 创建委托 NS 记录。当删除 `child.example.com` 托管区而未移除 `example.com` 中的委托 NS 记录时，Route 53 会阻止将 <ns1>、<ns2>、<ns3> 和 <ns4> 分配给具有相同域名的新创建托管区，从而防止 `child.example.com` 出现悬挂委托记录的风险。

**方案 2:**  
与场景 1 类似，但这次删除了子托管区和托管区 `example.com` 中的委托 NS 记录。但是，您可以重新添加委托 NS 记录 <ns1>、<ns2>、<ns3> 和 <ns4> 而不创建子托管区。在这里，<ns1>、<ns2>、<ns3> 和 <ns4> 是悬挂委托记录，因为 Route 53 移除了阻止分配 <ns1>、<ns2>、<ns3> 和 <ns4> 的法定保留，现在允许新创建的托管区使用上述名称服务器。为了降低风险，请从委托记录中删除 <ns1>、<ns2>、<ns3> 和 <ns4>，并且仅在创建了子托管区后才将其重新添加。

**场景 3：**  
在此场景中，您将创建一个 Route 53 可重复使用的委托集，其中含有 <ns1>、<ns2>、<ns3> 和 <ns4> 名称服务器。然后，将域 `example.com` 委托给父域 `.com` 中的这些名称服务器。但是，您尚未在可重用的委托集中为 `example.com` 创建托管区。此处的 <ns1>、<ns2>、<ns3> 和 <ns4> 为悬挂委托记录。为了降低风险，请使用带有 <ns1>、<ns2>、<ns3> 和 <ns4> 名称服务器的可重复使用委托集创建托管区。

**场景 4：**  
您可以使用名称服务器、、和，以及`child.example.com`名称服务器<ns1><ns2><ns3>、<ns4>、和`grandchild.child.example.com`为两者创建托管区域<ns5><ns6><ns7><ns8>。但是，您可以直接在`example.com`区域中委托两者，这会造成悬而未决的委托风险。为确保委托遵循正确的 DNS 层次结构，请仅通过子域名的直接父区域委托子域。例如，如果要委托`grandchild.child.example.com`：首先在区域中`child.example.com`使用域名服务器<ns1>、<ns2><ns3>、和进行<ns4>委托，然后在`example.com`区域中`grandchild.child.example.com`使用域名服务器<ns5>、<ns6><ns7>、和进行委托<ns8>，然后`grandchild.child.example.com`从`child.example.com`区域中移除对的所有直接委托。`example.com`

**场景 5：**  
在创建相应的托管区域之前，将域或子域委托给 Route 53 域名服务器，这会创建悬而未决的委托记录。这与场景 3 中的情况类似，但是当未创建可重复使用的委托集时，风险也适用。例如，您将域`example.com`名委托给<ns1><ns2><ns3><ns4>父域中的域名服务器、`.com`、和，但这些域名服务器都没有托管`example.com`。Route 53 无法防范这种情况，因为从来没有托管区域可以为该域名的域名服务器建立保有权。为了降低风险，请仅将属于您控制的公共托管区域的 Route 53 域名服务器委托给该服务器。