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

Начало работы

Spectrum доступен на всех платных тарифных планах. Тарифы Pro и Business поддерживают только отдельные протоколы, тогда как Enterprise поддерживает весь трафик на основе TCP и UDP. См. Параметры настройки для получения дополнительных сведений о настройке.

Чтобы создать приложение Spectrum, можно использовать IP-адрес, запись CNAME или балансировщик нагрузки. Независимо от выбранного способа приложение можно создать через панель управления или API.

Для использования некоторых полей в теле запроса и ответа Spectrum требуется план Enterprise. См. раздел Настройки по тарифным планам для получения дополнительных сведений.

Создание приложения Spectrum с использованием IP-адреса

Чтобы создать приложение Spectrum с использованием IP-адреса, Cloudflare обычно назначает приложению произвольный IP-адрес из своего пула. Если вы хотите использовать собственные IP-адреса, можно воспользоваться BYOIP либо вы также можете использовать Статический IP. В этих двух последних случаях приложение Spectrum необходимо создавать через API, поскольку эти функции недоступны в панели управления. При использовании API поле origin_direct принимает на вход IP адрес.

Добавьте приложение через панель управления

  1. На панели управления Cloudflare перейдите к разделу Spectrum страницу.

    Перейдите в Spectrum ↗
  2. Выберите Создание приложения. Если вы используете Spectrum впервые, Создание приложения появляется модальное окно.

  3. Выберите свой Тип приложения.

  4. В разделе Домен, введите домен, который будет использовать Spectrum.

  5. В разделе Edge Port, введите порт, который Cloudflare должен использовать для вашего приложения.

  6. В разделе Origin, укажите IP адрес и порт источника вашего приложения.

  7. Если вашему приложению требуется IP-адрес клиента и оно поддерживает Proxy Protocol ↗, включите Proxy Protocols. Proxy Protocol позволяет прокси, такому как Cloudflare, передавать IP адрес клиента приложению источника.

  8. Выберите Add.

Добавьте приложение через API

Ниже приведён пример запроса curl с данными, отправляемыми в API.

Пример API:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Zone Settings Write
Создание приложения Spectrum с использованием имени источника
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"protocol": "tcp/22",
		"dns": {
				"type": "CNAME",
				"name": "ssh.example.com"
		},
		"origin_direct": [
				"tcp://192.0.2.1:22"
		],
		"proxy_protocol": "off",
		"ip_firewall": true,
		"tls": "full",
		"edge_ips": {
				"type": "dynamic",
				"connectivity": "all"
		},
		"traffic_type": "direct",
		"argo_smart_routing": true
	}'

Пример данных:

{
	"success": true,
	"errors": [],
	"messages": [],
	"result": {
		"id": "ea95132c15732412d22c1476fa83f27a",
		"protocol": "tcp/22",
		"dns": {
			"type": "CNAME",
			"name": "ssh.example.com"
		},
		"origin_direct": ["tcp://192.0.2.1:22"],
		"proxy_protocol": "off",
		"ip_firewall": true,
		"tls": "full",
		"edge_ips": {
			"type": "dynamic",
			"connectivity": "all"
		},
		"traffic_type": "direct",
		"argo_smart_routing": true,
		"created_on": "2014-01-02T02:20:00Z",
		"modified_on": "2014-01-02T02:20:00Z"
	}
}

Создание приложения Spectrum с использованием записи CNAME

Чтобы создать приложение Spectrum с использованием записи CNAME, нужно создать запись CNAME ↗ в размещённой на Cloudflare зоне, указывающей на имя хоста вашего источника. Это необходимо для разрешения имени хоста источника. См. Создание DNS записей, чтобы узнать больше. При использовании CNAME в качестве источника учтите, что Cloudflare должен быть авторитетным для этой зоны. При использовании API origin_dns принимает в качестве значения запись CNAME.

Добавьте приложение через панель управления

  1. На панели управления Cloudflare перейдите к разделу Spectrum страницу.

    Перейдите в Spectrum ↗
  2. Выберите Создание приложения. Если вы используете Spectrum впервые, Создание приложения появляется модальное окно.

  3. Выберите свой Тип приложения.

  4. В разделе Домен, введите домен, который будет использовать Spectrum.

  5. В разделе Edge Port, введите порт, который Cloudflare должен использовать для вашего приложения.

  6. В разделе Origin, введите ваш CNAME имя записи.

  7. Выберите Add.

Добавьте приложение через API

Ниже приведён пример запроса curl с данными, отправляемыми в API.

Пример API:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Zone Settings Write
Создание приложения Spectrum с использованием имени источника
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"dns": {
				"type": "CNAME",
				"name": "spectrum-cname.example.com"
		},
		"ip_firewall": false,
		"protocol": "tcp/22",
		"proxy_protocol": "off",
		"tls": "off",
		"origin_dns": {
				"name": "cname-to-origin.example.com",
				"ttl": 1200
		},
		"origin_port": 22
	}'

Пример данных:

{
	"dns": {
		"type": "CNAME",
		"name": "spectrum-cname.example.com"
	},
	"ip_firewall": false,
	"protocol": "tcp/22",
	"proxy_protocol": "off",
	"tls": "off",
	"origin_dns": {
		"name": "cname-to-origin.example.com",
		"ttl": 1200
	},
	"origin_port": 22
}

Создание приложения Spectrum с использованием балансировщика нагрузки

Чтобы создать приложение Spectrum с использованием балансировщика нагрузки, его нужно создать через панель управления или API. См. документация Load Balancing для дополнительных сведений.

Добавьте приложение через панель управления

  1. На панели управления Cloudflare перейдите к разделу Spectrum страницу.

    Перейдите в Spectrum ↗
  2. Выберите Создание приложения. Если вы используете Spectrum впервые, Создание приложения появляется модальное окно.

  3. Выберите свой Тип приложения.

  4. В разделе Домен, введите домен, который будет использовать Spectrum.

  5. В разделе Edge Port, введите порт, который Cloudflare должен использовать для вашего приложения.

  6. В разделе Origin, выберите Load Balancer.

  7. Выберите нужный балансировщик нагрузки из выпадающего списка. Отключённые балансировщики нагрузки не отображаются в Load Balancer меню.

  8. Выберите Add.

Добавьте приложение через API

Ниже приведён пример запроса curl с данными, отправляемыми в API.

Пример API:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Zone Settings Write
Создание приложения Spectrum с использованием имени источника
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"dns": {
				"type": "CNAME",
				"name": "spectrum-cname.example.com"
		},
		"ip_firewall": false,
		"protocol": "tcp/22",
		"proxy_protocol": "off",
		"tls": "off",
		"origin_dns": {
				"name": "cname-to-origin.example.com",
				"ttl": 1200
		},
		"origin_port": 22
	}'

Пример данных:

{
  "dns": {
    "type": "CNAME",
    "name": "spectrum-cname.example.com"
  },
  "ip_firewall": false,
  "protocol": "tcp/22",
  "proxy_protocol": "off",
  "tls": "off",
  "origin_dns": {
    "name": "cname-to-origin.example.com",
    "ttl": 1200
  },
  "origin_port": 22
}

Создание приложения Spectrum с источником в виде виртуальной сети

Чтобы проксировать TCP- или UDP-трафик на источник в вашей частной сети, подключите Cloudflare Tunnel виртуальная сеть к приложению Spectrum. Spectrum направляет трафик через коннектор (Cloudflare Tunnel или подключение Cloudflare WAN), связанный с этой виртуальной сетью. Это даёт альтернативу прежней схеме, при которой перед приватным источником размещали балансировщик нагрузки.

Источники в виртуальной сети поддерживаются только для TCP- и UDP-приложений. Источником должен быть единственный частный IP-адрес, доступный для маршрутизации в пределах указанной виртуальной сети. Диапазоны портов, источники по имени хоста (origin_dns), а также несколько адресов в origin_direct не поддерживаются. Proxy Protocol в настоящее время не поддерживается, поэтому proxy_protocol должен быть установлен на off. Подробнее об ошибках проверки см. в Коды ошибок.

Общие сведения о виртуальных сетях см. в Виртуальные сети.

Перед началом работы

Прежде чем создавать приложение Spectrum, настройте виртуальную сеть и маршрут, охватывающий IP-адрес источника:

Если в качестве коннектора используется Cloudflare WAN (ранее Magic WAN), см. Начало работы с Cloudflare WAN по настройке конечных точек и маршрутов туннеля.

Добавьте приложение через панель управления

  1. На панели управления Cloudflare перейдите к разделу Spectrum страницу.

    Перейдите в Spectrum ↗
  2. Выберите Создание приложения.

  3. В разделе Тип приложения, выберите TCP или UDP.

  4. В разделе Домен, введите домен, который будет использовать Spectrum.

  5. В разделе Edge Port, введите порт, который Cloudflare должен использовать для вашего приложения.

  6. В разделе Origin, выберите Виртуальная сеть.

  7. В разделе Виртуальная сеть, выберите виртуальную сеть, в которой находится ваш источник.

  8. В разделе IP, укажите приватный IP адрес вашего источника.

  9. В разделе Порт, укажите один порт (диапазоны портов не поддерживаются).

  10. Выберите Add.

Добавьте приложение через API

Ниже приведён пример запроса curl с данными, отправляемыми в API.

Пример API:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Zone Settings Write
Создание приложения Spectrum с использованием имени источника
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"protocol": "tcp/22",
		"dns": {
				"type": "CNAME",
				"name": "ssh.example.com"
		},
		"origin_direct": [
				"tcp://10.0.0.5:22"
		],
		"virtual_network_id": "f70ff985-a4ef-4643-bbbc-4a0ed4fc8415",
		"proxy_protocol": "off",
		"ip_firewall": true,
		"tls": "off",
		"edge_ips": {
				"type": "dynamic",
				"connectivity": "all"
		},
		"traffic_type": "direct"
	}'

Задайте origin_direct приватному IP адресу вашего источника и virtual_network_id идентификатору виртуальной сети, в пределах которой маршрутизируется этот IP адрес. Список виртуальных сетей для своего аккаунта можно получить с помощью List virtual networks конечная точка.

Пример данных:

{
	"success": true,
	"errors": [],
	"messages": [],
	"result": {
		"id": "ea95132c15732412d22c1476fa83f27a",
		"protocol": "tcp/22",
		"dns": {
			"type": "CNAME",
			"name": "ssh.example.com"
		},
		"origin_direct": ["tcp://10.0.0.5:22"],
		"virtual_network_id": "f70ff985-a4ef-4643-bbbc-4a0ed4fc8415",
		"proxy_protocol": "off",
		"ip_firewall": true,
		"tls": "off",
		"edge_ips": {
			"type": "dynamic",
			"connectivity": "all"
		},
		"traffic_type": "direct",
		"created_on": "2014-01-02T02:20:00Z",
		"modified_on": "2014-01-02T02:20:00Z"
	}
}

Просмотр трафика

Теперь вы можете проксировать трафик через Cloudflare без дополнительной настройки. По мере прохождения трафика через Cloudflare вы будете видеть данные о трафике за последнюю минуту от Spectrum в панели управления.

Если у вас есть отзывы, сообщите нам ↗.