您可以配置 Cloudflare 服务的源 IP 地址范围,以便在 Cloudflare 服务(例如 Cloudflare Load Balancing)向 Cloudflare One 私有网络发送流量时使用。该地址范围被称为 Cloudflare Source IP Prefix(或 API 中的 cloudflare_source 子网类型)。
- IPv4 流量源自
100.64.0.0/12。此范围是可配置的。 - IPv6 流量源自
2606:4700:cf1:5000::/64。此范围不可配置。
当 Cloudflare 服务向您的私有网络发送流量时,源 IP 地址决定了返回流量的路由方式。它还决定了本地安全设备是否能够正确检查流量。在旧版路由模式中,发往私有网络的流量源自公共 Cloudflare IP,这可能会导致路由和安全问题。
对于使用 Unified Routing(Beta) 的客户,发往私有网络的流量默认源自专用的、不可在互联网路由的私有 IPv4 范围。这确保了:
- 对称路由 —— 返回流量保持在您的私有网络连接上,而不是通过公共互联网走非对称路径。
- 防火墙状态保持 —— 本地状态防火墙可以端到端跟踪连接,因为它们能看到请求和响应流量。
- 安全与合规 —— 私有流量保持在安全的私有路径上。
客户可能希望更改默认分配的范围,以避免 IP 冲突或符合现有的 IP 地址管理计划。
您必须在网络中配置路由,以便将这些源范围的响应流量通过您的 Cloudflare One 连接发送回 Cloudflare。
在开始之前,请确保:
- 您拥有 Cloudflare One Unified Routing(Beta)。如果您的账户尚未启用 Unified Routing,请联系您的账户团队讨论迁移和可用性。
- 您拥有 Cloudflare One Networks Write 权限。
- 您期望的新网络范围满足以下要求:
- 您的网络必须定义为前缀长度为
/12的单个 CIDR。 - 同一账户中的 Cloudflare One 子网不能重叠。默认分配包括:
- Cloudflare Source IP (
100.64.0.0/12) - Hostname Route Token IP (
100.80.0.0/16) - Cloudflare One 客户端 (
100.96.0.0/12) - 私有负载均衡器 (
100.112.0.0/16)
- Cloudflare Source IP (
- 源子网不能与 Cloudflare One 路由表中的任何现有路由匹配或包含其中。源子网可以位于超网(supernet)路由内。
- 您的网络必须定义为前缀长度为
Cloudflare One 支持多种 连接选项。当 Cloudflare 服务作为 offramp 向连接的网络或终端节点发起请求时,以下连接器将接收来自 cloudflare_source 子网的流量:
- 任播隧道: GRE、IPsec 和 CNI
- 软件连接器: Cloudflare One Client 和 Cloudflare Mesh
通过 Cloudflare Tunnel 连接的网络或终端节点不会接收来自 Cloudflare 源 IP 子网的流量。相反,源 IP 地址将是运行 cloudflared 软件的宿主机的 IP 地址。
所有发起或代理连接的 Cloudflare 服务都将从 Cloudflare 源 IP 发送流量。
这包括从私有网络或终端节点 onramp 代理的流量。
例如,从 Cloudflare One Client 经由 Cloudflare Load Balancer 或 Gateway DNS 解析器(DNS Resolver)进行 onramp 的流量,将向目标 offramp 呈现 Cloudflare 源 IP。
-
转到 Address space(地址空间) 页面。
Go to Address space ↗ -
选择 Custom IPs(自定义 IP) 选项卡。
-
找到您要更新的前缀。这是您的新
/12范围。 -
选择前缀右侧的三个点 > Edit(编辑)。
-
在 IP address(IP 地址) 字段中输入新的前缀。
-
选择 Save(保存)。
若要设置您的源 IP,请发送 PATCH request 至 Update Cloudflare Source Subnet 终端节点,并附带您期望的网络范围。有效负载(payload)必须包含网络(您的新 /12 范围),并且可以包含名称(name)和注释(comment)。
示例:
Required API token permissions
At least one of the following token permissions is required:Cloudflare One Networks Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/zerotrust/subnets/cloudflare_source/$ADDRESS_FAMILY" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"comment": "example_comment",
"name": "IPv4 Cloudflare Source IPs",
"network": "100.64.0.0/12"
}'