建立轉送可用區

本頁說明如何建立轉送區域。如需詳細背景資訊,請參閱「轉送區域」。

開始之前,請確認您瞭解下列事項:

如要建立新的代管私人轉送區域,請完成下列步驟。

主控台

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

    前往「建立 DNS 區域」

  2. 在「Zone type」(區域類型) 中,選取「Private」(不公開)

  3. 輸入「Zone name」(可用區名稱),例如 my-new-zone

  4. 輸入私人區域的「DNS name」(DNS 名稱) 字尾,區域中的所有記錄都會共用這個尾碼。例如:example.private

  5. 選用:新增說明。

  6. 在「選項」下方,選取「將查詢轉寄到其他伺服器」

  7. 選取可以顯示不公開區域的網路。

  8. 如要新增轉寄目標,請按一下「新增項目」。 您可以新增多個 IP 位址,或單一完整網域名稱 (FQDN)。轉送目標必須是 IP 位址清單或 FQDN。 您無法在同一個區域中同時使用 IP 位址和 FQDN。

  9. 如要強制將私人路由傳送至轉送目標,請在「私人轉送」下方選取「啟用」核取方塊。

  10. 點選「建立」

gcloud

請執行 dns managed-zones create 指令。

gcloud dns managed-zones create NAME \
    --description=DESCRIPTION \
    --dns-name=DNS_SUFFIX \
    --networks=VPC_NETWORK_LIST \
    --forwarding-targets=FORWARDING_TARGETS_LIST \
    --private-forwarding-targets=PRIVATE_FORWARDING_TARGETS_LIST \
    --visibility=private

更改下列內容:

  • NAME:可用區名稱
  • DESCRIPTION:區域說明
  • DNS_SUFFIX:您區域的 DNS 尾碼,例如 example.private
  • VPC_NETWORK_LIST:以半形逗號分隔的虛擬私有雲網路清單,這些網路獲授權可查詢區域
  • FORWARDING_TARGETS_LIST:以半形逗號分隔的 IP 位址清單,或要傳送查詢的單一完整網域名稱。網域名稱會解析為 IP 位址。使用這個旗標指定的 RFC 1918 IP 位址,必須位於虛擬私人雲端網路中,或是使用 Cloud VPN 或 Cloud Interconnect 連線的內部部署網路中。 Google Cloud使用這個旗標指定的非 RFC 1918 IP 位址必須可供網際網路存取。
  • PRIVATE_FORWARDING_TARGETS_LIST:以逗號分隔的 IP 位址清單,或要傳送查詢的單一完整網域名稱。網域名稱會解析為 IP 位址。使用這個旗標指定的任何 IP 位址,都必須位於虛擬私有雲網路中,或是位於使用 Cloud VPN 或 Cloud Interconnect 連線的內部部署網路中。 Google Cloud

Terraform

resource "google_dns_managed_zone" "private_zone" {
  name        = "private-zone"
  dns_name    = "private.example.com."
  description = "Example private DNS zone"
  labels = {
    foo = "bar"
  }

  visibility = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.network_1.id
    }
    networks {
      network_url = google_compute_network.network_2.id
    }
  }

  forwarding_config {
    target_name_servers {
      ipv4_address = "172.16.1.10"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

API

使用 managedZones.create 方法傳送 POST 要求:

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
{

    "name": "NAME",
    "description": "DESCRIPTION",
    "dnsName": "DNS_NAME",
    "visibility": "private"
    "privateVisibilityConfig": {
        "kind": "dns#managedZonePrivateVisibilityConfig",
        "networks": [{
                "kind": "dns#managedZonePrivateVisibilityConfigNetwork",
                "networkUrl": VPC_NETWORK_1
            },
            {
                "kind": "dns#managedZonePrivateVisibilityConfigNetwork",
                "networkUrl": VPC_NETWORK_2
            },
            ....
        ]
    },
    "forwardingConfig": {
        "kind": "dns#managedZoneForwardingConfig",
        "targetNameServers": [{
                "kind": "dns#managedZoneForwardingConfigNameServerTarget",
                "ipv4Address": FORWARDING_TARGET_1
            },
            {
                "kind": "dns#managedZoneForwardingConfigNameServerTarget",
                "ipv4Address": FORWARDING_TARGET_2
            },
            ....
        ]
    },
}

更改下列內容:

  • PROJECT_ID:建立受管理區域的專案 ID
  • NAME:可用區名稱
  • DESCRIPTION:區域說明
  • DNS_NAME:您區域的 DNS 尾碼,例如 example.private
  • VPC_NETWORK_1VPC_NETWORK_2:位於同一專案中的虛擬私人雲端網路網址,這些網路可查詢這個區域中的記錄。您可以新增多個虛擬私有雲網路,如要判斷虛擬私有雲網路的網址,請使用下列 gcloud 指令說明網路,並將 VPC_NETWORK_NAME 替換為網路名稱:
    gcloud compute networks describe VPC_NETWORK_NAME 
    --format="get(selfLink)"
  • FORWARDING_TARGET_1FORWARDING_TARGET_2: 轉送目標名稱伺服器的 IP 位址,或單一完整網域名稱。您可以新增多個 IP 位址,如圖所示。這裡指定的 RFC 1918 IP 位址必須位於 VPC 網路中,或是使用 Cloud VPN 或 Cloud Interconnect 連線到 Google Cloud 的內部部署網路中。使用這個旗標指定的非 RFC 1918 IP 位址必須可存取網際網路。

轉送目標網路需求

Cloud DNS 將要求傳送至轉送目標時,會傳送封包,來源範圍如下表所示。

轉送目標類型 來源範圍

第 1 類目標

有權使用轉送區域的相同虛擬私有雲網路中,VM 的內部 IP 位址內部直通網路負載平衡器。 Google Cloud

類型 2 目標

內部部署系統的 IP 位址,使用 Cloud VPN 或 Cloud Interconnect 連線至授權使用轉送區域的虛擬私有雲網路。

如要進一步瞭解支援的 IP 位址,請參閱「轉送目標和轉送方法」一文。

35.199.192.0/19

Cloud DNS 會為所有客戶使用 35.199.192.0/19 來源範圍。這個範圍「只能」從 Google Cloud VPC 網路存取,或是從連線至 VPC 網路的內部部署網路存取。

類型 3 目標

可透過網際網路存取的 DNS 名稱伺服器外部 IP 位址 Google Cloud 資源的外部 IP 位址,例如另一個 VPC 網路中 VM 的外部 IP 位址。

Google 公用 DNS 來源範圍

輸入目標 4

目標名稱伺服器的完整網域名稱,可透過 VPC 網路解析順序解析為 IPv4 和 IPv6 位址。網域名稱最多可解析為 50 個 IP 位址。

解析的 IP 位址可以是目標類型 1 到 3。

視解析的 IP 位址而定,來源範圍可能是下列其中之一:

第 1 類和第 2 類目標

如要存取第 1 類或第 2 類目標,Cloud DNS 必須具備下列條件。無論目標是 RFC 1918 IP 位址且您使用標準路徑,還是選擇私人路徑,這些規定都相同:

  • 35.199.192.0/19 的防火牆設定

    如果是第 1 類型的目標,請為 TCP 和 UDP 通訊埠 53 流量建立輸入允許防火牆規則,適用於每個授權虛擬私有雲端網路中的轉送目標。如果是第 2 類目標,請設定內部部署網路防火牆和類似設備,允許 TCP 和 UDP 通訊埠 53

  • 將來電轉送至目標

    如果是第 1 類目標,Cloud DNS 會使用子網路路徑,存取已授權使用轉送區域的虛擬私有雲網路中的目標。如果是第 2 類名稱目標,Cloud DNS 會使用自訂動態或自訂靜態路徑 (標記的靜態路徑除外) 存取轉送目標。

  • 透過相同虛擬私有雲網路返回 35.199.192.0/19 的路徑

    如果是第 1 類目標, Google Cloud 會使用特殊路徑35.199.192.0/19 目的地設為 35.199.192.0/19。如果是第 2 類目標,您的內部部署網路必須具有 35.199.192.0/19 目的地的路徑,且下一個躍點位於要求來源的相同虛擬私有雲網路中,並透過 Cloud VPN 通道或 Cloud Interconnect 的 VLAN 連結。如要瞭解如何符合這項規定,請參閱「第 2 類目標的傳回路徑策略」。

  • 目標直接回應

    Cloud DNS 規定接收封包的轉送目標和傳送回覆給 35.199.192.0/19 的伺服器必須是同個伺服器。如果轉送目標將要求傳送至「不同」的名稱伺服器,而「其他」名稱伺服器回應了 35.199.192.0/19,Cloud DNS 會忽略該回應。基於安全性考量, Google Cloud 預期每個目標名稱伺服器的 DNS 回覆來源位址,都必須與轉送目標的 IP 位址相符。

第 2 類目標的返回路徑策略

Cloud DNS 無法透過網際網路或不同的虛擬私有雲網路,傳送第 2 類轉送目標的回應。回應必須返回同一個虛擬私有雲網路,但可以使用該網路中的任何 Cloud VPN 通道或 VLAN 連結。

  • 如果是使用靜態轉送的 Cloud VPN 通道,請在內部部署網路中手動建立路徑,其目的地為 35.199.192.0/19,而下一個躍點是 Cloud VPN 通道。針對使用政策型轉送的 Cloud VPN 通道,請設定 Cloud VPN 的本機流量選取器和內部部署 VPN 閘道的遠端流量選取器,加入 35.199.192.0/19
  • 如果 Cloud VPN 通道使用動態轉送或 Cloud Interconnect,請在管理通道或 VLAN 連結的 Cloud Router 的 BGP 工作階段中,為 35.199.192.0/19設定自訂路徑通告

第 3 類目標

當 Cloud DNS 使用標準路由存取外部 IP 位址時,會預期轉送目標是網際網路上的系統、可公開存取,或是 Google Cloud 資源的外部 IP 位址。

舉例來說,第 3 類目標包含不同虛擬私有雲網路中 VM 的外部 IP 位址。

系統不支援對第 3 類目標進行私人路由。

第 4 類目標

類型 4 目標會先解析目標的 IP 位址。解析的轉送目標最多可解析為 50 個 IP 位址,包括 IPv4 和 IPv6 位址。視已解析轉送目標的網路而定,第 4 類目標的網路需求與第 1、2 或 3 類目標相同。

如要進一步瞭解使用 FQDN 做為轉送目標的其他規定,請參閱「使用轉送區域」。

後續步驟