為什麼我無法透過 VPC 對等互連解析網域名稱?

上次更新日期:2022 年 4 月 12 日

我無法透過 Amazon Virtual Private Cloud (Amazon VPC) 對等互連解析網域名稱。如何對此問題進行疑難排解?

解決方案

注意:以下情境假設 VPC 設定了 AmazonProvidedDNS (Amazon 提供的 DNS)。如果您使用自訂 DNS 並且無法解析網域名稱,請執行以下操作:

  • 在自訂 DNS 中新增記錄。
    -或-
  • 設定 DNS 以將某些查詢轉送到 Amazon 提供的 DNS。注意:Amazon 提供的 DNS 的 IP 地址在 VPC CIDR 中為末尾是 .2 的地址。

情境 1:解析到在對等 VPC 中建立的 Amazon EC2 執行個體的公有 DNS

Amazon Elastic Compute Cloud (Amazon EC2) 在建立執行個體時會指派私有和公有 DNS 名稱。預設會將以下網域名稱指派給執行個體:

  • 私有 DNS:ip-172-31-19-128.ec2.internal (適用於 us-east-1 區域) 或 ip-172-31-12-97.us-west-2.compute.internal (適用於其他區域)。
  • 公有 DNS:ec2-54-147-16-116.compute-1.amazonaws.comec2-35-88-61-144.us-west-2.compute.amazonaws.com

如果您使用自訂網域名稱 (例如 "example.com") 設定 DHCP 選項集,則 EC2 執行個體將使用該網域名稱。例如,ip-172-31-12-97.us-west-2.example.com

從 AWS 中的任何執行個體解析到私有 DNS,會解析到您在其中建立執行個體的 VPC 的私有 IP 地址:

$ dig ip-172-31-12-97.us-west-2.compute.internal +short
172.31.12.97

從對等 VPC 中建立的另一個執行個體解析該執行個體的公有 DNS,會解析到該執行個體的公有 IP 地址:

$ dig ec2-35-88-61-144.us-west-2.compute.amazonaws.com +short
35.88.61.144

您可以將公有網域名稱解析到 EC2 執行個體的私有 IP 地址。為此,請在 VPC 對等互連中開啟以下選項之一:

  • Requester DNS resolution (申請者 DNS 解析)
    -或-
  • Accepter DNS resolution (接受者 DNS 解析)

如需詳細資訊,請參閱為 VPC 對等互連啟用 DNS 解析

開啟 DNS 解析後,您可以將公有 DNS 解析到執行個體的私有 IP 地址,如下例所示:

$ dig ec2-35-88-61-144.us-west-2.compute.amazonaws.com +short
172.31.12.97

如果在 VPC 對等互連中開啟 DNS 解析後,DNS 解析不起作用,請使用以下步驟解決問題。

疑難排解步驟

1.    驗證來源 VPC 和目的地 VPC ID。

2.    確認使用 VPC 對等互連的來源 VPC 和目的地 VPC 之間存在作用中對等互連。

3.    確認為對等互連中使用的兩個 VPC 開啟 DNS hostnames (DNS 主機名稱) 和 DNS resolution (DNS 解析)。

4.    檢查對等互連的 DNS 組態,並確認為申請者接受者 VPC 開啟 DNS 解析。

5.    驗證您要解析到公有網域名稱是否存在。檢查目的地 VPC,確認存在具有網域名稱中提到的公有 IP 的執行個體。

6.    驗證 VPC 中的 DNS 組態是 AmazonProvidedDNS (Amazon 提供的 DNS) 還是 CustomDNS (自訂 DNS)。如果您使用的是自訂 DNS,請驗證自訂 DNS 是否解析了公有執行個體的網域名稱。如果自訂 DNS 無法解析相關網域名稱,請執行以下操作之一:

新增靜態 DNS 記錄。

-或-

將查詢重新引導到 AmazonProvidedDNS (Amazon 提供的 DNS)。

情境 2:解析到對等 VPC 中建立的服務的網域名稱

當您使用網域名稱建立服務時,您可以從任何對等 VPC 中的執行個體解析該網域名稱。這是因為為這些服務建立的網域名稱是公有記錄,可以從任何地方解析。例如,以下網域名稱記錄是可公開解析的:

  • testCLB-520693273.us-east-1.elb.amazonaws.com
  • test-87913728ca9b8a68.elb.us-east-1.amazonaws.com
  • vpce-057d3426e21755b8a-svk1k3tm.ssm.us-east-1.vpce.amazonaws.com

注意:即使該網域名稱用於私有負載平衡器,記錄也是公有的,並且會解析到私有 IP 地址。

服務端點網域名稱 (例如 "ssm.us-east-1.amazonaws.com") 會解析到公有 IP 地址。即使在開啟了 private DNS (私有 DNS) 選項的對等 VPC 中建立了介面端點也是如此。您可以將服務端點的網域名稱解析到介面端點的私有 IP 地址。為此,相關資源必須是您在其中建立介面端點的 VPC 的一部分。

範例

介面 VPC 端點在 VPC A 上設定。您嘗試從 VPC B 將服務網域名稱解析到 VPC A 中的介面 VPC 端點 IP。在這種情況下,VPC B 中需要存在 Amazon Route 53 出站解析程式端點,並且 VPC A 中需要存在 Route 53 入站解析程式端點。

注意:如需有關使用精靈設定 Route 53 解析程式的資訊,請參閱 Route 53 解析程式入門

  1. 在 VPC B (您要在其中存取端點 DNS) 中建立一個 Route 53 解析出站端點。
  2. 在 VPC A (您在其中建立端點) 中建立一個 Route 53 解析入站端點。
  3. 使用區域 VPC A 中的網域名稱和目標 IP 地址建立 Route 53 解析規則。

VPC B 中的出站端點將服務網域名稱的 DNS 查詢轉送到 VPC A 中的入站解析程式端點的 IP。VPC A 中的入站端點接收服務網域名稱的 DNS 查詢。然後,入站端點將查詢轉送到 VPC A 中 Amazon 提供的 DNS 伺服器進行解析。

在 Route 53 解析程式端點處於作用中狀態後,您可以使用私有 DNS 名稱存取端點。

疑難排解步驟

1.    驗證來源 VPC 和目的地 VPC ID。

2.    確認來源 VPC 和目的地 VPC 之間存在作用中對等互連。

3.    確認為對等互連中使用的兩個 VPC 開啟 DNS hostnames (DNS 主機名稱) 和 DNS resolution (DNS 解析)。

4.    檢查對等互連的 DNS 組態,並確認為申請者和接受者 VPC 開啟 DNS 解析。

5.    驗證您要解析到公有網域名稱是否存在。檢查目的地 VPC,並確認在該 VPC 中建立了啟用私有 DNS 選項的 VPC 介面端點。

6.    驗證 VPC 中設定的 DNS 是 AmazonProvidedDNS (Amazon 提供的 DNS) 還是 CustomDNS (自訂 DNS)。如果您使用的是自訂 DNS,請驗證自訂 DNS 是否可以解析網域名稱。如果自訂 DNS 無法解析網域名稱,則新增靜態 DNS 記錄或設定自訂 DNS 以將查詢轉送到 AmazonprovidedDNS (Amazon 提供的 DNS)。

7.    驗證與具有 VPC 解析程式端點的子網路關聯的路由表是否具有指向來源或目的地 VPC 的對等路由。對兩個 VPC 中的所有入站和出站 VPC 解析程式端點執行此操作。

8.    驗證與建立解析程式端點的子網路關聯的網路 ACL 是否允許來自對等 VPC CIDR 的入站流量。

9.    驗證入站和出站解析程式設定是否正確,並且具有將流量轉送到下一躍點的正確規則。如需詳細資訊,請參閱如何對我的 Route 53 解析程式端點的 DNS 解析問題進行疑難排解?

情境 3:在私有託管區域中建立的自訂網域名稱

您為自訂網域名稱建立了一個私有託管區域,該私有託管區域用於將網域解析到在其中建立的記錄。VPC A 與一個私有託管區域相關聯。VPC B 與 VPC A 存在對等互連。您希望將自訂網域名稱從 VPC B 解析到 VPC A (您可以在其中解析自訂網域)。

有兩種方法可以實現這一點:

  • 解決方案 1:將查詢從 VPC B 轉送到主 VPC A 的 DNS。此設定類似於情境 2。
  • 解決方案 2:將 VPC B 關聯到您在其中建立記錄的自訂網域的私有託管區域。建立關聯後,您可以從兩個對等 VPC 中的資源解析私有託管區域中的自訂網域名稱。

疑難排解步驟

注意:對於解決方案 1,請按照方案 2 中提到的疑難排解步驟進行操作。

1.    驗證來源 VPC 和目的地 VPC ID。

2.    驗證 VPC 中設定的 DNS 是 AmazonProvidedDNS (Amazon 提供的 DNS) 還是 CustomDNS (自訂 DNS)。如果您使用自訂 DNS,則無法解析到託管在私有託管區域中的記錄。若要更正此問題,請在自訂 DNS 上新增靜態網域名稱記錄。或者,設定自訂 DNS 以將查詢轉送到 AmazonprovidedDNS (Amazon 提供的 DNS)。

3.    如果您使用的是 Amazon 提供的 DNS,請驗證您嘗試解析的網域及其託管位置 (Amazon Route 53 或內部部署)。如果在內部部署,請確認用於將查詢轉送到內部部署 DNS 的出站解析程式端點設定正確。

4.    如果託管在 Route 53 私有託管區域中,請驗證來源 VPC 是否與私有託管區域相關聯。來源 VPC 是您嘗試解析自訂網域名稱的位置。

5.    確認在相關私有託管區域中存在您嘗試解析的 FQDN 的記錄。


此文章是否有幫助?


您是否需要帳單或技術支援?