建立對接區域

這個頁面說明如何建立對等互連區域。如需詳細背景資訊,請參閱「對等互連區域」一節。

您必須以身分與存取權管理 (IAM) 成員的身分登入 Google Cloud 控制台,並在包含供應商 VPC 網路的專案中具有 DNS 對等互連角色 (roles/dns.peer)。

如要建立新的代管私人對等互連區域,以便使用一個虛擬私有雲網路 (消費者網路) 查詢另一個虛擬私有雲網路 (生產者網路) 的虛擬私有雲名稱解析順序,請按照下列步驟操作。

控制台

  1. 前往 Google Cloud 控制台的「Create a DNS zone」(建立 DNS 區域) 頁面。

    前往建立 DNS 區域

  2. 在「Zone type」(區域類型) 中,選取「Private」(私人)

  3. 輸入區域名稱,例如 my-new-zone

  4. 輸入私人區域的 DNS 名稱字尾,區域中的所有記錄都會使用這個字尾,例如:example.private

  5. 選用:新增說明。

  6. 在「選項」下方,選取「DNS 對等互連」

  7. 選取必須顯示私人區域的網路。

  8. 在「Peer project」(對等互連專案) 中,選取對等互連專案。

  9. 在「對等互連網路」中選取對等互連網路。

  10. 點選「建立」

gcloud

  1. 在包含消費者虛擬私有雲網路的專案中,找出或建立服務帳戶

  2. 在包含供應商虛擬私有雲網路的專案中,將 DNS 對等互連角色授予服務帳戶 (來自上一個步驟)。

    gcloud projects add-iam-policy-binding PRODUCER_PROJECT_ID \
       --member=SERVICE_ACCOUNT \
       --role=roles/dns.peer
    

    更改下列內容:

    • PRODUCER_PROJECT_ID:包含生產者虛擬私有雲網路的專案 ID
    • SERVICE_ACCOUNT:專案中的服務帳戶,該專案含有在步驟 1 中識別或建立的消費者虛擬私有雲網路
  3. 在包含用戶端 VPC 網路的專案中,將 DNS 管理員角色授予服務帳戶,然後執行 dns managed-zones create 指令,建立新的代管私人對等互連區域:

    gcloud dns managed-zones create NAME \
      --description=DESCRIPTION \
      --dns-name=DNS_SUFFIX \
      --networks=CONSUMER_VPC_NETWORK \
      --account=SERVICE_ACCOUNT \
      --target-network=PRODUCER_VPC_NETWORK \
      --target-project=PRODUCER_PROJECT_ID \
      --visibility=private
    

    更改下列內容:

    • NAME:區域名稱
    • DESCRIPTION:區域說明
    • DNS_SUFFIX:區域的 DNS 尾碼,例如 example.com
    • CONSUMER_VPC_NETWORK:取用者虛擬私有雲網路的名稱
    • SERVICE_ACCOUNT:含有消費者 VPC 網路的專案中的服務帳戶,如步驟 1 所述
    • PRODUCER_VPC_NETWORK:生產者虛擬私有雲網路的名稱
    • PRODUCER_PROJECT_ID:包含生產者虛擬私有雲網路的專案 ID

Terraform

resource "random_id" "zone_suffix" {
  byte_length = 8
}

resource "google_dns_managed_zone" "peering_zone" {
  name        = "peering-zone-${random_id.zone_suffix.hex}"
  dns_name    = "peering.example.com."
  description = "Example private DNS peering zone"

  visibility = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.network_source.id
    }
  }

  peering_config {
    target_network {
      network_url = google_compute_network.network_target.id
    }
  }
}

resource "google_compute_network" "network_source" {
  name                    = "network-source"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_target" {
  name                    = "network-target"
  auto_create_subnetworks = false
}

後續步驟