通过传出 zone 传输,您可以将 Cloudflare 作为主要 DNS 提供商,并使用一个或多个 secondary 提供商以提高可用性和容错能力。
请确保您的账户团队已为 zone 启用传出 zone 传输。
考虑不同记录类型的预期行为,并检查您的现有 DNS 记录,确保它们都具有所需的 Proxy status(代理状态)。
若使用 API,您可能还需要查找 Zone 和 Account ID。
Transaction Signature (TSIG) 用于验证主 DNS 服务器和辅助 DNS 服务器之间的通信。
此步骤为可选,但强烈建议执行。
要通过仪表板创建 TSIG:
-
在 Cloudflare 仪表板中,前往账户 Settings(设置) 页面。
Go to Configurations ↗ -
前往 DNS Settings(DNS 设置)。
-
在 DNS Zone Transfers(DNS 区域传输) 下,对于 TSIG,选择 Create(创建)。
-
输入以下信息:
- TSIG name(TSIG 名称):使用域名语法的 TSIG 对象名称(更多详情见 RFC 8945 section 4.2 ↗)。
- Secret (optional)(密钥(可选)):获取要添加到第三方 nameserver 的共享密钥。如果留空,此字段将生成随机密钥。
- Algorithm(算法):选择 TSIG 签名算法。
-
选择 Create(创建)。
要通过 API 创建 TSIG,请发送 POST 请求。
仅在以下情况下需要创建 peer DNS 服务器:
- 您希望 secondary nameserver 接收 Cloudflare DNS 记录更改的 NOTIFY。
- 使用 TSIG 对 zone 传输请求和 NOTIFY 进行签名。
使用仪表板创建 peer:
-
在 Cloudflare 仪表板中,前往账户 Settings(设置) 页面。
Go to Configurations ↗ -
前往 DNS Settings(DNS 设置)。
-
在 DNS Zone Transfers(DNS 区域传输) 下,对于 Peer DNS servers(对等 DNS 服务器),选择 Create(创建)。
-
输入以下信息,特别注意:
- IP:若已配置,指定 Cloudflare 发送 NOTIFY 请求的目标。
- Port(端口):指定 NOTIFY IP 的 IP 端口。
- Enable incremental (IXFR) zone transfers(启用增量 (IXFR) 区域传输):当您使用 Cloudflare 作为主要 DNS 提供商时不适用(Cloudflare zone 始终接受 IXFR 请求)。
- Link an existing TSIG(关联现有 TSIG):若需要,链接您先前创建的 TSIG。
-
选择 Create(创建)。
要使用 API 创建 peer DNS 服务器,请发送 POST 请求。
若您先前创建了 peer DNS 服务器,应将其链接到主要 zone。
使用仪表板将主要 zone 链接到 peer:
-
在 Cloudflare 仪表板中,前往 DNS Settings(DNS 设置) 页面。
Go to Settings ↗ -
对于 DNS Zone Transfers(DNS 区域传输),选择 Manage linked peers(管理已关联的对等服务器)。
-
选择一个 peer。
-
选择 Save(保存)。
您的 secondary DNS 提供商应向此 IP 的端口 53 发送 zone 传输请求(通过 AXFR 或 IXFR),并从您在 peer 配置中指定的 IP 地址发送。
它还应有更新的访问控制列表(ACL),以防止来自 Cloudflare IP 范围的 NOTIFY 消息被阻止。
使用 secondary DNS 提供商的信息,在 zone apex 上创建 NS 记录,列出 secondary nameserver。
默认情况下,Cloudflare 忽略添加到 zone apex 的 NS 记录。要修改此行为,请启用 multi-provider DNS。
-
在 Cloudflare 仪表板中,前往 DNS Settings(DNS 设置) 页面。
Go to Settings ↗ -
启用 Multi-provider DNS(多提供商 DNS)。
发送以下 PATCH 请求,将占位符替换为您的 zone ID 和身份验证信息:
Required API token permissions
At least one of the following token permissions is required:Zone DNS Settings WriteDNS Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_settings" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"multi_provider": true
}'启用传出 zone 传输时,将向 secondary DNS 提供商发送 DNS NOTIFY 消息。
-
在 Cloudflare 仪表板中,前往 DNS Settings(DNS 设置) 页面。
Go to Settings ↗ -
对于 Outgoing Zone Transfers(传出区域传输),将开关切换为 On(开启)。
要使用 API 启用传出 zone 传输,请发送 POST 请求。
在注册商处添加 secondary DNS 提供商的 nameserver。