配置 DNS 路由政策和健康检查

本页介绍了如何使用 Cloud DNS 配置 DNS 路由政策和启用健康检查。在使用此页面之前, 熟悉 DNS 路由政策和健康检查

如需使用 DNS 路由政策,请创建一个资源记录集,然后从下列选项中选择一项 以下 DNS 路由政策可应用于资源记录集:

DNS 路由政策还支持每个地理位置拥有多个 IP 地址。为给定地理位置指定了多个 IP 地址时,系统会根据等效的加权 WRR 政策返回这些地址。系统不支持将基于地理位置的路由政策与自定义加权 WRR 政策结合使用。

一次只能对资源记录集应用一种路由政策。除非配置故障切换,否则您不能合并路由政策 路由政策,在这种情况下,您可以设置一个地理定位路由政策 用作备份必须为区域级负载平衡器启用全球访问权限。

为专用区域创建 DNS 路由政策

在为专用区域创建 DNS 路由政策之前,请先完成 后续步骤。

  1. 创建专用区域
  2. 设置以下内部负载均衡器之一:
  3. 为内部负载均衡器创建转发规则
  4. 为内部负载均衡器设置健康检查

如需为专用区域创建 DNS 路由政策,请按以下步骤操作。

控制台

开始配置

  1. 在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。

    进入“Cloud DNS 区域”

  2. 点击要在其中添加记录的托管区域的名称。

  3. 可用区详细信息页面上,点击添加路由政策

基础数据

  1. 可选:在使用路由政策创建记录集页面上, DNS 名称,输入 DNS 名称的子网域: 示例 mail。系统会自动添加结尾句点。

  2. 对于资源记录类型,请选择一个选项。

  3. 对于 TTL,输入一个数值表示资源记录的生存时间,即该资源记录可缓存的时间期限。此值必须是正整数。

  4. 可选:对于 TTL 单位,选择时间单位,例如 minutes。默认值为 minutes

  5. 点击下一步

路由政策类型

  1. 对于路由政策,选择加权轮循地理定位故障切换
  2. 点击下一步

路由政策数据

WRR

  1. 对于权重,输入与资源记录 (RR) 数据的此子部分相对应的权重。

    此权重必须为介于 0.0 到 1000.0 之间的非负数。比率 发送到目标位置的流量是 权重占总权重的比例。例如,如果定位条件 A 目标 B 的权重为 25,目标 B 的权重为 75,总权重为 100,Cloud DNS 路由的 25/100 = 总数的 0.25 (25%) 定位 A 的流量,75/100= 定位 B 的流量为 0.75 (75%)。

  2. IPv4 健康检查目标部分中,执行以下操作:

    1. 对于 Project,选择存在转发规则的项目。
    2. 对于转发规则,选择转发规则。

      转发规则指定内部 IP 地址、端口 以及下列目标之一:

  3. 点击完成

  4. 可选:如需添加其他健康检查目标,请点击添加目标

  5. 可选:如需允许 IPv4 地址而不进行健康检查,请执行以下操作: 以下:

    1. 选择在不启用健康检查的情况下允许 IPv4 地址
    2. IPv4 地址部分,输入 IPv4 地址。
  6. 可选:如需添加另一组 WRR 政策路由数据,请点击添加路由数据

  7. 点击下一步

地理定位

  1. 对于地理围栏,选择停用启用

    启用地理围栏将流量限制到特定地理位置 即使该地理定位中的所有端点运行状况不佳。

  2. 来源区域中,选择一个有效的 Google Cloud 来源区域。

  3. IPv4 健康检查目标部分中,执行以下操作:

    1. 对于 Project,选择存在转发规则的项目。
    2. 对于转发规则,选择转发规则。

      转发规则指定内部 IP 地址、端口 以及下列目标之一:

  4. 点击完成

  5. 可选:如需添加其他健康检查目标,请点击添加目标

  6. 可选:如需允许 IPv4 地址而不进行健康检查,请执行以下操作: 以下:

    1. 选择在不启用健康检查的情况下允许 IPv4 地址
    2. 对于 IPv4 地址,请输入 IPv4 地址。
  7. 可选:如需添加另一组地理位置政策路由数据,请点击添加路由数据

  8. 点击下一步

故障切换

  1. 主要健康检查目标部分中,执行以下操作:

    1. 对于 Project,选择存在转发规则的项目。
    2. 对于转发规则,选择转发规则。

      转发规则指定内部 IP 地址、端口 以及下列目标之一:

  2. 备份地理位置信息政策部分,执行以下操作:

    1. 对于地理围栏,选择已停用已启用。如果启用地理围栏,则系统会使流量仅流向特定的地理位置,即使该地理位置中的所有端点运行状况都不佳也是如此。
    2. Source region 部分,选择一个有效的 Google Cloud 来源区域
    3. IPv4 健康检查目标部分中,执行以下操作:

      1. 对于 Project,选择存在转发规则的项目。
      2. 对于转发规则,选择转发规则。

        转发规则会指定以下选项之一:

        • 内部 IP 地址、端口和区域级后端服务
        • HTTP(S) 代理
        • TCP 代理

    当所有主要 IP 地址的健康状况都不佳时,系统将根据备份地理位置政策自动处理流量。

  3. 点击完成

  4. 可选:如需添加其他健康检查目标,请点击添加目标

  5. 可选:如需允许 IPv4 地址而不进行健康检查,请执行以下操作: 以下:

    1. 选择在不启用健康检查的情况下允许 IPv4 地址
    2. 对于 IPv4 地址,请输入 IPv4 地址。
  6. 可选:添加另一组备用地理定位政策路由 请点击添加路由数据

  7. 微流量 (%)字段中,输入发送到故障切换目标的流量百分比,而不考虑主要目标的健康检查状态。

  8. 点击下一步

检查并创建

  1. 点击审核
  2. 使用路由政策配置查看 Cloud DNS 记录集。
  3. 点击创建

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:解析器缓存的 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:解析器缓存的 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:解析器缓存的 TTL(以秒为单位) ResourceRecordSet,例如 30
  • RRSET_TYPE:资源记录类型 ResourceRecordSet,例如 A。如需查看支持的 请参阅 DNS 路由政策支持的记录类型
  • MANAGED_ZONE:与此 ResourceRecordSet 关联的代管式区域,例如 service-zone。此ResourceRecordSet的名称必须包含 作为其后缀
  • 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:解析器缓存的 TTL(以秒为单位) ResourceRecordSet,例如 30
  • RRSET_TYPE:此 ResourceRecordSet 的资源记录类型,例如 A。如需查看支持的记录类型的列表,请参阅 DNS 路由政策支持的记录类型
  • MANAGED_ZONE:与此 ResourceRecordSet 关联的代管式区域,例如 service-zone。此ResourceRecordSet的名称必须包含 作为其后缀
  • 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-type = 'GEO'(例如 asia-east1=forwarding-rule-2),此字段的格式与 --routing-policy-data 的格式匹配。
  • 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://www.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:解析器缓存的 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://www.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_BALANCING_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 的 TTL(以秒为单位),例如 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://www.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:解析器缓存的 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;您还可以输入多个值 rrdata1 rrdata2 rrdata3,例如 198.51.100.1 203.0.113.1...

为公共区域创建 DNS 路由政策(预览版

如需为公开区域创建 DNS 路由政策,请按照以下说明操作 步骤。

控制台

开始配置

  1. 在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。

    进入“Cloud DNS 区域”

  2. 点击要在其中添加记录的托管区域的名称。

  3. 可用区详细信息页面上,点击添加路由政策

基础数据

  1. 可选:在使用路由政策创建记录集页面上, DNS 名称,输入预填充的 DNS 名称的子域名 示例 mail。系统会自动添加结尾句点。

  2. 资源记录类型部分,选择一个选项。

  3. 对于 TTL,输入一个数值表示资源记录的生存时间,即该资源记录可缓存的时间期限。此值必须是正整数。

  4. 可选:对于 TTL 单位,选择时间单位,例如: minutes。默认值设为 minutes

  5. 点击下一步

路由政策类型

  1. 对于路由政策,选择加权轮循地理定位故障切换
  2. 点击下一步

路由政策数据

WRR

  1. 对于权重,输入与资源记录 (RR) 数据的此子部分相对应的权重。

    该权重必须是 0.0 到 1000.0 之间的非负数。路由到目标的流量比率是根据各个权重与所有权重之和的比率计算的。例如,如果定位条件 A 目标 B 的权重为 25,目标 B 的权重为 75,总权重为 100,Cloud DNS 路由的 25/100 = 总数的 0.25 (25%) 定位 A 的流量,75/100= 定位 B 的流量为 0.75 (75%)。

  2. 外部 IP 地址部分中,执行以下操作:

    1. 对于 IP 地址,输入外部 IP 地址。
    2. 可选:如需选择当前项目中 Google Cloud 资源的外部 IP 地址,请点击选择
    3. 如需启用健康检查,请选择健康检查 1
    4. 可选:如需添加其他外部 IP 地址,请点击添加 IP 地址
    5. 点击完成
  3. 如果您在上一步中启用了健康检查,请在健康检查列表中选择一项健康检查,或按照以下步骤创建新的健康检查。

    1. 点击创建新的健康检查
    2. 名称字段中,输入健康检查的名称。
    3. 可选:在说明部分,输入健康状况说明。 检查。
    4. 对于来源区域,选择您要从中发送健康检查探测的任意三个 Google Cloud 区域。
    5. 可选:在协议列表中,选择一个协议。
    6. 对于端口,请输入端口号。

      协议和端口号决定了 Cloud DNS 发送健康检查探测的方式。

    7. 可选:如需配置基于内容的健康检查,请在响应字段中 提供预期的响应字符串,每个字符串最多为 1,024 个 ASCII(单字节) 个字符。

    8. 可选:如需启用健康检查日志,请针对日志选择开启

    9. 对于检查间隔,请输入间隔时间(以秒为单位) 健康检查探测之间的通信。检查间隔是 从一次探测器探测到 同一探测器发出的下一次探测的开始时间。

    10. 对于超时,输入您希望 Google Cloud 等待探测响应的时间(以秒为单位)。

    11. 对于运行状况良好判断阈值,请输入要将后端视为运行状况良好所需满足的连续成功探测次数。

    12. 对于运行状况不佳判断阈值,请输入要将后端视为运行状况不佳所需满足的连续失败探测次数。

    13. 点击创建

  4. 点击下一步

地理定位

  1. 对于地理围栏,选择停用启用。如果启用地理围栏,则系统会使流量仅流向特定的地理位置,即使该地理位置中的所有端点运行状况都不佳也是如此。
  2. 来源区域中,选择一个有效的 Google Cloud 来源区域。
  3. 外部 IP 地址部分,执行以下操作:
    1. IP 地址中,输入一个外部 IP 地址。
    2. 可选:选择 Google Cloud 的外部 IP 地址 当前项目中的资源,请点击选择
    3. 如需启用健康检查,请选择健康检查 1
    4. 可选:如需添加其他外部 IP 地址,请点击添加 IP 地址
    5. 点击完成
  4. 如果您在上一步中启用了健康检查,请在健康检查列表中选择一项健康检查,或按照以下步骤创建新的健康检查。

    1. 点击创建新的健康检查
    2. 名称字段中,输入健康检查的名称。
    3. 可选:对于说明,请输入 健康检查
    4. 来源区域部分,选择任意三个 Google Cloud 您要在其中发送健康检查探测的区域。
    5. 可选:在协议列表中,选择一个协议。
    6. 对于端口,请输入端口号。

      协议和端口号决定了 Cloud DNS 发送健康检查探测的方式。

    7. 可选:如需配置基于内容的健康检查,请在响应字段中 提供预期的响应字符串,每个字符串最多为 1,024 个 ASCII(单字节) 个字符。

    8. 可选:如需启用健康检查日志,请针对日志选择开启

    9. 对于检查间隔,请输入间隔时间(以秒为单位) 健康检查探测之间的通信。检查间隔是 从一次探测器探测到 同一探测器发出的下一次探测的开始时间。

    10. 对于超时,输入您希望 Google Cloud 等待探测响应的时间(以秒为单位)。

    11. 对于运行状况良好判断阈值,请输入要将后端视为运行状况良好所需满足的连续成功探测次数。

    12. 对于运行状况不佳判断阈值,请输入要将后端视为运行状况不佳所需满足的连续失败探测次数。

    13. 点击创建

  5. 点击下一步

故障切换

  1. 主要外部 IP 地址目标部分的 IP 地址中,输入要为此记录进行运行状况检查的主要外部 IP 地址。
  2. 可选:选择 Google Cloud 的主要外部 IP 地址 当前项目中的资源,请点击选择
  3. 可选:如需添加其他主要外部 IP 地址,请点击 添加定位条件。启用 DNSSEC 后,您只能添加一个主实例 外部 IP 地址目标 。
  4. 备份地理定位政策部分,执行以下操作:
    1. 对于地理围栏,选择停用启用。正在启用 地理围栏将流量限制在特定的地理位置 即使该地理定位中的所有端点运行状况不佳。
    2. 来源区域中,选择一个有效的 Google Cloud 来源区域。
    3. 外部 IP 地址部分,执行以下操作:
      1. 对于 IP 地址,输入外部 IP 地址。
      2. 可选:如需选择当前项目中 Google Cloud 资源的外部 IP 地址,请点击选择
      3. 如需启用健康检查,请选择健康检查 1
      4. 可选:如需添加其他外部 IP 地址,请点击 添加 IP 地址
    4. 点击完成
  5. 如果您在上一步中启用了健康检查, 健康检查列表中,选择一项健康检查。

    如果您还没有健康检查,请创建新的健康检查。

    1. 点击创建新的健康检查
    2. 名称字段中,输入健康检查的名称。
    3. 可选:在说明部分,输入健康状况说明。 检查。
    4. 对于来源区域,选择您要从中发送健康检查探测的任意三个 Google Cloud 区域。
    5. 可选:在协议列表中,选择一个协议。
    6. 对于端口,请输入端口号。

    协议和端口号决定了 Cloud DNS 发送健康检查探测的方式。

    1. 可选:如需配置基于内容的健康检查,请在响应字段中 提供预期的响应字符串,每个字符串最多为 1,024 个 ASCII(单字节) 个字符。
    2. 可选:如需启用健康检查日志,请针对日志选择开启
    3. 对于检查间隔,请输入间隔时间(以秒为单位) 健康检查探测之间的通信。检查间隔是 从一次探测器探测到 同一探测器发出的下一次探测的开始时间。
    4. 对于超时,输入您希望 Google Cloud 等待探测响应的时间(以秒为单位)。
    5. 对于运行状况良好判断阈值,请输入要将后端视为运行状况良好所需满足的连续成功探测次数。
    6. 对于运行状况不佳判断阈值,请输入要将后端视为运行状况不佳所需满足的连续失败探测次数。
    7. 点击创建
  6. 微流量 (%) 字段中,输入发送到故障切换目标的流量百分比,而不考虑主要目标的健康检查状态。

  7. 健康检查列表中,选择一项健康检查。

  8. 点击下一步

检查并创建

  1. 点击审核
  2. 使用路由政策配置查看 Cloud DNS 记录集。
  3. 点击创建

gcloud

如需为公开区域创建 DNS 路由政策,请按照以下说明操作 步骤。

  1. 如需在公开地区的 DNS 路由政策中启用健康检查,请执行以下操作: 为外部端点创建健康检查。

    运行 gcloud beta compute health-checks create 命令

    gcloud beta compute health-checks create PROTOCOL HEALTH_CHECK_NAME \
        --global \
        --check-interval=CHECK_INTERVAL \
        --source-regions=SOURCE_REGIONS \
        --port=PORT_NUMBER
    

    替换以下内容:

    • PROTOCOL:用于健康检查的协议。 有效选项包括 httphttpsssltcp
    • HEALTH_CHECK_NAME:健康检查的名称。
    • CHECK_INTERVAL:从开始算起的时间 一个健康检查探测系统连接到 下一个。该时间以秒为单位。CHECK_INTERVAL 值必须介于 30300 秒之间。
    • SOURCE_REGIONS:您要从中发送健康检查探测的 Google Cloud 区域的英文逗号分隔列表。
    • PORT_NUMBER:用于健康检查的端口号 请求。
  2. 如需创建 ResourceRecordSet 并对其应用路由政策,请运行 gcloud beta dns record-sets create 命令

    WRR

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

    替换以下内容:

    • RRSET_NAME:与 以此地区的 DNS 名称作为后缀的传入查询,例如 名称:service.example.com
    • TTL:解析器缓存此 ResourceRecordSet 的 TTL(以秒为单位),例如 30
    • RRSET_TYPE:资源记录类型 ResourceRecordSet,例如 A
    • MANAGED_ZONE:此 “ResourceRecordSet”所属的公司,例如 service-zone。 此 ResourceRecordSet 的名称必须具有以下 DNS 名称: 作为其后缀
    • ROUTING_POLICY_DATA:路由政策数据。 按如下格式输入以英文分号分隔的列表: ${weight_percent}:${rrdatas},例如 .8=203.0.113.1;.2=198.51.100.1。将权重指定为非负小数。权重必须是以下项中的非负数: 01000
    • HEALTH_CHECK_NAME:运行状况的名称 请检查您在上一步中创建的代码。

    地理定位

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

    替换以下内容:

    • RRSET_NAME:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如 service.example.com
    • TTL:解析器缓存此 ResourceRecordSet 的 TTL(以秒为单位),例如 30
    • RRSET_TYPE:资源记录类型 ResourceRecordSet,例如 A
    • MANAGED_ZONE:此 “ResourceRecordSet”所属的公司,例如 service-zone。 此ResourceRecordSet的名称必须包含 作为其后缀
    • ROUTING_POLICY_DATA:路由政策数据。输入格式为 ${region}=${IP_address},${IP_address} 的分号分隔列表,例如 asia-east1=198.51.100.1;us-central1=203.0.113.1, 203.0.113.2。您可以通过添加以英文逗号分隔的 IP 地址来为单个区域指定多个 IP 地址。转发规则名称 是可接受的值,并需要进行健康检查。
    • HEALTH_CHECK_NAME:运行状况的名称 请检查您在上一步中创建的代码。

    使用地理围栏进行地理定位

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

    替换以下内容:

    • RRSET_NAME:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如 service.example.com
    • TTL:解析器缓存此 ResourceRecordSet 的 TTL(以秒为单位),例如 30
    • RRSET_TYPE:资源记录类型 ResourceRecordSet,例如 A
    • 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 地址 (以英文逗号分隔)。转发规则名称是可接受的值,因此会启用健康检查。
    • HEALTH_CHECK_NAME:您在上一步中创建的健康检查的名称。

      --enable-geo-fencing:对于 GEO 路由政策,这确定了地区中的所有端点健康状况不佳时,流量是否应跨地区进行故障切换。设置完毕后,Cloud DNS 始终将查询定向到最近的区域,即使所有 各端点健康状况不佳。使用 --no-enable-geo-fencing 用于停用地理围栏。如果未设置,则当某个地区中的所有端点健康状况不佳时,Cloud DNS 会将查询定向到下一个最近地区。这个 默认为 false

    故障切换

    gcloud beta 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=ROUTING_POLICY_BACKUP_DATA \
        --routing-policy-backup-data-type=ROUTING_POLICY_BACKUP_DATA_TYPE \
        --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \
        --health-check=HEALTH_CHECK_NAME
    

    替换以下内容:

    • RRSET_NAME:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如 service.example.com
    • TTL:解析器缓存此 ResourceRecordSet 的 TTL(以秒为单位),例如 30
    • RRSET_TYPE:资源记录类型 ResourceRecordSet,例如 A
    • MANAGED_ZONE:与此 ResourceRecordSet 关联的代管式区域,例如 service-zone。此 ResourceRecordSet 的名称必须以该代管式区域的 DNS 名称作为后缀。
    • ROUTING_POLICY_PRIMARY_DATA:用于 FAILOVER 路由政策的主要目标。此目标必须是对一个或多个转发规则的引用,例如 forwarding-rule-1。只要这些转发邮件中至少有一个 规则健康状况良好,则所有健康状况良好的转发的 IP 地址 规则用于回答针对此名称的查询。
    • ROUTING_POLICY_BACKUP_DATA:用于 FAILOVER 路由政策的备份目标。这些目标是 --routing-policy-primary-data健康状况不佳。 Cloud DNS 仅支持基于地理位置的备份目标。如果 --routing-policy-type = 'GEO'(例如 asia-east1=forwarding-rule-2),此字段的格式与 --routing-policy-data 的格式匹配。
    • ROUTING_POLICY_BACKUP_DATA_TYPE:对于 FAILOVER 路由政策,是备份数据使用的路由政策的类型。此值必须为 GEO
    • BACKUP_DATA_TRICKLE_RATIO: 发送到备用目标的流量,即使主实例 健康状况良好。该比率必须介于 0 和 1 之间,例如 0.1。默认值为 0
    • HEALTH_CHECK_NAME:您在上一步中创建的健康检查的名称。

API

  1. 如需在公开地区的 DNS 路由政策中启用健康检查,请执行以下操作: 请使用 healthChecks.insert 方法

  2. 如需创建 ResourceRecordSet 并对其应用路由政策,请使用 resourceRecordSets.create 方法

    WRR

        POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
        {
            "name": "RRSET_NAME",
            "type": "RRSET_TYPE",
            "ttl": TTL,
            "routingPolicy": {
                "healthCheck": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/healthChecks/HEALTH_CHECK_NAME"
                "wrr": {
                    "items": [{
                        "weight": WEIGHT,
                        "healthCheckedTargets": {
                            "rrdata": ["RRDATA"]
                        }
                    }, {
                        "weight": 1.0,
                        "healthCheckedTargets": {
                            "rrdata": ["RRDATA", "RRDATA"]
                        }
                    }]
                }
            }
        }
      

    替换以下内容:

    • PROJECT_ID:项目的 ID
    • MANAGED_ZONE:与此 ResourceRecordSet 关联的代管式区域,例如 service-zone;此 ResourceRecordSet 的名称必须以该代管式区域的 DNS 名称作为后缀。
    • RRSET_NAME:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如 service.example.com
    • TTL:解析器缓存此 ResourceRecordSet 的 TTL(以秒为单位),例如 30
    • RRSET_TYPE:此 ResourceRecordSet 的资源记录类型,例如 A
    • HEALTH_CHECK_NAME:健康检查的名称。
    • 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

    地理定位

        POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
        {
            "name": "RRSET_NAME",
            "type": "RRSET_TYPE",
            "ttl": TTL,
            "routingPolicy": {
                "healthCheck": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/healthChecks/HEALTH_CHECK_NAME"
                "geo": {
              "enableFencing": ENABLE_FENCING
                    "items": [{
                        "location": "LOCATION",
                        "healthCheckedTargets": {
                            "rrdata": ["RRDATA"]
                        }
                    }, {
                        "location": "LOCATION",
                        "healthCheckedTargets": {
                            "rrdata": ["RRDATA", "RRDATA"]
                        }
                    }]
                }
            }
        }
      

    替换以下内容:

    • PROJECT_ID:项目的 ID
    • MANAGED_ZONE:与此 ResourceRecordSet 关联的代管式区域,例如 service-zone;此 ResourceRecordSet 的名称必须以该代管式区域的 DNS 名称作为后缀。
    • RRSET_NAME:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如 service.example.com
    • RRSET_TYPE:资源记录类型 ResourceRecordSet,例如 A
    • TTL:TTL(以秒为单位),解析器会在其中缓存此 TTL ResourceRecordSet,例如 30
    • HEALTH_CHECK_NAME:健康检查的名称。
    • ENABLE_FENCING:对于 GEO 路由政策,这确定了地区中的所有端点健康状况不佳时,流量是否应跨地区进行故障切换。设置后,Cloud DNS 始终会将查询定向到最近的地区,即使该地区中的所有端点健康状况都不佳。如果未设置,Cloud DNS 会将查询定向到 当一个区域内所有端点的健康状况都不佳时,再前往下一个最近的区域。 有效选项为 truefalse。默认设置为 false
    • LOCATION:对于 GEO 政策,您需要为其创建政策的地理位置,例如 asia-east1
    • RRDATA:与资源关联的任意值 记录集,例如 198.51.100.5;您也可输入多个 值、rrdata1rrdata2rrdata3,例如 198.51.100.1203.0.113.1

    故障切换

    在故障切换选项中,Cloud DNS 仅支持 GEO 政策。

        POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
        {
            "name": "RRSET_NAME",
            "type": "RRSET_TYPE",
            "ttl": TTL,
            "routingPolicy": {
                "healthCheck": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/healthChecks/HEALTH_CHECK_NAME"
                "primaryBackup": {
                    "trickleTraffic": TRICKLE_TRAFFIC,
                    "primaryTargets": {
                        "rrdata": ["RRDATA"]
                    }
                    "backupGeoTargets": {
                        "enableFencing": ENABLE_FENCING,
                        "items": [{
                            "location": "LOCATION",
                            "rrdatas": ["RRDATA]
                        }, {
                            "location": "LOCATION",
                            "rrdatas": ["RRDATA", "RRDATA"]
                        }]
                    }
                }
            }
        }
      

    替换以下内容:

    • PROJECT_ID:项目的 ID
    • MANAGED_ZONE:与此 ResourceRecordSet 关联的代管式区域,例如 service-zone;此 ResourceRecordSet 的名称必须以该代管式区域的 DNS 名称作为后缀。
    • RRSET_NAME:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如 service.example.com
    • RRSET_TYPE:资源记录类型 ResourceRecordSet,例如 A
    • TTL:TTL(以秒为单位),解析器会在其中缓存此 TTL ResourceRecordSet,例如 30
    • HEALTH_CHECK_NAME:健康检查的名称。
    • TRICKLE_TRAFFIC:发送到备份目标的流量的比率(即使主实例健康状况良好);该比率必须介于 0 和 1 之间,例如 0.1
    • RRDATA:与资源记录集关联的任意值,例如 198.51.100.5;您还可以输入多个值 rrdata1rrdata2rrdata3,例如 198.51.100.1203.0.113.1
    • ENABLE_FENCING:对于 GEO 项路由政策,此 这决定了流量是否必须跨区域进行故障切换, 同一区域的多个端点健康状况不佳。设置后,Cloud DNS 始终会将查询定向到最近的地区,即使该地区中的所有端点健康状况都不佳。如果未设置,Cloud DNS 会将查询定向到 当一个区域内所有端点的健康状况都不佳时,再前往下一个最近的区域。 默认设置为 false
    • LOCATION:对于GEO政策, 创建政策所需的 ID,例如 asia-east1

更新 DNS 路由政策

如需更新资源记录集的路由政策,请按以下步骤操作。

控制台

  1. 在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。

    转到 Cloud DNS 可用区

  2. 点击要为其更新资源记录集路由政策的可用区。

  3. 区域详情页面上,点击您要更新的资源记录集旁边的修改

  4. 完成更新后,点击保存

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:TTL(以秒为单位),解析器会在其中缓存此 TTL ResourceRecordSet,例如 30
  • RRSET_TYPE:此 ResourceRecordSet 的资源记录类型,例如 A

    如需查看受支持的记录类型的列表,请参阅选择资源记录类型

  • MANAGED_ZONE:与此 ResourceRecordSet 关联的代管式区域,例如 service-zone。此 ResourceRecordSet 的名称必须以该代管式区域的 DNS 名称作为后缀

  • ROUTING_POLICY_TYPE:路由政策的类型。

    对于加权轮循,输入 WRR;对于地理位置,输入 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-type = 'GEO'(例如 asia-east1=forwarding-rule-2),此字段的格式与 --routing-policy-data 的格式匹配。

  • 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://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
      "name": "RRSET_NAME.",
      "type": "RRSET_TYPE",
      "ttl": TTL,
      "routingPolicy": {
        "wrrPolicy": {
            "item": [
                  {
                      "weight": WEIGHT,
                      "rrdatas": ["RRDATA"]
                  },
                  {
                      "weight": WEIGHT,
                      "rrdatas": ["RRDATA"]
                  }
            ],
          }
    }
}

地理定位

请使用以下方法:

PATCH https://www.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"
                    "region": "REGION"
                    }
                  ]
                }
            },
            {
                "location": "LOCATION",
                "healthCheckedTargets": {
                  "internalLoadBalancers": [
                    {
                    "loadBalancerType": "LOAD_BALANCING_TYPE"
                    "ipAddress": "IP_ADDRESS"
                    "port" : "PORT_NUMBER"
                    "ipProtocol": "IP_PROTOCOL"
                    "networkUrl": "NETWORK_URL"
                    "project": "PROJECT"
                    "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 的 TTL(以秒为单位),例如 30
  • TRICKLE_TRAFFIC:发送到备份目标的流量的比率(即使主实例健康状况良好);该比率必须介于 0 和 1 之间,例如 0.1
  • 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;您还可以输入多个值 rrdata1 rrdata2 rrdata3,例如 198.51.100.1 203.0.113.1...
  • LOAD_BALANCER_TYPE:负载均衡器的类型。 例如 regionalL4ilbglobalL7ilbregionalL7ilb。 此设置是可选的。
  • IP_ADDRESS:转发规则传送的 IP 地址
  • PORT_NUMBER:端口号
  • IP_PROTOCOL:定义用于健康检查的协议。有效选项为 tcpudp
  • NETWORK_URL:此转发规则适用的网络网址
  • REGION:您在其中创建了转发规则的地区

删除 DNS 路由政策

要删除路由政策,您必须删除 包含路由政策。请按以下步骤操作。

控制台

  1. 在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。

    转到“Cloud DNS 可用区”

  2. 点击要为其删除资源记录集的区域。

  3. 区域详情页面上,选中要删除的资源记录集的 DNS 名称旁边的复选框。

  4. 点击删除记录集

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://www.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

后续步骤