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

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

我無法透過 Amazon Virtual Private Cloud (Amazon VPC) 對等互連解析網域名稱。

解決方案

注意:以下情境假設 VPC 設定了 AmazonProvidedDNS。如果您使用自訂 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.    檢查對等連線的 DNS 組態。確定要求者接受者 VPC 都已開啟 DNS 解析。

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

5.    驗證 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 中建立了介面端點也是如此。此外,只有從您建立介面端點的 VPC 內進行查詢時,這些名稱才會解析為私有 IP 地址。若要從對等互連 VPC 將端點網域名稱解析為端點私有 IP 地址,您必須建立正確的 DNS 架構。

在下列範例中,在 VPC A 上設定介面 VPC 端點。若要將服務網域名稱從 VPC B 解析為 VPC A 中的介面 VPC 端點 IP 地址:

  1. 在關閉 PrivateDNS (私有 DNS) 的情況下,為服務建立一個介面端點。
  2. 從建立介面端點所在的帳戶,使用服務網域名稱 (例如 ssm.us-east-1.amazonaws.com) 建立私有託管區域。
  3. 確認為對等互連中的兩個 VPC 開啟 DNS 主機名稱和 DNS 解析。
  4. 建立別名記錄,將服務網域名稱指向介面端點 DNS 的區域端點:vpce-057d3426e21755b8a-svk1k3tm.ssm.us-east-1.vpce.amazonaws.com。 或者建立記錄,將服務網域名稱指向 VPC A 中建立之介面 VPC 端點的私有 IP 地址。
  5. 將您建立的私有託管區域與對等互連 VPC (VPC B) 建立關聯。 如果 VPC B 是跨帳戶,請參閱如何將 Route 53 私有託管區域與不同 AWS 帳戶上的 VPC 相關聯?

疑難排解步驟

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

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

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

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

5.    確認兩個對等互連 VPC 都與建立網域名稱記錄所在的相同私有託管區域相關聯。

6.    確定記錄指向正確的 VPC 端點區域特定網域或介面端點 IP 地址。

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

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

若要解決此問題,請將 VPC B 關聯到您在其中建立記錄的自訂網域的私有託管區域。建立關聯後,您可以從兩個對等 VPC 中的資源解析私有託管區域中的自訂網域名稱。

疑難排解步驟

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 的記錄。


此文章是否有幫助?


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