使用传出 zone 传输时,您将 Cloudflare 保留为主 DNS 提供商,并使用一个或多个辅助提供商以提高可用性和容错能力。
如果要在传出 zone 传输中使用 DNSSEC,应配置多签名者 DNSSEC。在设置 Cloudflare 作为主 DNS 后,请按以下步骤启用 DNSSEC。
请注意:
- 此过程要求您的其他 DNS 提供商也支持多签名者 DNSSEC。
- 尽管部分步骤可通过仪表板完成,但目前整个过程只能通过 API 完成。
- 在 DNS Settings(DNS 设置) ↗ 中启用 DNSSEC 和 Multi-signer DNSSEC(多方签名 DNSSEC) 仅替代下面的第一步。您仍需按照本教程的其余步骤完成设置。
- 使用 Edit DNSSEC Status 端点 为您的 zone 启用 DNSSEC 并激活多签名者 DNSSEC。方法是将
status设为active,并将dnssec_multi_signer设为true,如下例所示。
Required API token permissions
At least one of the following token permissions is required:DNS Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dnssec" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"status": "active",
"dnssec_multi_signer": true
}'- 通过在 zone 上创建 DNSKEY 记录,将外部提供商的 ZSK 添加到 Cloudflare。
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records' \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"type": "DNSKEY",
"name": "<ZONE_NAME>",
"data": {
"flags": 256,
"protocol": 3,
"algorithm": 13,
"public_key": "<PUBLIC_KEY>"
},
"ttl": 3600
}'-
DNSKEY 记录从 Cloudflare 传输到辅助提供商后,获取 Cloudflare 的 ZSK 并手动将其添加到 DNSKEY 记录中。
目前,ZSK 不会自动传出。您可以使用 API 或向其中一个已分配的 Cloudflare nameserver 查询来获取它。
API 示例:
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/dnssec/zsk' \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"命令行查询示例:
$ dig <ZONE_NAME> dnskey @<CLOUDFLARE_NAMESERVER> +noall +answer | grep 256- 在 registrar 处为每个提供商添加 DS 记录。您可以在 DNS Settings(DNS 设置) ↗ 页面的 DS Record(DS 记录) 下查看 Cloudflare DS 记录。
您在 registrar 处的 nameserver 设置应包含多签名者 DNSSEC 设置中将使用的所有提供商的 nameserver。