INTEGRITY Документация

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-токена

Хотя бы одно из следующих права доступа токена требуется:
Создание приложения Spectrum с использованием имени источника
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"
				]
		}
	}'