為什麼我無法解析介面 VPC 端點的服務網域名稱?

上次更新日期︰2022 年 4 月 4 日

我正在使用 AWS 服務的介面 Amazon Virtual Private Cloud (Amazon VPC) 端點。我想使用預設服務網域名稱 (例如 ec2.us-east-1.amazonaws.com) 透過 VPC 介面端點來存取服務。為什麼我無法解析介面 VPC 端點的服務網域名稱?

解決方案

若要解析介面 VPC 端點的服務網域名稱 (例如 ec2.us-east-2-amazonaws.com),請記住以下幾點:

  • 若要將服務網域名稱解析為介面 VPC 端點的私有 IP,必須將 DNS 查詢傳送至建立介面端點所在 VPC 的 Amazon 提供的 DNS。Amazon 提供的 DNS 是 VPC CIDR 加二的基礎。
  • 在建立介面 VPC 端點的 VPC 上,確認 VPC 的 DNS 屬性DNS 主機名稱DNS 解析均已開啟。
  • 使用介面 VPC 端點來存取可用的 AWS 服務時,如 Amazon Elastic Compute Cloud (Amazon EC2),您可以在端點上開啟私有 DNS 名稱。開啟此參數後,服務網域名稱的查詢將解析為私有 IP 地址。這些私有 IP 地址是在指定介面端點的每個關聯子網路中建立的彈性網路介面的 IP 地址。
    開啟私有 DNS 名稱後,您可以透過 AWS PrivateLink 使用服務網域名稱 (例如,ec2.us--1.amazonaws.com) 來執行 AWS API 呼叫。
    對於介面 VPC 端點,確認是否已開啟私有 DNS 名稱。如果未開啟私有 DNS 名稱,則服務網域名稱或端點網域名稱將解析為區域公有 IP。如需開啟私有 DNS 名稱的步驟,請參閲修改介面端點
  • 您可以在 VPC 的 DHCP 選項集中指定自訂網域名稱伺服器。使用自訂網域名稱伺服器時,服務網域名稱的 DNS 查詢會傳送至自訂網域名稱伺服器進行解析。自訂網域名稱伺服器可能位於 VPC 內或 VPC 之外。
    自訂網域名稱伺服器必須將服務網域名稱轉傳至建立介面端點所在 VPC 的 Amazon 提供的 DNS 伺服器。
  • 如果您嘗試從 VPC 之外 (跨 VPC 或內部部署) 存取介面端點,請確認已安裝 DNS 架構。DNS 架構應將服務網域名稱的 DNS 查詢轉傳至建立介面端點所在 VPC 的 Amazon 提供的 DNS 伺服器。
    您可以針對來源網路中的服務網域名稱,使用 nslookupdig 等工具來確認其解析的目標 IP。
    或者,您可以在 SDK 上使用區域端點網域名稱,來執行 API 呼叫。可從任何網路解析介面端點的區域性介面端點網域名稱。以下是使用 AWS Command Line Interface (AWS CLI) 執行描述呼叫的範例:
$aws ec2 describe-instances --endpoint-url https://vpce-aaaabbbbcccc-dddd.vpce-svc-12345678.us-east-1.vpce.amazonaws.com
  • 如果您針對服務網域名稱建立了 Amazon Route 53 私有託管區域,請確認將正確的來源 VPC 連接至託管區域。如需詳細資訊,請參閱如何對我的 Route 53 私有託管區域的 DNS 解析問題進行疑難排解?
    注意:您必須使用 VPC 對等互連、AWS Transit Gateway 等建立從網路至 VPC 的連線,以便路由 DNS 查詢。