設定 DNS 轉送政策和健康狀態檢查

本頁面說明如何使用 Cloud DNS 設定 DNS 轉送政策,以及啟用健康狀態檢查。使用本頁面之前,請先熟悉 DNS 轉送政策和健康狀態檢查

事前準備

  • 如要設定 DNS 轉送政策,請建立資源記錄集,然後選擇下列其中一項 DNS 轉送政策,套用至資源記錄集。

  • 在地理位置轉送政策中,DNS 轉送政策支援每個地理位置的多個 IP 位址。為地理位置指定多個 IP 位址時,Cloud DNS 會傳回為該位置指定的所有 IP 位址。無法將地理位置轉送政策與自訂加權 WRR 政策合併使用。

  • 一次只能將一種轉送政策類型套用至資源記錄集。

  • 請務必為區域負載平衡器啟用全域存取權。

  • 為公開區域設定 DNS 轉送政策前,請先停用 constraints/compute.disableInternetNetworkEndpointGroup 組織政策限制。詳情請參閱「組織政策限制」。

  • 請確認您具備設定 DNS 轉送政策的必要權限。

為私人區域建立 DNS 轉送政策

為私人區域建立 DNS 轉送政策前,請完成下列步驟。

  1. 建立私人區域
  2. 設定下列其中一個內部負載平衡器:
  3. 為內部負載平衡器建立轉送規則
  4. 設定內部負載平衡器的健康狀態檢查

如要為私人區域建立 DNS 轉送政策,請按照下列步驟操作。

控制台

開始設定

  1. 前往 Cloud de Confiance 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

  2. 按一下要新增記錄的代管區域名稱。

  3. 在「Zone details」(區域詳細資料) 頁面中,按一下「Add with routing policy」(使用轉送政策新增)

基礎資料

  1. 選用:在「Create record set with routing policy」(使用轉送政策建立記錄集) 頁面的「DNS name」(DNS 名稱) 中,輸入 DNS 名稱的子網域,例如 mail。系統會自動在結尾處加上點號。

  2. 選取「Resource record type」(資源記錄類型) 的選項。

  3. 在「TTL」(存留時間) 中,輸入資源記錄存留時間的數值,也就是記錄可快取的時間。這個值必須是正整數。

  4. 選用:選取「TTL unit」(TTL 單位) 的時間單位,例如 minutes。預設值設為 minutes

  5. 按一下「Next」(下一步)

轉送政策類型

  1. 在「Routing policy」(轉送政策) 中,選取「Weighted round robin」(加權 round robin)、「Geolocation」(地理位置) 或「Failover」(容錯移轉)
  2. 按一下「Next」(下一步)

轉送政策資料

WRR

  1. 在「Weight」(權重) 中,輸入對應至這個資源記錄 (RR) 資料子專區的權重。

    權重必須是介於 0.0 至 1000.0 之間的非負數。系統會根據個別權重與所有權重總和的比率,計算導向目標的流量比率。例如,如果目標 A 的權重為 25,目標 B 的權重為 75,總權重為 100,則 Cloud DNS 會將 25/100 = 0.25 (25%) 的總流量導向目標 A,並將 75/100= 0.75 (75%) 的總流量導向目標 B。

  2. 在「IPv4 health checked targets」(已檢查健康狀態的 IPv4 目標) 中,執行下列操作:

    1. 在「Project」(專案),選取轉送規則所在的專案。
    2. 在「Forwarding rule」(轉送規則),選取轉送規則。

      轉送規則會指定內部 IP 位址、通訊埠,以及下列其中一個目標:

  3. 按一下「Done」(完成)

  4. 選用:如要新增其他健康狀態檢查目標,請按一下「Add target」(新增目標)

  5. 選用:如要允許未檢查健康狀態的 IPv4 位址,請執行下列操作:

    1. 選取「Allow IPv4 addresses without health checking」(允許未檢查健康狀態的 IPv4 位址)
    2. 在「IPv4 Address」(IPv4 位址) 中,輸入 IPv4 位址。
  6. 選用:如要新增另一組 WRR 政策轉送資料,請按一下「Add routing data」(新增轉送資料)

  7. 按一下「Next」(下一步)

地理位置

  1. 如要設定地理圍欄,請選取「Disabled」(已停用) 或「Enabled」(已啟用)

    啟用地理圍欄後,系統就會將流量限制在特定的地理位置內,即使該地理位置中的所有端點都處於不良的健康狀態也是如此。

  2. 在「Source region」(來源區域),選取有效的 Cloud de Confiance來源區域。

  3. 在「IPv4 health checked targets」(已檢查健康狀態的 IPv4 目標) 中,執行下列操作:

    1. 在「Project」(專案),選取轉送規則所在的專案。
    2. 在「Forwarding rule」(轉送規則),選取轉送規則。

      轉送規則會指定內部 IP 位址、通訊埠,以及下列其中一個目標:

  4. 按一下「Done」(完成)

  5. 選用:如要新增其他健康狀態檢查目標,請按一下「Add target」(新增目標)

  6. 選用:如要允許未檢查健康狀態的 IPv4 位址,請執行下列操作:

    1. 選取「Allow IPv4 addresses without health checking」(允許未檢查健康狀態的 IPv4 位址)
    2. 在「IPv4 Address」(IPv4 位址) 中,輸入 IPv4 位址。
  7. 選用:如要新增另一組地理位置政策轉送資料,請按一下「Add routing data」(新增轉送資料)

  8. 按一下「Next」(下一步)

容錯移轉

  1. 在「Primary health checked targets」(主要目標 (已檢查健康狀態)) 部分,執行下列操作:

    1. 在「Project」(專案),選取轉送規則所在的專案。
    2. 在「Forwarding rule」(轉送規則),選取轉送規則。

      轉送規則會指定內部 IP 位址、通訊埠,以及下列其中一個目標:

  2. 在「Backup geolocation policy」(備份地理位置政策) 部分,執行下列操作:

    1. 如要設定地理圍欄,請選取「Disabled」(已停用) 或「Enabled」(已啟用)。啟用地理圍欄後,系統就會將流量限制在特定的地理位置內,即使該地理位置中的所有端點都處於不良的健康狀態也是如此。
    2. 在「Source region」(來源區域),選取有效的 Cloud de Confiance來源區域。
    3. 在「IPv4 health checked targets」(已檢查健康狀態的 IPv4 目標) 中,執行下列操作:

      1. 在「Project」(專案),選取轉送規則所在的專案。
      2. 在「Forwarding rule」(轉送規則),選取轉送規則。

        轉送規則會指定下列其中一個選項:

        • 內部 IP 位址、通訊埠和區域性後端服務
        • HTTP(S) Proxy
        • TCP Proxy

    如果所有主要 IP 位址健康狀態不良,系統會根據備份地理位置政策自動處理流量。

  3. 按一下「Done」(完成)

  4. 選用:如要新增其他健康狀態檢查目標,請按一下「Add target」(新增目標)

  5. 選用:如要允許未檢查健康狀態的 IPv4 位址,請執行下列操作:

    1. 選取「Allow IPv4 addresses without health checking」(允許未檢查健康狀態的 IPv4 位址)
    2. 在「IPv4 Address」(IPv4 位址) 中,輸入 IPv4 位址。
  6. 選用:如要新增另一組備份地理位置政策轉送資料,請按一下「Add routing data」(新增轉送資料)

  7. 在「Trickle traffic (%)」(微量流量 (%)) 欄位中,輸入要傳送至容錯移轉目標的流量百分比,無論主要目標的健康狀態檢查處於何種狀態。

  8. 按一下「Next」(下一步)

查看及建立

  1. 按一下「Review」(查看)
  2. 查看含有轉送政策設定的 Cloud DNS 記錄集。
  3. 按一下「Create」(建立)

gcloud

對於資源記錄集,您可以設定轉送政策 (routingPolicy) 或 DNS 資料 (rrdatas),但不能同時設定兩者。如要在轉送政策和 DNS 資料之間切換,請更新資源記錄集。例如,如要將包含 DNS 資料 (rrdatas) 的資源記錄集變更為包含轉送政策 (routingPolicy),請刪除 rrdatas,並將 routingPolicy 新增至同一個資源記錄集。

如要為私人區域建立 DNS 轉送政策,請按照下列步驟操作。

執行 gcloud dns record-sets create 指令

WRR

gcloud dns record-sets create RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=WRR \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-health-checking

更改下列內容:

  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • TTL:解析器快取 ResourceRecordSet 的存留時間 (以秒為單位),例如 30
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A。如需支援的記錄類型清單,請參閱「支援 DNS 轉送政策的記錄類型」。
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串。
  • ROUTING_POLICY_DATA:輸入以分號分隔的清單,格式為 ${weight_percent}:${rrdatas},例如 .8=203.0.113.1;.2=198.51.100.1。請將權重指定為非負十進位數。系統會根據個別權重與所有權重的總和比率,計算導向目標的流量比率。轉送規則名稱是可接受的值,並會導致健康狀態檢查。
  • --enable-health-checking:啟用健康狀態檢查的旗標。使用這個旗標時,您必須在 --routing-policy-data 欄位中提供轉送規則名稱,而非 IP 位址。

地理位置

gcloud dns record-sets create RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=GEO \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-health-checking

更改下列內容:

  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • TTL:解析器快取 ResourceRecordSet 的存留時間 (以秒為單位),例如 30
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A。如需支援的記錄類型清單,請參閱「支援 DNS 轉送政策的記錄類型」。
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串。
  • ROUTING_POLICY_DATA:輸入以分號分隔的清單,格式為 ${region}=${IP_address},例如 asia-east1=198.51.100.1;us-central1=203.0.113.1。如要為單一區域指定多個 IP 位址,請新增以半形逗號分隔的 IP 位址。轉送規則名稱是可接受的值,並會導致健康狀態檢查。
  • --enable-health-checking:啟用健康狀態檢查的旗標。使用這個旗標時,您必須在 --routing-policy-data 欄位中提供轉送規則名稱,而非 IP 位址。

含地理圍欄的地理位置

gcloud dns record-sets create RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=GEO \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-geo-fencing \
  --enable-health-checking

更改下列內容:

  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • TTL:解析器快取 ResourceRecordSet 的存留時間 (以秒為單位),例如 30
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A。如需支援的記錄類型清單,請參閱「支援 DNS 轉送政策的記錄類型」。
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串。
  • ROUTING_POLICY_DATA:輸入以分號分隔的清單,格式為 ${region}=${IP_address},例如 asia-east1=198.51.100.1;us-central1=203.0.113.1。如要為單一區域指定多個 IP 位址,請新增以半形逗號分隔的 IP 位址。轉送規則名稱是可接受的值,並會導致健康狀態檢查。
  • --enable-geo-fencing:如果是 GEO 轉送政策,這項設定會決定區域中的所有端點都處於不良的健康狀態時,流量是否應跨區域容錯移轉。設定後,即使該區域中的所有端點都不正常,Cloud DNS 仍一律會將查詢導向最近的區域。使用 --no-enable-geo-fencing 停用地理圍欄。如果未設定,當區域中的所有端點都不正常時,Cloud DNS 會將查詢導向次近的區域。預設值為 false
  • --enable-health-checking:啟用健康狀態檢查的旗標。使用這個旗標時,您必須在 --routing-policy-data 欄位中提供轉送規則名稱,而非 IP 位址。

容錯移轉

gcloud dns record-sets create RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=FAILOVER  \
  --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \
  --routing-policy-backup-data-type=ROUTING_POLICY_BACKUP_DATA_TYPE \
  --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \
  --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \
  --enable-geo-fencing \
  --enable-health-checking

更改下列內容:

  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • TTL:解析器快取 ResourceRecordSet 的存留時間 (以秒為單位),例如 30
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A。如需支援的記錄類型清單,請參閱「支援 DNS 轉送政策的記錄類型」。
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串。
  • ROUTING_POLICY_PRIMARY_DATA:用於 FAILOVER 轉送政策的主要目標。這個目標必須參照一或多項轉送規則,例如 forwarding-rule-1。只要至少有一條轉送規則正常運作,系統就會使用所有正常運作的轉送規則 IP 位址,來回應這個名稱的查詢。
  • ROUTING_POLICY_BACKUP_DATA_TYPE:適用於 FAILOVER 轉送政策,備份資料使用的轉送政策類型。這必須是 GEO
  • ROUTING_POLICY_BACKUP_DATA:用於 FAILOVER 轉送政策的備份目標。當 --routing-policy-primary-data 中指定的所有轉送規則都不正常時,系統會使用這些目標。Cloud DNS 僅支援以地理位置為基礎的備份目標。這個欄位的格式與 --routing-policy-data 的格式相符 (--routing-policy-type = 'GEO'),例如 asia-east1=forwarding-rule-2
  • BACKUP_DATA_TRICKLE_RATIO:即使主要目標健康狀態良好,仍要傳送至備份目標的流量比率。比率必須介於 0 到 1 之間,例如 0.1。預設值設為 0
  • --enable-geo-fencing:如果是 GEO 轉送政策,這項設定會決定區域中的所有端點都處於不良的健康狀態時,流量是否應跨區域容錯移轉。設定後,即使該區域中的所有端點都不正常,Cloud DNS 仍一律會將查詢導向最近的區域。使用 --no-enable-geo-fencing 停用地理圍欄。如果未設定,當區域中的所有端點都不正常時,Cloud DNS 會將查詢導向次近的區域。預設值為 false
  • --enable-health-checking:啟用健康狀態檢查的旗標。使用這個旗標時,您必須在 --routing-policy-data 欄位中提供轉送規則名稱,而非 IP 位址。

API

請使用 resourceRecordSets.create 方法。

WRR

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "wrr": {
      "items": [
        {
          "weight": WEIGHT,
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        },
        {
          "weight": WEIGHT,
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        }
      ]
    }
  }
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串
  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A
  • TTL:解析器快取這個 ResourceRecordSet 的存留時間 (以秒為單位),例如 30
  • WEIGHT:針對 WRR 政策,以半形分號分隔的清單,格式為 ${weight_percent}=${rrdatas},例如 .8=10.128.1.1;.2=10.130.1.1;將權重指定為任何非負十進位數字。注意:必須指定權重為非負數。系統會根據個別權重與所有權重的總和,計算導向目標的流量比率。
  • LOAD_BALANCER_TYPE:負載平衡器類型,例如 regionalL4ilbglobalL7ilbregionalL7ilb。這項設定為選用項目。
  • IP_ADDRESS:轉送規則提供的 IP 位址
  • PORT_NUMBER:通訊埠編號
  • IP_PROTOCOL:定義健康狀態檢查所用的通訊協定;有效選項為 tcpudp
  • NETWORK_URL:適用這項轉送規則的網路網址
  • REGION:您建立轉送規則的區域

地理位置

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "geo": {
      "items": [
        {
          "location": "LOCATION",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        },
        {
          "location": "LOCATION",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        }
      ]
    }
  }
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串
  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A
  • TTL:解析器快取這個 ResourceRecordSet 的存留時間 (以秒為單位),例如 30
  • LOCATION:針對 GEO 政策,您需要建立政策的地理位置,例如 asia-east1
  • LOAD_BALANCER_TYPE:負載平衡器類型,例如 regionalL4ilbglobalL7ilbregionalL7ilb。這項設定為選用項目。
  • IP_ADDRESS:轉送規則提供的 IP 位址
  • PORT_NUMBER:內部負載平衡器的通訊埠編號
  • IP_PROTOCOL:定義健康狀態檢查所用的通訊協定;有效選項為 tcpudp
  • NETWORK_URL:適用這項轉送規則的網路網址
  • REGION:您建立轉送規則的區域

容錯移轉

在容錯移轉選項中,Cloud DNS 僅支援 GEO 政策。

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "primaryBackup": {
      "trickleTraffic": TRICKLE_TRAFFIC,
      "primaryTargets": {
        "internalLoadBalancers": [
          {
            "ipAddress": "IP_ADDRESS"
            "ipProtocol": "IP_PROTOCOL"
            "loadBalancerType": "LOAD_BALANCER_TYPE"
            "networkUrl": "NETWORK_URL"
            "port": "PORT_NUMBER"
            "project": "PROJECT_ID"
            "region": "REGION"
          }
        ]
      },
      "backupGeoTargets": {
        "enableFencing": ENABLE_FENCING,
        "items": [
          {
            "location": "LOCATION",
            "rrdatas": [
              "RRDATA"
            ]
          },
          {
            "location": "LOCATION",
            "rrdatas": [
              "RRDATA"
            ]
          }
        ]
      }
    }
  }
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串
  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A
  • TTL:解析器快取這個 ResourceRecordSet 的存留時間 (以秒為單位),例如 30
  • TRICKLE_TRAFFIC:即使主要目標健康狀態良好,也要傳送至備份目標的流量比率;比率必須介於 0 和 1 之間,例如 0.1
  • IP_ADDRESS:轉送規則提供的 IP 位址
  • PORT_NUMBER:通訊埠編號
  • IP_PROTOCOL:定義健康狀態檢查所用的通訊協定;有效選項為 tcpudp
  • NETWORK_URL:適用這項轉送規則的網路網址
  • PORT_NUMBER:內部負載平衡器的通訊埠編號
  • REGION:您建立轉送規則的區域
  • ENABLE_FENCING:如果是 GEO 轉送政策,這項設定會決定當區域中的所有端點健康狀態不佳時,流量是否應跨區域容錯移轉。設定後,即使該區域中的所有端點都不正常,Cloud DNS 仍一律會將查詢導向最近的區域。如果未設定,當區域中的所有端點都不正常時,Cloud DNS 會將查詢導向次近的區域。預設值為 false
  • LOCATION:針對 GEO 政策,您需要建立政策的地理位置,例如 asia-east1
  • WEIGHT:針對 WRR 政策,以半形分號分隔的清單,格式為 ${weight_percent}=${rrdatas},例如 .8=10.128.1.1;.2=10.130.1.1;將權重指定為任何非負十進位數字。
  • RRDATA:與資源記錄集相關聯的任意值,例如 198.51.100.5。您也可以輸入多個值 (rrdata1rrdata2rrdata3),例如 198.51.100.1203.0.113.1...

更新 DNS 轉送政策

如要更新資源記錄集的轉送政策,請按照下列步驟操作。

控制台

  1. 前往 Cloud de Confiance 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

  2. 按一下要更新資源記錄集轉送政策的區域。

  3. 在「Zone details」(區域詳細資料) 頁面中,按一下要更新的資源記錄集旁邊的「Edit」(編輯)

  4. 更新完成後,按一下「Save」(儲存)

gcloud

執行 gcloud dns record-sets update 指令

WRR

gcloud dns record-sets update RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=WRR \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-health-checking

地理位置

gcloud dns record-sets update RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=GEO \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-health-checking

含地理圍欄的地理位置

gcloud dns record-sets update RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=GEO \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-geo-fencing
  --enable-health-checking

容錯移轉

gcloud dns record-sets update RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=FAILOVER \
  --enable-geo-fencing \
  --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \
  --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \
  --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \
  --enable-health-checking

更改下列內容:

  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • TTL:解析器快取這個 ResourceRecordSet 的存留時間 (以秒為單位),例如 30
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A

    如需支援的記錄類型清單,請參閱「選取資源記錄類型」。

  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串。

  • ROUTING_POLICY_TYPE:轉送政策類型。

    輸入 WRR 代表加權 round robin、GEO 代表地理位置,或 FAILOVER 代表容錯移轉政策。政策選定類型後,您就無法修改這個欄位,只能刪除政策,然後新增不同類型的新政策。

  • ROUTING_POLICY_DATA:轉送政策資料

    • --routing-policy-type=WRR 中,以 ${weight_percent}:${rrdatas} 格式輸入以分號分隔的清單,例如 .8=203.0.113.1;.2=198.51.100.1。請將權重指定為非負十進位數。系統會根據個別權重與所有權重的總和比率,計算導向目標的流量比率。轉送規則名稱是可接受的值,並會導致健康狀態檢查。
    • --routing-policy-type=GEO 中,以 ${region}=${IP_address} 格式輸入以分號分隔的清單,例如 asia-east1=198.51.100.1;us-central1=203.0.113.1。如要為單一區域指定多個 IP 位址,請新增以半形逗號分隔的 IP 位址。轉送規則名稱是可接受的值,並會導致健康狀態檢查。
    • --routing-policy-type=FAILOVER 中,輸入您建立的轉送規則名稱,格式為 ${region}=${Forwarding rule name}

  • --enable-geo-fencing:如果是 GEO 轉送政策,這項設定會決定區域中的所有端點都處於不良的健康狀態時,流量是否應跨區域容錯移轉。設定後,即使該區域中的所有端點都不正常,Cloud DNS 仍一律會將查詢導向最近的區域。使用 --no-enable-geo-fencing 停用地理圍欄。如果未設定,當區域中的所有端點都不正常時,Cloud DNS 會將查詢導向次近的區域。這項設定的預設設定為 false

  • ROUTING_POLICY_PRIMARY_DATA:用於 FAILOVER 轉送政策的主要目標。這個目標必須參照一或多項轉送規則,例如 forwarding-rule-1。只要至少有一條轉送規則正常運作,系統就會使用所有正常運作的轉送規則 IP 位址,來回應這個名稱的查詢。

  • ROUTING_POLICY_BACKUP_DATA:用於 FAILOVER 轉送政策的備份目標。當 --routing-policy-primary-data 中指定的所有轉送規則都不正常時,系統會使用這些目標。Cloud DNS 僅支援以地理位置為基礎的備份目標。這個欄位的格式與 --routing-policy-data 的格式相符 (--routing-policy-type = 'GEO'),例如 asia-east1=forwarding-rule-2

  • BACKUP_DATA_TRICKLE_RATIO:即使主要目標健康狀態良好,仍要傳送至備份目標的流量比率。比率必須介於 0 到 1 之間,例如 0.1。預設值設為 0。

  • --enable-health-checking:啟用轉送規則的健康狀態檢查,這些規則會以 rrdata 形式提供給 --routing-policy-data

API

請使用 resourceRecordSets.patch 方法。請只指定 rrset.rrdatasrrset.routingPolicy 其中之一。如果指定 routingPolicy,則必須完整指定新的 routingPolicy 欄位。

WRR

如為 WRR 政策,請使用下列方法:

PATCH https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "wrr": {
      "items": [
        {
          "weight": WEIGHT,
          "rrdatas": ["RRDATA"]
        },
        {
          "weight": WEIGHT,
          "rrdatas": ["RRDATA"]
        }
      ]
    }
  }
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串
  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A
  • WEIGHT:針對 WRR 政策,以半形分號分隔的清單,格式為 ${weight_percent}=${rrdatas},例如 .8=10.128.1.1;.2=10.130.1.1;將權重指定為任何非負十進位數字。
  • RRDATA:與資源記錄集相關聯的任意值,例如 198.51.100.5。您也可以輸入多個值 (rrdata1rrdata2rrdata3),例如 198.51.100.1203.0.113.1...

地理位置

請使用下列方法:

PATCH https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "geo": {
      "items": [
        {
          "location": "LOCATION",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        },
        {
          "location": "LOCATION",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        }
      ]
    }
  }
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串
  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A
  • TTL:解析器快取這個 ResourceRecordSet 的存留時間 (以秒為單位),例如 30
  • LOCATION:針對 GEO 政策,您需要更新政策的地理位置,例如 asia-east1
  • LOAD_BALANCER_TYPE:負載平衡器類型,例如 regionalL4ilbglobalL7ilbregionalL7ilb。這項設定為選用項目。
  • IP_ADDRESS:轉送規則提供的 IP 位址
  • PORT_NUMBER:通訊埠編號
  • IP_PROTOCOL:定義健康狀態檢查所用的通訊協定;有效選項為 tcpudp
  • NETWORK_URL:適用這項轉送規則的網路網址
  • REGION:您建立轉送規則的區域

刪除 DNS 轉送政策

如要刪除轉送政策,必須刪除包含該轉送政策的資源記錄集。請按照以下步驟操作。

控制台

  1. 前往 Cloud de Confiance 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

  2. 按一下要刪除資源記錄集的區域。

  3. 在「Zone details」(區域詳細資料) 頁面中,選取要刪除的資源記錄集 DNS 名稱旁邊的核取方塊。

  4. 按一下「Delete record sets」(刪除記錄集)

gcloud

執行 gcloud dns record-sets delete 指令

gcloud dns record-sets delete RRSET_NAME \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \

更改下列內容:

  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 service.example.com
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A

    如需支援的記錄類型清單,請參閱「選取資源記錄類型」。

  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 service-zone。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串

API

請使用 resourceRecordSets.delete 方法:

DELETE https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個 ResourceRecordSet 所屬的代管區域,例如 my-zone-name。這個 ResourceRecordSet 的名稱必須使用代管區域的 DNS 名稱做為後置字串
  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 test.example.com
  • RRSET_TYPE:這個 ResourceRecordSet 的資源記錄類型,例如 A

後續步驟