本文介绍了次要 DNS 的用途,并概述了如何在 Cloudflare 中配置次要 DNS。
什么是次要 DNS?
次要 DNS 允许 Cloudflare 充当其他组织的主 DNS 的次要 DNS 提供商。 使用次要 DNS,可在 Cloudflare 之外的系统中编辑 DNS 条目,并将更改传输到 Cloudflare 的基础设施。 如果当前 DNS 提供商不支持区域传输,则 Cloudflare 无法成为次要 DNS 提供商。
先决条件
1.联系您的 Cloudflare 账户团队。
- 请求启用次要 DNS。
- 请求在主要 DNS 提供商中设置配置参数。
2.在需要次要 DNS 的域的 Cloudflare Overview 应用中:
- 识别 Cloudflare 账户 ID。
- 识别 Cloudflare 区域 ID。
- 请记下这两个 Cloudflare 域名服务器。
3.有关配置主区域的说明,请参阅主 DNS 提供商的文档。
4.从主区域确定配置参数:
- 主 IP 地址 - Cloudflare 应接受区域传输的 IP 地址。
- 区域传输类型 - 区域传输是完全(AXFR)还是增量(IXFR)?
- (可选)TSIG 密钥 - 用于验证区域传输的密钥字符串。
- (可选)TSIG 算法 - 用于验证区域传输的算法。
完成先决条件列表后,在 Cloudflare 中配置次要区域。
通过 CloudFlare API 配置次要区域
次要 DNS 只能通过 Cloudflare API 进行配置。可以通过命令行实用工具(如 cURL)或浏览器插件(如 Postman)将请求发送到 API。
有关可用的受支持 API 方法的完整示例,请参阅 Cloudflare API 文档:
对于以下步骤中提供的每个 POST 示例,请使用本文先决条件部分中标识的账户 ID 替换 :account_tag:
在下面的示例请求中,name 和 secret 必须由主要 DNS 提供商提供,并且 algo 必须反映来自主 DNS 服务器的正确 TSIG 算法。
#POST https://api.cloudflare.com/client/v4/accounts/:account_tag/secondary_dns/tsigs/ {"name": ":tsig_secret_name<e.g.zone-cf>",
"secret": ":tsig_secret_string",
"algo": "hmac-sha512"}
成功的 POST 请求将使用 id 进行响应。 添加主文件时包含此 ID。
可以通过 Cloudflare API 添加多个主文件。
#POST https://api.cloudflare.com/client/v4/accounts/:account_tag/secondary_dns/masters/{"ip": ":master_ip",
"port":53,
"ixfr_enable": true,
"tsig_id": ":tsig_tag"}
- :master_ip 是主域名服务器的 IPv4/IPv6 地址。
- ixfr_enable 设置为 true 将启用 IXFR 传输协议。默认值为 AXFR。
- :tsig_tag(可选)是第 1 步 - 配置 TSIG 中提供的 ID(如果已配置)
成功的 POST 请求将使用主 DNS 服务器的 ID 进行响应,并且在通过 Cloudflare API 创建次要区域时必须包含该请求。
#POST https://api.cloudflare.com/client/v4/zones/:zone_tag/secondary_dns/{"id": ":zone_tag",
"name": ":zone_name",
"masters": [ ":zone_master_tag" ],
"auto_refresh_seconds":86400 }
- :zone_tag 是为次要 DNS 配置的域的区域 ID。
- :zone_name 是为次要 DNS 配置的域名。
- :zone_master_tag 是在第 2 步 - 添加主文件中创建的主 ID 的列表。
将 TXT 记录添加到主要 DNS 提供商以测试传输到 Cloudflare 的次要 DNS 服务器。 然后,在查询 Cloudflare 的域名服务器时,验证 TXT 记录是否可见。 使用域的 Cloudflare 次要 DNS 服务器的正确名称替换 nsNNNN:
dig @nsNNN.secondary.cloudflare.com :zone_name txt +short