跳转到内容
搜索文档

区域化 IP 绑定

最后更新 查看 MarkdownAgent 设置

区域化 IP 绑定使您能在 IP 层对自带的前缀进行流量区域化,这些前缀是您通过 自带 IP (BYOIP) 引入 Cloudflare 的。您可以将您其中一个前缀的 CIDR 绑定到一个区域,然后 Cloudflare 仅会在该区域的数据中心内处理目的地为这些 IP 地址的流量。

这补充了使用 区域服务 的其他方式:当 区域主机名 按主机名区域化流量时,区域化 IP 绑定按 IP 前缀对流量进行区域化 —— 非常适合地址映射部署和任何通过 IP(而非主机名)进行寻址的服务。由于绑定是完全通过 API 管理的,因此一旦您的权利启用后,您就可以自行进行广泛配置的区域化,无需客户团队进行每个区域的设置。

工作原理

前缀绑定会将一个 CIDR(位于您拥有的 BYOIP 前缀内)映射到一个 区域键 (例如 us 或 eu)。当 Cloudflare 提供绑定后,通往该 CIDR 中的地址的流量将会终止 TLS,且仅在配置的区域内被处理,这遵循在 区域服务 中描述的相同的区域内处理模型。

绑定通过 Data Localization Suite API 进行管理,路径位于 /accounts/{account_id}/dls/ 下。

选择绑定的 CIDR

绑定会涵盖前缀中的一系列地址范围,而不仅仅是单个地址 —— 您不需要为每个 IP 地址创建单个绑定。您绑定的 cidr 必须:

  • 属于由 prefix_id 标识的前缀范围内。
  • 必须比该前缀本身更具体 —— 它是其中的一个子范围。例如,在 /24 前缀内,您可以绑定从 /25 向下直到单一地址 (对于 IPv4 为 /32,对于 IPv6 为 /128) 的任意范围。尝试绑定整个前缀 (完整的 /24) 将会被带有 冲突错误 拒绝,因为整个前缀范围在 Cloudflare 宣布它之后即处于已使用状态。

如何选择 CIDR 取决于您想要如何在不同的区域拆分前缀:

  • 整个前缀分配到一个区域 —— 使用所有指向同一区域的子范围涵盖前缀。例如,将 203.0.113.0/25 和 203.0.113.128/25 都绑定到 eu 就可以区域化一个 /24 里的每一个地址。
  • 不同地址分配到不同区域 —— 将每个范围分别绑定到您想要的区域 (例如 203.0.113.0/25 绑定到 eu,而 203.0.113.128/25 绑定到 us)。Cloudflare 会应用匹配给定地址的、最具体的绑定,因此较窄的绑定优先于覆盖它的较广范围的绑定。

每一个 CIDR 只能有一个绑定。如果尝试为一个已经被绑定的 CIDR 创建第二个绑定,API 会返回一个 冲突错误。如需更改现有绑定的区域,请 更新该绑定 而不是创建新的绑定。

先决条件

在创建绑定之前,请确保:

  • 您的账户启用了Regional Services(区域服务) 和 Regional Services for BYOIP(区域服务 BYOIP) 权利。请联系客户团队启用。
  • 您已将某个 BYOIP 前缀 入站 到 Cloudflare,并知道其前缀 ID。
  • 您想要使用的区域对您的账户是可用的。请参阅 列出可用区域。
  • 您的 API 令牌 具备所需的权限。请参阅 必需的 API 令牌权限。

必需的 API 令牌权限

这些端点在账户级别授权。您所需的权限取决于操作类型:

操作 必需的令牌权限
列出区域,获取区域,列出或获取绑定 DLS: Read
创建,更新,或删除前缀绑定 DLS: Write 以及 IP Prefixes: Write

写操作要求使用 IP Prefixes: Write 及 DLS: Write,因为该绑定是在 寻址 的过程中对您所有的 BYOIP 前缀而建立的 —— Cloudflare 将验证您是否有权限修改该前缀。只有一个拥有 DLS: Write 的令牌可以读取区域和绑定,但在试图创建或改变绑定时则被拒绝。

超级管理员 (Super Administrator) 和管理员 (Administrator) 角色拥有所有的这些权限。自定义角色只要包含上面的权限组就可以发挥作用。

列出可用区域

每一个绑定利用 region_key 引用一个区域 (例如 us 或 eu) 。列出您账户里可用的所有区域去寻找一个有效的键。

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/dls/regions" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Responsejson
{
	"success": true,
	"errors": [],
	"messages": [],
	"result": [
		{
			"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
			"name": "Europe",
			"region_key": "eu",
			"created_on": "2026-01-13T23:59:45.276558Z",
			"modified_on": "2026-01-13T23:59:45.276558Z",
			"version": 1,
			"version_created_on": "2026-01-13T23:59:45.276558Z"
		}
	],
	"result_info": {
		"count": 1,
		"per_page": 25,
		"cursor": ""
	}
}

使用查询参数 type (managed 或 custom) 可以按 区域类型 筛选结果。结果进行分页 —— 使用返回中 cursor 数值提取下一页内容。

获取单个区域

通过它的 region_key 或 ID 提取一个区域。

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/dls/regions/eu" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

创建前缀绑定

将您的某个 BYOIP 前缀的一个 CIDR 绑定到一个区域。该 cidr 必须落入通过 prefix_id 标识的前缀内,且必须 比前缀本身更具体。

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/dls/regional_services/prefix_bindings" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"prefix_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
		"cidr": "203.0.113.0/25",
		"region_key": "eu"
	}'
Responsejson
{
	"success": true,
	"errors": [],
	"messages": [],
	"result": {
		"id": "f0e1d2c3-b4a5-6789-0abc-def123456789",
		"prefix_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
		"cidr": "203.0.113.0/25",
		"region_key": "eu"
	}
}

处理冲突错误

因为 每一个 CIDR 只能有一个绑定,针对某一个已经拥有了配置绑定的 CIDR 所发的建立请求,该失败会有 HTTP 409 冲突:

Responsejson
{
	"result": null,
	"success": false,
	"errors": [
		{
			"code": 1108,
			"message": "conflict: binding already exists for CIDR 203.0.113.0/24"
		}
	],
	"messages": []
}

出现错误是下面两个情况之一:

  • 尝试绑定完整的前缀。 该完全前缀区间段范围(譬如说是完整的一个 /24)在 Cloudflare 公告这一个特定前缀段落就已经使用了,所以无法被继续直接作为一个区域绑定,而应选用更加详细的小段范围 —— 在 /25 向下直至某个特定的单一 /32 —— 如若你确实有必要覆盖一整个原前缀的所有 IP,请创建几个不同段区间子范围将区域盖全。
  • 该 CIDR 已绑定。 一模一样范围内容的绑定已经有了,例如源于之前成功响应的某个请求。

解决它的方法是:

  • 列出您现存绑定信息 查对目前的配置状况。
  • 要将现成的绑定移动到另一个不同的区域,请 更新它 而不是创建一个新的。
  • 若要绑定一个不同的未被绑定的 CIDR 范围,请选择一个未绑定的 CIDR。若要替换已存在绑定的 CIDR 范围,请 先把它删了,然后再创建新绑定。

列出前缀绑定

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/dls/regional_services/prefix_bindings" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Responsejson
{
	"success": true,
	"errors": [],
	"messages": [],
	"result": [
		{
			"id": "f0e1d2c3-b4a5-6789-0abc-def123456789",
			"prefix_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
			"cidr": "203.0.113.0/25",
			"region_key": "eu"
		}
	],
	"result_info": {
		"count": 1,
		"per_page": 25,
		"cursor": ""
	}
}

获取单个绑定

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/dls/regional_services/prefix_bindings/%7Bbinding_id%7D" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

更新绑定的区域

更改某个绑定所指的区域。只有 region_key 才可以被更新。如果要更改 CIDR 的信息范围设置则需把绑定删除再创建一个新的。

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/dls/regional_services/prefix_bindings/%7Bbinding_id%7D" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"region_key": "us"
	}'
Responsejson
{
	"success": true,
	"errors": [],
	"messages": [],
	"result": {
		"id": "f0e1d2c3-b4a5-6789-0abc-def123456789",
		"prefix_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
		"cidr": "203.0.113.0/25",
		"region_key": "us"
	}
}

删除绑定

移除一个绑定以终止对该 CIDR 范围内的流量区域化生效。

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/dls/regional_services/prefix_bindings/%7Bbinding_id%7D" \
	--request DELETE \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Responsejson
{
	"success": true,
	"errors": [],
	"messages": [],
	"result": null
}

相关资源

这篇文档对您有帮助吗?