DNS 路由政策根据查询引导流量(例如轮循或地理定位)。您可以通过创建具有特定路由政策值的特殊 ResourceRecordSets
(在集合意义上)来配置路由政策。
本页面介绍如何使用 Cloud DNS 创建、修改和删除 DNS 路由政策,以及启用健康检查。在进行此页面的操作之前,请先熟悉 DNS 政策概览。
如需使用 DNS 路由政策,请创建 ResourceRecordSet
并选择以下某个 DNS 路由政策以应用于 ResourceRecordSet
:
加权轮循 (WRR) 路由政策:使用 WRR 可为每个
ResourceRecordSet
的 DNS 域名指定不同的权重。DNS 路由政策可确保根据配置的权重分配流量。系统不支持将 WRR 路由政策与地理定位路由政策结合使用。地理定位 (GEO) 路由政策:使用 GEO 指定来源地理位置,并提供与这些地理位置相对应的响应。如果流量来源与所有政策项都无法完全匹配,则地理定位路由政策会应用与来源位置最接近的匹配项。
GEO 通过以下方式映射公共和专用 DNS 的来源:
- 对于公共 DNS:系统将使用查询的来源 IP 地址或 DNS 扩展机制 (EDNS) 的客户端子网。
- 对于专用 DNS:系统将使用接收查询的位置,例如查询虚拟机的区域或接收入站转发查询的位置。
本地系统通过入站服务器政策入口点向 Cloud DNS 发送 DNS 查询时,Cloud DNS 会将来源位置定义为包含 Cloud VPN 隧道或处理传入数据包的 Cloud Interconnect 连接 (VLAN) 的区域。以这种方式定义来源位置时,与用作入站服务器政策入口点的内部 IP 地址的区域无关。
例如,如果本地系统向 IP 地址位于
us-west1
区域中的入站服务器政策入口点提交查询,但该数据包由 Cloud VPN 隧道或位于us-east1
区域的 Cloud Interconnect 连接 (VLAN) 进行处理,则来源区域为us-east1
,因为这是处理传入数据包的区域。地理围栏路由政策:使用地理围栏功能将流量限制到特定地理位置,即使该地理位置中的所有端点健康状况不佳。如需详细了解地理围栏,请参阅地理围栏路由政策。
故障切换路由政策:使用故障切换来设置活跃备份配置。如需了解详情,请参阅故障切换路由政策。
DNS 路由政策还支持每个地理位置拥有多个 IP 地址。为给定地理位置指定了多个 IP 地址时,系统会根据等效的加权 WRR 政策返回这些地址。系统不支持将基于地理位置的路由政策与自定义加权 WRR 政策结合使用。
健康检查
Cloud DNS 支持对启用了全球访问权限的内部直通式网络负载均衡器和内部应用负载均衡器以及跨区域内部应用负载均衡器进行健康检查。
设置内部直通式网络负载均衡器后,您可以使用 Google Cloud 控制台、gcloud CLI 或 API 在 Cloud DNS 中设置适当的路由政策,并指定内部直通式网络负载均衡器。此步骤涉及设置多个 WRR
或 GEO
存储桶,每个存储桶可以包含多个内部直通网络负载均衡器。
对于内部直通式网络负载均衡器,Cloud DNS 会检查内部直通式网络负载均衡器各个后端实例上的现有健康状况信息,以确定内部直通式网络负载均衡器是健康状况良好还是健康状况不佳。
Cloud DNS 会对传入的信号应用默认阈值 (20%)。只要内部直通式网络负载均衡器的 20% 的后端实例健康状况良好,内部直通式网络负载均衡器的端点就会被视为健康状况良好。如果健康状况低于阈值,则 DNS 路由政策会将内部直通网络负载均衡器的端点标记为健康状况不佳。如果后端的运行状况变好,DNS 路由政策会将内部直通网络负载均衡器的端点标记为运行状况良好,并在请求期间开始使用该端点。
对于内部应用负载均衡器和跨区域内部应用负载均衡器,Cloud DNS 会检查内部应用负载均衡器的整体健康状况,并让内部应用负载均衡器本身检查后端实例的健康状况。当端点被标记为健康状况不佳时,可能会发生以下情况:
- 如果针对一个政策编程了多个 VIP 地址,则仅返回健康状况良好的 VIP 地址。
如果针对政策存储桶编程的所有 VIP 地址健康状况不佳,则该政策行失败。以下行为适用:
准备工作
此过程假定您已完成以下操作:
- 创建了代管式可用区并满足了创建可用区的前提条件。
- 设置以下内部负载均衡器之一:
- 为内部负载均衡器创建了转发规则。
- 为内部负载均衡器设置健康检查。
创建 DNS 路由政策
ResourceRecordSet
可以包含 routingPolicy
或 rrdatas
,但不能同时包含两者。更新 ResourceRecordSets
时,系统支持在 rrdatas
或 routingPolicy
之间更改。例如,如果您想更新一个包含 rrdatas
的 ResourceRecordSet
,则可以删除 rrdatas
并将 routingPolicy
添加到同一 ResourceRecordSet
。
如需创建 ResourceRecordSet
并对其应用路由政策,请按照以下步骤操作。
控制台
开始配置
在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。
点击要在其中添加记录的托管区域的名称。
在可用区详细信息页面上,点击添加路由政策。
基础数据
在使用路由政策创建记录集页面的 DNS 名称字段中,输入 DNS 区域的子网域,例如
mail
。结尾处会自动添加结尾句点。选择资源记录类型,例如
A
。在 TTL 字段中,输入一个数值表示资源记录的生存时间,即该资源记录可缓存的时间期限。此值必须是正整数。
在 TTL 单位菜单中,选择时间单位,例如
30 minutes
。点击下一步。
路由政策类型
- 在路由政策列表中,选择加权轮循、地理位置或故障切换。
- 点击下一步。
路由政策数据
如果您选择了加权轮循,请在加权轮循政策路由数据部分中,执行以下操作:
- 在权重字段中,输入与资源记录 (RR) 数据的此子部分相对应的权重。此权重应为介于 0.0 到 1000.0 之间的非负数。路由到目标的流量比率是根据各个权重与所有权重之和的比率计算的。
在添加健康检查目标部分中,执行以下操作:
- 在项目列表中,选择存在转发规则的项目。
- 在类型列表中,选择内部直通网络负载均衡器、内部应用负载均衡器或跨区域内部应用负载均衡器。
在转发规则列表中,选择转发规则。
转发规则指定内部 IP 地址、端口、区域性后端服务或 HTTP(S) 代理。为了让 Cloud DNS 能够使用健康检查,您必须为内部负载均衡器启用全球访问权限。
如需在不使用健康检查的情况下允许 IPv4 地址,请选择在不启用健康检查的情况下允许 IPv4 地址。
在 IPv4 地址字段中,输入 IPv4 地址。
如果您选择了地理位置,请执行以下操作:
- 对于地理围栏,选择已停用或已启用。如果启用地理围栏,则系统会使流量仅流向特定的地理位置,即使该地理位置中的所有端点运行状况都不佳也是如此。
- 在来源区域菜单中,选择有效的 Google Cloud 来源区域,例如
asia-east1
。 在添加健康检查目标部分中,执行以下操作:
- 在项目列表中,选择存在转发规则的项目。
- 在类型列表中,选择内部直通网络负载均衡器、内部应用负载均衡器或跨区域内部应用负载均衡器。
在转发规则列表中,选择转发规则。
转发规则会指定内部 IP 地址、端口、区域性后端服务或 HTTP(S) 代理。为了让 Cloud DNS 能够使用健康检查,您必须为内部负载均衡器启用全球访问权限。
如需在不使用健康检查的情况下允许 IPv4 地址,请选择在不启用健康检查的情况下允许 IPv4 地址。
在 IPv4 地址字段中,输入 IPv4 地址。
如果您选择了故障切换,请执行以下操作:
- 在微流量 (%)字段中,输入发送到故障切换目标的流量百分比,而不考虑主要目标的健康检查状态。
在主要目标部分中,执行以下操作:
- 在项目列表中,选择存在转发规则的项目。
- 在类型列表中,选择内部直通网络负载均衡器、内部应用负载均衡器或跨区域内部应用负载均衡器。
在转发规则列表中,选择转发规则。
转发规则指定内部 IP 地址、端口、区域性后端服务或 HTTP(S) 代理。为了让 Cloud DNS 能够使用健康检查,您必须为内部负载均衡器启用全球访问权限。
在备份地理定位政策部分,执行以下操作:
- 对于地理围栏,选择已停用或已启用。如果启用地理围栏,则系统会使流量仅流向特定的地理位置,即使该地理位置中的所有端点运行状况都不佳也是如此。
- 在来源区域菜单中,选择有效的 Google Cloud 来源区域,例如
asia-east1
。 在添加健康检查目标部分中,执行以下操作:
- 在项目列表中,选择存在转发规则的项目。
- 在类型列表中,选择内部直通网络负载均衡器、内部应用负载均衡器或跨区域内部应用负载均衡器。
- 在转发规则列表中,选择转发规则。
当所有主要 IP 地址的健康状况都不佳时,系统将根据备份地理位置政策自动处理流量。
如需在不使用健康检查的情况下允许 IPv4 地址,请选择在不启用健康检查的情况下允许 IPv4 地址。
在 IPv4 地址字段中,输入 IPv4 地址。
点击下一步。
检查并创建
- 点击审核。
- 使用路由政策配置查看 Cloud DNS 记录集。
- 可选:点击等效注释行查看 gcloud CLI 命令,以使用路由政策创建此记录集。
- 点击创建。
gcloud
运行 gcloud dns record-sets create
命令。
对于地理位置政策
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
对于 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
对于地理围栏政策
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
对于故障切换政策
gcloud dns record-sets create 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-type=ROUTING_POLICY_BACKUP_DATA_TYPE \ --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
的 TTL(以秒为单位),例如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
的格式匹配。ROUTING_POLICY_BACKUP_DATA_TYPE
:对于FAILOVER
路由政策,是备份数据使用的路由政策的类型。此设置必须是GEO
。BACKUP_DATA_TRICKLE_RATIO
:要发送到备份目标的流量的比率,即使主实例健康状况良好。该比率必须介于 0 和 1 之间,例如0.1
。默认值设为 0。--enable-health-checking
:用于启用健康检查的标志。使用此标志时,您必须在--routing-policy-data
字段中提供转发规则名称,而不是 IP 地址。
API
使用 resourceRecordSets.create
方法。
对于地理位置政策
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" "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" } ] } }, } ] } } }
对于 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" "region": "REGION" } ] } }, { "weight": WEIGHT, "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCER_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT" "region": "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" "region": "REGION" } ] }, "backupGeoTargets": { "enableFencing": ENABLE_FENCING, "items": [ { "location": "LOCATION", "rrdatas": [ "RRDATA" ] }, { "location": "LOCATION", "rrdatas": [ "RRDATA" ] } ] } }, } }
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_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
;将权重指定为任何非负小数。RR_DATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.1
203.0.113.1
...LOAD_BALANCER_TYPE
:负载均衡器的类型,例如regionalL4ilb
IP_ADDRESS
:转发规则传送的 IP 地址PORT_NUMBER
:端口号IP_PROTOCOL
:定义用于健康检查的协议。有效选项为tcp
和udp
NETWORK_URL
:此转发规则适用的网络网址REGION
:您在其中创建了转发规则的地区
更新 DNS 路由政策
如需更新 ResourceRecordSet
的路由政策,请按照以下步骤操作。
控制台
在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。
点击要为其更新
ResourceRecordSet
的路由政策的可用区。在区域详情页面上,点击要更新的
ResourceRecordSet
旁边的edit修改。完成必要的更新后,点击保存。
gcloud
运行 gcloud dns record-sets update
命令:
对于地理位置政策
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
对于 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-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
的 TTL(以秒为单位),例如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.rrdatas
或 rrset.routingPolicy
中的一项。如果指定 routingPolicy
,则必须完整指定新的 routingPolicy
字段。
对于 GEO
政策,请使用以下方法:
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" } ] } }, } ] } } }
对于 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": ["RR_DATA"] }, { "weight": WEIGHT, "rrdatas": ["RR_DATA"] } ], } } }
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_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
;将权重指定为任何非负小数。RR_DATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.1
203.0.113.1
...LOAD_BALANCER_TYPE
:负载均衡器的类型,例如regionalL4ilb
IP_ADDRESS
:转发规则传送的 IP 地址PORT_NUMBER
:端口号IP_PROTOCOL
:定义用于健康检查的协议。有效选项为tcp
和udp
NETWORK_URL
:此转发规则适用的网络网址REGION
:您在其中创建了转发规则的地区
删除 DNS 路由政策
如需删除路由政策,您必须删除包含路由政策的 ResourceRecordSet
。请按以下步骤操作。
控制台
在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。
点击要为其删除
ResourceRecordSet
的区域。在可用区详情页面上,选中要删除的
ResourceRecordSet
的 DNS 名称旁边的复选框。点击删除记录集。
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
:项目的 IDMANAGED_ZONE
:与此ResourceRecordSet
关联的代管式区域,例如my-zone-name
;此ResourceRecordSet
的名称必须以该代管式区域的 DNS 名称作为后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此可用区的 DNS 名称作为其后缀,例如test.example.com
RRSET_TYPE
:此ResourceRecordSet
的资源记录类型,例如A
后续步骤
- 如需使用代管式区域,请参阅创建、修改和删除区域。
- 如需了解您在使用 Cloud DNS 时可能会遇到的常见问题的解决方案,请参阅问题排查。
- 如需大致了解 Cloud DNS,请参阅 Cloud DNS 概览。