← Cloudflare Spectrum / spectrum
Начало работы
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 адрес.
Добавьте приложение через панель управления
-
На панели управления Cloudflare перейдите к разделу Spectrum страницу.
Перейдите в Spectrum ↗ -
Выберите Создание приложения. Если вы используете Spectrum впервые, Создание приложения появляется модальное окно.
-
Выберите свой Тип приложения.
-
В разделе Домен, введите домен, который будет использовать Spectrum.
-
В разделе Edge Port, введите порт, который Cloudflare должен использовать для вашего приложения.
-
В разделе Origin, укажите IP адрес и порт источника вашего приложения.
-
Если вашему приложению требуется IP-адрес клиента и оно поддерживает Proxy Protocol ↗, включите Proxy Protocols. Proxy Protocol позволяет прокси, такому как Cloudflare, передавать IP адрес клиента приложению источника.
-
Выберите Add.
Добавьте приложение через API
Ниже приведён пример запроса curl с данными, отправляемыми в API.
Пример API:
Необходимые разрешения 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/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.
Добавьте приложение через панель управления
-
На панели управления Cloudflare перейдите к разделу Spectrum страницу.
Перейдите в Spectrum ↗ -
Выберите Создание приложения. Если вы используете Spectrum впервые, Создание приложения появляется модальное окно.
-
Выберите свой Тип приложения.
-
В разделе Домен, введите домен, который будет использовать Spectrum.
-
В разделе Edge Port, введите порт, который Cloudflare должен использовать для вашего приложения.
-
В разделе Origin, введите ваш
CNAMEимя записи. -
Выберите Add.
Добавьте приложение через API
Ниже приведён пример запроса curl с данными, отправляемыми в API.
Пример API:
Необходимые разрешения 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 '{
"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 для дополнительных сведений.
Добавьте приложение через панель управления
-
На панели управления Cloudflare перейдите к разделу Spectrum страницу.
Перейдите в Spectrum ↗ -
Выберите Создание приложения. Если вы используете Spectrum впервые, Создание приложения появляется модальное окно.
-
Выберите свой Тип приложения.
-
В разделе Домен, введите домен, который будет использовать Spectrum.
-
В разделе Edge Port, введите порт, который Cloudflare должен использовать для вашего приложения.
-
В разделе Origin, выберите Load Balancer.
-
Выберите нужный балансировщик нагрузки из выпадающего списка. Отключённые балансировщики нагрузки не отображаются в Load Balancer меню.
-
Выберите Add.
Добавьте приложение через API
Ниже приведён пример запроса curl с данными, отправляемыми в API.
Пример API:
Необходимые разрешения 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 '{
"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 Tunnel, который её обслуживает, следуя инструкциям в разделе Управление виртуальными сетями.
- Присоедините к туннелю маршрут, охватывающий приватный IP-адрес вашего источника, следуя Подключите IP/CIDR.
Если в качестве коннектора используется Cloudflare WAN (ранее Magic WAN), см. Начало работы с Cloudflare WAN по настройке конечных точек и маршрутов туннеля.
Добавьте приложение через панель управления
-
На панели управления Cloudflare перейдите к разделу Spectrum страницу.
Перейдите в Spectrum ↗ -
Выберите Создание приложения.
-
В разделе Тип приложения, выберите TCP или UDP.
-
В разделе Домен, введите домен, который будет использовать Spectrum.
-
В разделе Edge Port, введите порт, который Cloudflare должен использовать для вашего приложения.
-
В разделе Origin, выберите Виртуальная сеть.
-
В разделе Виртуальная сеть, выберите виртуальную сеть, в которой находится ваш источник.
-
В разделе IP, укажите приватный IP адрес вашего источника.
-
В разделе Порт, укажите один порт (диапазоны портов не поддерживаются).
-
Выберите Add.
Добавьте приложение через API
Ниже приведён пример запроса curl с данными, отправляемыми в API.
Пример API:
Необходимые разрешения 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/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 в панели управления.
Если у вас есть отзывы, сообщите нам ↗.