建立轉送區域

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

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

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

控制台

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

    前往建立 DNS 區域

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

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

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

  5. 選用:新增說明。

  6. 在「Options」(選項) 下方,選取「Forward queries to another server」(將查詢轉寄到其他伺服器)

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

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

  9. 如要強制使用私人轉送將項目傳送至轉送目標,請在「Private forwarding」(私人轉送) 下方勾選「Enable」(啟用) 核取方塊。

  10. 點按「Create」(建立)

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 位址必須位於虛擬私有雲網路,或是使用 Cloud VPN 或 Cloud Interconnect 連線至 Google Cloud 的地端部署網路。使用這個旗標指定的非 RFC 1918 IP 位址必須可以透過網際網路存取

轉送目標網路需求

Cloud DNS 將要求傳送至轉送目標時,會傳送封包,來源範圍請見下方表格。

轉送目標類型 來源範圍

第 1 類目標

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

第 2 類目標

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

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

35.199.192.0/19

Cloud DNS 對所有客戶皆使用 35.199.192.0/19 來源範圍。這個範圍「只能」透過 Google Cloud 虛擬私有雲網路存取,或是從連線至虛擬私有雲網路的地端部署網路存取。

第 3 類目標

可透過網際網路存取的 DNS 名稱伺服器外部 IP 位址,「或是」 Google Cloud 資源的外部 IP 位址,例如其他虛擬私有雲網路中 VM 的外部 IP 位址。

Google 公用 DNS 來源範圍

第 4 類目標

目標名稱伺服器的完整網域名稱,可透過 虛擬私有雲網路解析順序解析為 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 目的地。如果是第 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 設定自訂路由 advertisement

第 3 類目標

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

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

系統不支援私人轉送至第 3 類目標。

第 4 類目標

第 4 類目標會先解析目標的 IP 位址。解析的轉送目標最多可解析為 50 個 IP 位址,包括 IPv4 和 IPv6 位址。取決於已解析轉送目標的網路,第 4 類目標的網路規定會比照第 1、第 2 或第 3 類目標。

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

後續步驟