本页面介绍了如何管理响应政策和响应政策规则。
借助 Cloud DNS 专用区域,您可以创建可修改的响应政策 根据响应政策规则确定解析器的行为。不过,您只能 为每个网络附加一项响应政策。
您可以在一项响应政策中创建多条规则,每条规则 执行以下任一操作:
- 通过提供特定的资源记录,更改所选查询名称(包括通配符)的结果。
- 触发 passthru 行为,该行为会绕过响应政策并排除原本匹配的名称。例如,对于通配符响应,这会使专用 DNS 查询匹配过程与未遇到通配符时一样继续。
如需了解 VPC Service Controls 如何使客户控制从其专用 VPC 网络进行的 API 访问,请参阅设置与 Google API 和服务的专用连接。
管理响应政策
创建响应政策
如需创建响应政策,请按照以下步骤操作。
控制台
在 Google Cloud 控制台中,转到 Cloud DNS 可用区页面。
点击响应政策区域标签页。
点击创建响应政策。
输入您要创建的响应政策的名称,例如
myresponsepolicy
。输入响应政策的说明,例如
My new response policy
从网络下拉列表中,选择与响应政策关联的一个或多个网络。
点击创建。
您可以在创建的每个响应政策区域中创建响应政策规则。如需了解相关说明,请参阅创建响应政策规则。
gcloud
运行 gcloud dns response-policies create
命令:
gcloud dns response-policies create RESPONSE_POLICY_NAME \ --networks=NETWORK \ [--description=DESCRIPTION]
请替换以下内容:
RESPONSE_POLICY_NAME
:您要创建的响应政策的名称或 ID,例如myresponsepolicy
NETWORK
:与响应政策关联的网络名称列表(以英文逗号分隔),例如network1, network2
DESCRIPTION
:响应政策的说明,例如My new response policy
API
使用 responsePolicies.create
方法发送 POST
请求:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies
将 PROJECT_ID
替换为要在其中创建响应政策的项目名称或 ID。
查看响应政策
如需查看给定项目中的所有响应政策列表或查看特定响应政策的说明,请按以下步骤操作。
控制台
在 Google Cloud 控制台中,转到 Cloud DNS 可用区页面。
点击响应政策区域标签页。
响应政策列表页面列出了您已创建的响应政策。
gcloud
如需查看项目中所有响应政策的列表,请运行
gcloud dns response-policies list
命令:gcloud dns response-policies list
您可以使用
--limit
标志限制响应政策的数量。例如,如需查看前十个响应政策列表,请运行以下命令:gcloud dns response-policies list \ --limit=10
如需查看响应政策的详细说明,请运行
gcloud dns response-policies describe
命令:gcloud dns response-policies describe RESPONSE_POLICY_NAME
将
RESPONSE_POLICY_NAME
替换为您要查看其说明的响应政策名称或 ID。
API
如需查看响应政策的详细说明,请使用 responsePolicies.get
方法发送 GET
请求:
GET https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME
请替换以下内容:
PROJECT_ID
:您已在其中创建响应政策的项目 IDRESPONSE_POLICY_NAME
:您要查看其说明的响应政策名称或 ID,例如myresponsepolicy
更新响应政策
如需更新响应政策,请按以下步骤操作。
控制台
在 Google Cloud 控制台中,转到 Cloud DNS 可用区页面。
点击要修改的响应政策。您也可以在响应政策名称行中点击 more_vert更多。
点击修改响应政策。
进行所需的更新。
点击保存。
gcloud
运行 gcloud dns response-policies update
命令:
gcloud dns response-policies update RESPONSE_POLICY_NAME
将 RESPONSE_POLICY_NAME
替换为您要更新的响应政策名称或 ID,例如 myresponsepolicy
。
对于任何已更新字段,请使用与 create
命令相同的语法。
API
如需对响应政策应用部分更新,请使用
responsePolicies.patch
方法发送PATCH
请求:PATCH https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME
请替换以下内容:
PROJECT_ID
:您已在其中创建响应政策的项目 IDRESPONSE_POLICY_NAME
:要更新的响应政策的名称或 ID,例如myresponsepolicy
如需更新响应政策,请使用
responsePolicies.update
方法发送UPDATE
请求:UPDATE https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME
请替换以下内容:
PROJECT_ID
:您已在其中创建响应政策的项目 IDRESPONSE_POLICY_NAME
:要更新的响应政策的名称或 ID,例如myresponsepolicy
删除响应政策
如需删除响应政策,请按以下步骤操作。
控制台
在 Google Cloud 控制台中,转到 Cloud DNS 可用区页面。
点击响应政策名称行中的more_vert更多。
点击删除。
gcloud
运行 gcloud dns response-policies delete
命令:
gcloud dns response-policies delete RESPONSE_POLICY_NAME
将 RESPONSE_POLICY_NAME
替换为要删除的响应政策的名称或 ID。
API
使用 responsePolicies.delete
方法发送 DELETE
请求:
DELETE https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME
请替换以下内容:
PROJECT_ID
:您已在其中创建响应政策的项目 IDRESPONSE_POLICY_NAME
:您要删除的响应政策的名称或 ID,例如myresponsepolicy
管理响应政策规则
网站的 DNS 响应政策包括 DNS 解析器在查找过程中查询的规则。如果响应政策中的规则影响传入的查询,则处理该规则;否则,查找将正常运行。
创建响应政策规则
如需创建响应政策规则,请按照以下步骤操作。
控制台
在 Google Cloud 控制台中,转到 Cloud DNS 可用区页面。
点击响应政策区域标签页。
在响应政策区域列表中,点击要为其创建规则的响应政策区域。
点击创建响应政策规则。
输入您要创建的响应政策规则的名称,例如
myresponsepolicyrule
。从选择器下拉列表中,选择要应用此规则的选择器类型。
输入要应用该规则的 DNS 名称(通配符或确切名称),例如
www.googleapis.com
。选择响应政策规则的操作。例如,如需更改响应政策的行为,请选择行为。否则,请选择本地数据。
如果您选择了行为,请从下拉列表中选择规则的行为。
如果选择本地数据,则必须添加新的资源记录集。如需了解如何添加新的资源记录集,请参阅创建资源记录集。
点击创建。
gcloud
如需更改所选查询名称的行为,请运行
gcloud dns response-policies rules create
命令并指定--type
标志:gcloud dns response-policies rules create RESPONSE_POLICY_RULE_NAME \ --response-policy=RESPONSE_POLICY_NAME \ --dns-name=DNS_NAME \ --local-data=name="DNS_NAME.",type="RRTYPE",ttl=TTL,rrdatas="RRDATA"
请替换以下内容:
RESPONSE_POLICY_RULE_NAME
:您要创建的响应政策规则的名称,例如myresponsepolicyrule
RESPONSE_POLICY_NAME
:响应政策的名称,例如myresponsepolicy
DNS_NAME
:DNS 或域名,例如www.googleapis.com
TTL
:响应政策的存留时间(例如21600
)RRTYPE
:资源记录类型,如A
RRDATA
:资源记录数据,例如1.2.3.4
。使用|
分隔多个条目,例如1.2.3.4|5.6.7.8
。
如需创建绕过规则,请运行
gcloud dns response-policies rules create
命令,并将--behavior
标志设置为bypassResponsePolicy
:gcloud dns response-policies rules create RESPONSE_POLICY_RULE_NAME \ --response-policy=RESPONSE_POLICY_NAME \ --dns-name=DNS_NAME \ --behavior=bypassResponsePolicy
请替换以下内容:
RESPONSE_POLICY_RULE_NAME
:您要创建的响应政策规则的名称,例如myresponsepolicyrule
RESPONSE_POLICY_NAME
:响应政策的名称,例如myresponsepolicy
DNS_NAME
:DNS 或域名,例如www.googleapis.com
API
如需创建新的响应政策规则,请使用
responsePolicyRules.create
方法发送POST
请求:POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules
请替换以下内容:
PROJECT_ID
:您已在其中创建响应政策的项目 IDRESPONSE_POLICY_NAME
:要为其创建规则的响应政策的名称或 ID,例如myresponsepolicy
查看响应政策规则
如需查看给定响应政策中所有响应政策规则的列表,或者查看特定响应政策规则的说明,请按照以下步骤操作。
控制台
在 Google Cloud 控制台中,转到 Cloud DNS 可用区页面。
在响应政策区域标签页上,点击要查看其关联规则的响应政策名称。响应政策详细信息页面列出了与响应政策关联的规则。
如需查看特定响应政策规则的详细信息,请点击规则的名称。您也可以在响应政策规则名称行中点击 more_vert更多。
gcloud
如需查看响应政策中的 Cloud DNS 响应政策规则列表,请运行
gcloud dns response-policies rules list
命令:gcloud dns response-policies rules list RESPONSE_POLICY_NAME
将
RESPONSE_POLICY_NAME
替换为响应政策的名称,例如myresponsepolicy
。如需查看有关特定响应政策规则的详细信息,请运行
gcloud dns response-policies rules describe
命令:gcloud dns response-policies rules describe RESPONSE_POLICY_RULE_NAME \ --response-policy=RESPONSE_POLICY_NAME
请替换以下内容:
RESPONSE_POLICY_RULE_NAME
:您要创建的响应政策规则的名称,例如myresponsepolicyrule
RESPONSE_POLICY_NAME
:响应政策的名称,例如myresponsepolicy
API
如需在响应政策中查看规则的详细说明,请使用 responsePolicyRules.get
方法发送 GET
请求:
GET https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules/RESPONSE_POLICY_RULE
请替换以下内容:
PROJECT_ID
:您已在其中创建响应政策的项目 IDRESPONSE_POLICY_NAME
:要为其创建规则的响应政策的名称或 ID,例如myresponsepolicy
RESPONSE_POLICY_RULE
:想要查看其详细信息的响应政策规则
更新响应政策规则
如要修改或更新响应政策规则,请按照下列步骤操作。
控制台
在 Google Cloud 控制台中,转到 Cloud DNS 可用区页面。
点击要为其修改规则的响应政策名称。
点击要修改的响应政策规则的名称。
在响应政策规则详情页面上,点击要修改的规则名称。
进行所需的更新。
点击保存。
gcloud
运行 gcloud dns response-policies rules update
命令:
gcloud dns response-policies rules update RESPONSE_POLICY_RULE_NAME \ --response-policy=RESPONSE_POLICY_NAME
请替换以下内容:
RESPONSE_POLICY_RULE_NAME
:您要创建的响应政策规则的名称,例如myresponsepolicyrule
RESPONSE_POLICY_NAME
:响应政策的名称,例如myresponsepolicy
对于任何已更新字段,请使用与
create
命令相同的语法。
API
如需对响应政策规则应用部分更新,请使用
responsePolicyRules.patch
方法发送PATCH
请求:PATCH https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules/RESPONSE_POLICY_RULE
请替换以下内容:
PROJECT_ID
:您已在其中创建响应政策的项目 IDRESPONSE_POLICY_NAME
:要为其更新规则的响应政策的名称或 ID,例如myresponsepolicy
RESPONSE_POLICY_RULE
:您要更新的响应政策规则
如需更新响应政策规则,请使用
responsePolicyRules.update
方法发送UPDATE
请求:UPDATE https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules/RESPONSE_POLICY_RULE
请替换以下内容:
PROJECT_ID
:您已在其中创建响应政策的项目 IDRESPONSE_POLICY_NAME
:要为其更新规则的响应政策的名称或 ID,例如myresponsepolicy
RESPONSE_POLICY_RULE
:您要更新的响应政策规则
删除响应政策规则
如需删除响应政策规则,请按以下步骤操作。
控制台
在 Google Cloud 控制台中,转到 Cloud DNS 可用区页面。
点击要为其修改规则的响应政策名称。
点击要删除的响应政策规则的名称。
在响应政策规则详情页面上,点击响应政策规则名称行中的 more_vert更多。
点击删除。您还可以点击要删除的规则:在响应政策规则详细信息页面上,点击删除响应政策规则。
gcloud
如需删除 Cloud DNS 响应政策规则,请运行
gcloud dns response-policies rules delete
命令:gcloud dns response-policies rules delete RESPONSE_POLICY_RULE_NAME \ --response-policy=RESPONSE_POLICY_NAME
请替换以下内容:
RESPONSE_POLICY_RULE_NAME
:您要创建的响应政策规则的名称,例如myresponsepolicyrule
RESPONSE_POLICY_NAME
:响应政策的名称,例如myresponsepolicy
API
如需删除响应政策规则,请使用
responsePolicyRules.delete
方法发送DELETE
请求:DELETE https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules/RESPONSE_POLICY_RULE
请替换以下内容:
PROJECT_ID
:您已在其中创建响应政策的项目 IDRESPONSE_POLICY_NAME
:您要从中删除规则的响应政策的名称或 ID,例如myresponsepolicy
RESPONSE_POLICY_RULE
:您要删除的响应政策规则
使用场景
本部分提供了为响应政策配置规则的使用场景。
将特定名称定向到受限 VIP 地址
您可以配置包含每个区域的本地 CNAME 数据的响应政策,以将 Google API 请求转换为受限 Google API。未指定的名称将继续使用常规 DNS 进行解析。
例如,您可以为 pubsub.googleapis.com
创建响应政策,其中包含某个区域的本地 CNAME 数据,以将 Google API 请求转换为 restricted.googleapis.com
。与此同时,未指定的 www.googleapis.com
将继续使用常规 DNS 来解析。
在以下示例配置中,您将创建一项政策并将其应用于特定 VPC 网络。
gcloud
如需创建响应政策,请运行
gcloud dns response-policies create
命令:gcloud dns response-policies create RESPONSE_POLICY_NAME \ --networks=NETWORK \ --description=DESCRIPTION
请替换以下内容:
RESPONSE_POLICY_NAME
:您要创建的响应政策的名称或 ID,例如myresponsepolicy
NETWORK
:要与响应政策关联的网络名称列表(以英文逗号分隔),例如network1,network2
DESCRIPTION
:响应政策的说明,例如My new response policy
如果您仅使用
restricted.googleapis.com
的 IPv4 地址范围,请将规则添加到包含 IPv4 地址范围记录集的政策。gcloud dns response-policies rules create
命令:gcloud dns response-policies rules create RESPONSE_POLICY_RULE_NAME \ --response-policy=RESPONSE_POLICY_NAME \ --dns-name=DNS_NAME. \ --local-data=name="DNS_NAME.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
请替换以下内容:
RESPONSE_POLICY_RULE_NAME
:您要创建的响应政策规则的名称,例如myresponsepolicyrule
RESPONSE_POLICY_NAME
:响应政策的名称,例如myresponsepolicy
DNS_NAME
:要为其创建规则的 DNS 名称,例如pubsub.googleapis.com.
;注意结尾的点
如果您同时使用
restricted.googleapis.com
的 IPv6 和 IPv4 地址范围,请将规则添加到包含 IPv4 和 IPv6 地址范围记录集的政策。gcloud dns response-policies rules create RESPONSE_POLICY_RULE_NAME \ --response-policy=RESPONSE_POLICY_NAME \ --dns-name=DNS_NAME. \ --local-data=name="DNS_NAME.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7" \ --local-data=name="DNS_NAME.",type="AAAA",ttl=300,rrdatas="2600:2d00:0002:1000::"
API
通过网址创建响应政策:
{ kind: "dns#responsePolicy", response_policy_name: RESPONSE_POLICY_NAME, description: RESPONSE_POLICY_DESCRIPTION, networks: [ { network_url: URL_TO_NETWORK; } ] }
请替换以下内容:
RESPONSE_POLICY_NAME
:响应政策的名称RESPONSE_POLICY_DESCRIPTION
:响应政策的说明URL_TO_NETWORK
:要为其创建响应政策的网址
如果您仅使用
restricted.googleapis.com
的 IPv4 地址范围,请将规则添加到包含 IPv4 地址范围记录集的政策。{ kind: "dns#responsePolicyRules", rule_name: RULE_NAME, dns_name: DNS_NAME, local_data: [ { name: "DNS_NAME.", type: "A", ttl: 300, rrdata: ["199.36.153.4", "199.36.153.5", "199.36.153.6", "199.36.153.7"] } ] }
请替换以下内容:
RULE_NAME
:要创建的规则的名称,例如pubsub
DNS_NAME
:要为其创建规则的 DNS 名称,例如pubsub.googleapis.com.
;注意结尾的点
如果您同时使用
restricted.googleapis.com
的 IPv6 和 IPv4 地址范围,请将规则添加到包含 IPv4 和 IPv6 地址范围记录集的政策。{ kind: "dns#responsePolicyRules", rule_name: RULE_NAME, dns_name: DNS_NAME, local_data: [ { name: "DNS_NAME.", type: "A", ttl: 300, rrdata: [""199.36.153.4", "199.36.153.5", "199.36.153.6", "199.36.153.7""] } ], local_data: [ { name: "DNS_NAME.", type: "AAAA", ttl: 300, rrdata: ["2600:2d00:0002:1000::"] } ] }
请替换以下内容:
RULE_NAME
:要创建的规则的名称,例如pubsub
DNS_NAME
:要为其创建规则的 DNS 名称,例如pubsub.googleapis.com.
;注意结尾的点
将除部分名称以外的所有名称定向到受限 VIP 地址
您可以设置规则,以从覆盖整个网域或大型 IP 地址块的政策规则中豁免某些 DNS 响应。此概念称为“passthru 行为”。通过使用 passthru 行为,您可以允许不支持 Service Control 的名称绕过通配符名称。
例如,您可以允许 www.googleapis.com
绕过示例 *.googleapis.com
中的通配符名称。www
的完全匹配优先于通配符 *
。
在以下示例配置中,您将创建具有指定名称的政策,并将其应用于特定 VPC 网络。该规则允许 www.googleapis.com
绕过通配符 *.googleapis.com
。
gcloud
如需创建响应政策,请运行
gcloud dns response-policies create
命令:gcloud dns response-policies create RESPONSE_POLICY_NAME \ --networks=NETWORK \ --description=DESCRIPTION
请替换以下内容:
RESPONSE_POLICY_NAME
:您要创建的响应政策的名称或 ID,例如myresponsepolicy
NETWORK
:要与响应政策关联的网络名称列表(以英文逗号分隔),例如network1,network2
DESCRIPTION
:响应政策的说明,例如My new response policy
如需向政策添加绕过规则,请运行
gcloud dns response-policies rules create
命令,并将--behavior
标志设置为bypassResponsePolicy
:gcloud dns response-policies rules create RESPONSE_POLICY_RULE_NAME \ --response-policy=RESPONSE_POLICY_NAME \ --dns-name=DNS_NAME \ --behavior=bypassResponsePolicy
请替换以下内容:
RESPONSE_POLICY_RULE_NAME
:您要创建的响应政策规则的名称,例如myresponsepolicyrule
RESPONSE_POLICY_NAME
:响应政策的名称,例如myresponsepolicy
DNS_NAME
:DNS 或域名,例如www.googleapis.com
API
创建响应政策:
{ kind: "dns#responsePolicy", response_policy_name: RESPONSE_POLICY_NAME, description: RESPONSE_POLICY_DESCRIPTION, networks: [ { network_url: URL_TO_NETWORK; } ] }
请替换以下内容:
RESPONSE_POLICY_NAME
:响应政策的名称,例如my-response-policy
RESPONSE_POLICY_DESCRIPTION
:响应政策的说明,例如my response policy
URL_TO_NETWORK
:要为其创建响应政策的网址
向政策添加规则:
{ kind: "dns#responsePolicyRules", rule_name: RULE_NAME, dns_name: DNS_NAME, local_data: [ { name: "*.googleapis.com.", type: "A", ttl: 300, rrdata: ["restricted.googleapis.com."] } ] } { kind: "dns#responsePolicyRules", rule_name: "www-passthru", dns_name: "www.googleapis.com.", behavior: BYPASS_RESPONSE_POLICY }
请替换以下内容:
RULE_NAME
:要创建的规则的名称,例如googleapis
DNS_NAME
:要为其创建规则的通配符 DNS 名称,例如*.googleapis.com.
;注意结尾的点
后续步骤
- 如需使用代管式区域,请参阅创建、修改和删除区域。
- 如需了解您在使用 Cloud DNS 时可能会遇到的常见问题的解决方案,请参阅问题排查。
- 如需大致了解 Cloud DNS,请参阅 Cloud DNS 概览。