跳转到内容
搜索文档

区域化 IP 绑定

最后更新 查看 MarkdownAgent 设置

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

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

工作原理

前缀绑定会将一个 CIDR(位于您拥有的 BYOIP 前缀内)映射到一个 区域键 (例如 useu)。当 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/25203.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: WriteDLS: Write,因为该绑定是在 寻址 的过程中对您所有的 BYOIP 前缀而建立的 —— Cloudflare 将验证您是否有权限修改该前缀。只有一个拥有 DLS: Write 的令牌可以读取区域和绑定,但在试图创建或改变绑定时则被拒绝。

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

列出可用区域

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

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 (managedcustom) 可以按 区域类型 筛选结果。结果进行分页 —— 使用返回中 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
}

相关资源

这篇文档对您有帮助吗?