← Cloudflare Spectrum / spectrum / about
BYOIP
При создании приложения Spectrum Cloudflare обычно назначает ему произвольный IP-адрес из своего пула. Если вы хотите точно контролировать настройку сети или использовать собственные IP-адреса, для этого предназначен BYOIP для Spectrum.
BYOIP расшифровывается как Bring Your Own IP. Если у вас есть собственный префикс IP адресов, вы можете перенести его в Cloudflare. После переноса Cloudflare анонсирует ваш префикс IP адресов, и трафик направляется в глобальную сеть Cloudflare. Однако без дополнительной настройки Cloudflare не будет знать, как обрабатывать этот трафик. Последний шаг: добавить приложения Spectrum для всех приложений, которые вы хотите защитить, с нужными вам IP адресами.
Наименьшие префиксы, которые Cloudflare поддерживает в настоящее время, составляют /24 для IPv4 и /48 для IPv6.
BYOIP не включен в Spectrum по умолчанию. Чтобы включить эту функцию, обратитесь к своей команде по работе с аккаунтом.
Назначьте IP-адрес
Чтобы использовать IP-адрес, его нужно назначить приложению Spectrum, тогда будут созданы соответствующие записи A (IPv4) или AAAA (IPv6). Для этого при создании приложения через API указывается один или несколько IP-адресов. Любые изменения свойств приложения также нужно вносить через API. Кроме того, необходимо обновить DNS "type" поле в "ADDRESS" чтобы создать приложение Spectrum с использованием BYOIP.
{
"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"]
}
}Пример
В примере ниже приложение направляет трафик через HTTP-конвейер Cloudflare, включая функции WAF, Workers и CDN.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется: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"
]
}
}'