

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 認識 Amazon DNS
<a name="AmazonDNS-concepts"></a>

身為 AWS 架構師或管理員，您會遇到的其中一個基礎聯網元件是 Amazon DNS 伺服器，也稱為 Route 53 Resolver。此 DNS 解析程式服務原生整合到 AWS 區域中的每個可用區域，為虛擬私有雲端 (VPC) 中的網域名稱解析提供可靠且可擴展的解決方案。在本節中，您將了解 Amazon DNS 伺服器的 IP 位址、可以解析的私有 DNS 主機名稱，以及管理其用量的規則。

**Topics**
+ [Amazon DNS 伺服器](#AmazonDNS)
+ [規則和考量](#amazon-dns-rules)
+ [EC2 執行個體的 DNS 主機名稱](#vpc-dns-hostnames)
+ [VPC 的 DNS 屬性](#vpc-dns-support)
+ [DNS 配額](#vpc-dns-limits)
+ [私有託管區域](#vpc-private-hosted-zones)

## Amazon DNS 伺服器
<a name="AmazonDNS"></a>

Route 53 Resolver (也稱為「Amazon DNS 伺服器」或 "AmazonProvidedDNS") 是內建在 AWS 區域內每個可用區域中的 DNS Resolver 服務。Route 53 Resolver 位於 `169.254.169.253` (IPv4)、`fd00:ec2::253` (IPv6) 以及佈建至 VPC\+2 的主要私有 IPV4 CIDR 範圍。例如，如果您的 VPC 具有 `10.0.0.0/16` IPv4 CIDR 和 `2001:db8::/32` IPv6 CIDR，則您可以連線位於 `169.254.169.253` (IPv4)、`fd00:ec2::253` (IPv6) 或 `10.0.0.2` (IPv4) 的 Route 53 Resolver。VPC 內的資源會使用 DNS 查詢的[連結本機地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#link-local-addresses)。這些查詢會私下傳輸到 Route 53 Resolver，且不會顯示在網路上。在僅 IPv6 子網路中，只要「AmazonProvidedDNS」是 DHCP 選項集中的名稱伺服器，IPv4 連結本機地址 (169.254.169.253) 仍然可以連線。

當您在 VPC 中啟動執行個體時，我們會為該執行個體提供私有 DNS 主機名稱。如果該執行個體設定了公有 IPv4 地址，且 VPC DNS 屬性已啟用，我們也會提供公有 DNS 主機名稱。

私有 DNS 主機名稱的格式取決於您在啟動 EC2 執行個體時設定的方式。如需有關私有 DNS 主機名稱類型的詳細資訊，請參閱[《Amazon EC2 使用者指南》](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html)中的 *Amazon EC2 執行個體主機名稱類型*。

在您 VPC 中的 Amazon DNS 伺服器，會用於解析您在 Route 53 中私有託管區域中指定的 DNS 網域名稱。如需私有託管區域的詳細資訊，請參閱 *Amazon Route 53 開發人員指南*中的[使用私有託管區域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)。

## 規則和考量
<a name="amazon-dns-rules"></a>

使用 Amazon DNS 伺服器時，須遵循以下規則和考量。
+ 您無法使用網路 ACL 或安全群組來篩選與 Amazon DNS 伺服器往來的流量。
+ 使用 Hadoop 框架的服務 (如 Amazon EMR)，會請求執行個體解析其完全合格的網域名稱 (FQDN)。在此情況下，如果 `domain-name-servers` 選項設定為自訂值，則 DNS 解析可能會失敗。若要確保正確解析 DNS，請考慮在您的 DNS 伺服器上新增條件式轉寄站，將針對 `{{region-name}}.compute.internal` 網域的查詢轉送至 Amazon DNS 伺服器。如需詳細資訊，請參閱 *Amazon EMR 管理指南*中的[設定 VPC 以託管叢集](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-vpc-host-job-flows.html)。
+ Amazon Route 53 Resolver 只支援遞迴 DNS 查詢。

## EC2 執行個體的 DNS 主機名稱
<a name="vpc-dns-hostnames"></a>

當您啟動執行個體時，它始終會接收私有 IPv4 地址和對應至其私有 IPv4 地址的私有 DNS 主機名稱。如果您的執行個體具有公有 IPv4 地址，其 VPC 的 DNS 屬性會決定它是否接收對應於該公有 IPv4 地址的公有 DNS 主機名稱。如需更多詳細資訊，請參閱 [VPC 的 DNS 屬性](#vpc-dns-support)。

啟用 Amazon 提供的 DNS 伺服器後，DNS 主機名稱解析如下。

**私有 IPv4 DNS 名稱**  
執行個體的私有 IPv4 DNS 主機名稱將解析為其私有 IPv4 位址。您可以使用私有 IPv4 DNS 主機名稱，在同一個 VPC 中或多個已連線 VPC 中的執行個體之間進行通訊。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Private IPv4 addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-private-addresses)。

**公有 IPv4 DNS 名稱**  
執行個體的公有 IPv4 DNS 主機名稱將解析為其公有 IPv4 位址 (執行個體網路外部)，或其私有 IPv4 位址 (執行個體網路內部)。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Public IPv4 addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses)。

若要透過 VPC 對等互連將公有 IPv4 DNS 名稱解析為私有 IPv4 位址，您必須為對等互連啟用 DNS 解析功能。如需詳細資訊，請參閱[啟用 VPC 對等互連的 DNS 解析](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-dns.html)。

**私有資源 DNS 名稱**  
RBN 型 DNS 名稱，可解析為此執行個體選取的 A 和 AAAA DNS 記錄。此 DNS 主機名稱會顯示在雙堆疊和僅限 IPv6 子網中執行個體的執行個體詳細資訊中。如需有關 RBN 的詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html)。

## VPC 的 DNS 屬性
<a name="vpc-dns-support"></a>

下列 VPC 屬性會決定為您的 VPC 提供的 DNS 支援。如果啟用兩個屬性，則在 VPC 中啟動的執行個體會收到公有 DNS 主機名稱 (如果在建立時被指派公有 IPv4 地址或彈性 IP 地址)。如果您對 VPC 啟用兩個屬性 (原本並未啟用)，則已在 VPC 中啟動的執行個體會收到公有 DNS 主機名稱 (如果其具備公有 IPv4 地址或彈性 IP 地址)。

若要確認您的 VPC 是否啟用這些屬性，請參閱 [檢視和更新 VPC 的 DNS 屬性](vpc-dns-updating.md)。


| 屬性 | 說明 | 
| --- | --- | 
| enableDnsHostnames | 判斷 VPC 是否支援將公有 DNS 主機名稱指派給具有公有 IP 地址的執行個體。<br />此屬性的預設值為 `false`，除非 VPC 為預設 VPC。請注意以下此屬性的**規則和考量**事項。 | 
| enableDnsSupport | 確定 VPC 是否支援透過 Amazon 提供的 DNS 伺服器進行 DNS 解析。<br />如果此屬性為 `true`，對 Amazon 提供的 DNS 伺服器的查詢成功。如需更多詳細資訊，請參閱 [Amazon DNS 伺服器](#AmazonDNS)。<br />此屬性的預設值為 `true`。請注意以下此屬性的**規則和考量**事項。 | 

**規則和考量**
+ 如果這兩個屬性都設定為 `true`，會發生下列情況：
  + 具有公有 IP 地址的執行個體會收到對應的公有 DNS 主機名稱。
  + Route 53 Resolver 伺服器可解析 Amazon 提供的私有 DNS 主機名稱。
+ 如果至少一個屬性設定為 `false`，將發生以下情況：
  + 具有公有 IP 地址的執行個體不會收到對應的公有 DNS 主機名稱。
  + Route 53 Resolver 無法解析 Amazon 提供的私有 DNS 主機名稱。
  + 如果 [DHCP 選項集](VPC_DHCP_Options.md)中有自訂網域名稱，則執行個體會收到自訂私有 DNS 主機名稱。如果未使用 Route 53 Resolver 伺服器，您的自訂網域名稱伺服器就必須視需要解析主機名稱。
+ 如果您使用 Amazon Route 53 中私有託管區域中定義的自訂 DNS 網域名稱，或使用具有介面 VPC 端點的私有 DNS (AWS PrivateLink)，則必須將 `enableDnsHostnames` 和 `enableDnsSupport` 屬性皆設為 `true`。
+ Route 53 Resolver 可針對所有位址空間將私有 DNS 主機名稱解析為私有 IPv4 位址，包括當 VPC 的 IPv4 位址範圍不在 [RFC 1918](https://tools.ietf.org/html/rfc1918) 指定之私有 IPv4 位址範圍內的情況。但是，如果您的 VPC 是在 2016 年 10 月之前建立，當 VPC 的 IPv4 位址範圍超出這些範圍時，Route 53 Resolver 就無法解析私有 DNS 主機名稱。若要啟用這項支援，請聯絡 [支援](https://aws.amazon.com/contact-us/)。

## DNS 配額
<a name="vpc-dns-limits"></a>

使用[連結本機](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#link-local-addresses)地址的服務有每秒 1024 個封包 (PPS) 限制。此限制包括 Route 53 Resolver DNS 查詢、[執行個體中繼資料服務 (IMDS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html) 請求、[Amazon Time Service Network Time Protocol (NTP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html) 請求和 [Windows Licensing Service (適用於 Microsoft Windows 型執行個體)](https://aws.amazon.com/windows/resources/licensing/) 請求的彙總。此配額無法增加。

依據查詢類型、回應大小以及使用的通訊協定而異，Route 53 Resolver 支援的每秒 DNS 查詢數目也不同。如需詳細資訊和可擴展的 DNS 架構建議，請參閱《[AWS 混合 DNS 與 Active Directory](https://d1.awsstatic.com/whitepapers/aws-hybrid-dns-with-active-directory.pdf) 技術指南》。

如果您達到配額限制，Route 53 Resolver 會拒絕流量。達到配額限制的一些原因可能是 DNS 調節問題，或使用 Route 53 Resolver 網路介面的執行個體中繼資料查詢。如需關於如何解決 VPC DNS 節流問題的資訊，請參閱[如何判斷我向 Amazon 提供之 DNS 伺服器的 DNS 查詢是否會因 VPC DNS 節流而失敗](https://repost.aws/knowledge-center/vpc-find-cause-of-failed-dns-queries)。如需有關執行個體中繼資料擷取的資訊，請參閱*《Amazon EC2 使用者指南》*中的[擷取執行個體中繼資料](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html)。

## 私有託管區域
<a name="vpc-private-hosted-zones"></a>

如果您想要使用自訂 DNS 網域名稱 (如 `example.com`) 而不使用私有 IPv4 地址或 AWS 提供的私有 DNS 主機名稱來存取 VPC 中的資源，您可以在 Route 53 中建立私有託管區域。私有託管區域是一種容器，其中包含的資訊說明您可以如何在一或多個 VPC 中路由某個網域及其子網域的流量，而不用將資源公開至網際網路。接著，您可以建立 Route 53 資源紀錄集，以決定 Route 53 如何回應網域和子網域的查詢。舉例來說，如果您想將 example.com 的瀏覽器請求路由至 VPC 中的 Web 伺服器，您可以在私有託管區域中建立 A 記錄，然後指定該 Web 伺服器的 IP 地址。如需如何建立私有託管區域的詳細資訊，請參閱 *Amazon Route 53 開發人員指南*中的[使用私有託管區域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)。

若要使用自訂 DNS 網域名稱來存取資源，您必須連線至 VPC 內的執行個體。您可以在執行個體中使用 `ping` 命令 (例如 `ping mywebserver.example.com`)，來測試私有託管區域中的資源是否可透過其自訂 DNS 名稱來存取。(您必須確認執行個體的安全群組允許傳入 ICMP 流量，`ping` 命令才能運作。)

私有託管區域將無法支援 VPC 之外的轉移關係；這樣一來，您就無法使用資源的自訂私有 DNS 名稱從 VPN 連線另一端存取資源。

**重要**  
如果您使用在 Amazon Route 53 私有託管區域中定義的自訂 DNS 網域名稱，則必須將 `enableDnsHostnames` 和 `enableDnsSupport` 屬性設定為 `true`。