在创建 Spectrum 应用程序时,Cloudflare 通常会从 Cloudflare 的 IP 池中为您分配一个任意 IP。如果您希望在网络设置中进行明确说明或使用您自己的 IP 地址,通过 Spectrum 的 BYOIP 就可以实现。
BYOIP 代表 自带 IP (Bring Your Own IP)。如果您拥有一个 IP 前缀,您可以将其迁移到 Cloudflare。迁移后,Cloudflare 会广播您的 IP 前缀,并将流量路由到全球 Cloudflare 网络。但是,如果没有进行配置,Cloudflare 将不知道如何处理这些流量。最后一步是为您希望使用与之关联的 IP 地址保护的所有应用程序添加 Spectrum 应用程序。
Cloudflare 目前支持的最小前缀是 IPv4 的 /24 和 IPv6 的 /48。
BYOIP 并不是 Spectrum 的标准配置。要启用它,请联系您的客户团队。
要使用 IP,必须将其分配给 Spectrum 应用程序,以创建相应的 A (IPv4) 或 AAAA (IPv6) 记录。这可以通过在通过 API 创建应用程序时指定一个或多个 IP 地址来完成。对应用程序属性的任何更改也必须通过 API 完成。此外,您必须将 DNS 的 "type" 字段更新为 "ADDRESS",才能使用 BYOIP 创建 Spectrum 应用程序。
{
"id": "4590376cf2994d72cee36828ec4eff19",
"protocol": "tcp/22",
"dns": {
"type": "ADDRESS",
"name": "ssh.example.com"
},
"origin_direct": ["tcp://192.0.2.1:22"],
"ip_firewall": true,
"proxy_protocol": false,
"spp": false,
"tls": "off",
"traffic_type": "direct",
"edge_ips": {
"type": "static",
"ips": ["198.51.100.10", "2001:DB8::1"]
}
}在下面的示例中,应用程序通过 Cloudflare 的 HTTP 管道路由流量,包括 WAF、Workers 和 CDN 功能。
Required API token permissions
At least one of the following token permissions is required:Zone Settings Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"protocol": "tcp/80",
"dns": {
"type": "ADDRESS",
"name": "www.example.com"
},
"origin_direct": [
"tcp://192.0.2.1:80"
],
"tls": "off",
"traffic_type": "http",
"edge_ips": {
"type": "static",
"ips": [
"198.51.100.10",
"2001:DB8::1"
]
}
}'