← Cloudflare Load Balancing / load-balancing / private-network
Настройка Private Network Load Balancing с Client-to-Tunnel
Вы можете использовать Private Network Load Balancing, чтобы распределять трафик Cloudflare One Client между приватными именами хостов и IP-адресами, подключенными через Cloudflare Tunnel.
Например, у вас есть внутреннее приложение, работающее в двух дата-центрах, и вы хотите, чтобы пользователи Cloudflare One Client обращались к нему из дата-центра, ближайшего к их географическому местоположению. Типичная конфигурация балансировки нагрузки показана на следующей схеме:
graph LR
W[WARP clients] --> C{Private load balancer <br> 100.112.0.0}
C -- Tunnel 1 --> cf1
C -- Tunnel 2 --> cf2
subgraph D2[Data center 2]
cf2@{ shape: processes, label: "cloudflared" }
subgraph F[Pool 2]
S3["Endpoint <br> 10.0.0.1 (VNET-2)"]
S4["Endpoint <br> 10.0.0.2 (VNET-2)"]
end
cf2-->S3
cf2-->S4
end
subgraph D1[Data center 1]
cf1@{ shape: processes, label: "cloudflared" }
subgraph E[Pool 1]
S1["Endpoint <br> 10.0.0.1 (VNET-1)"]
S2["Endpoint <br> 10.0.0.2 (VNET-1)"]
end
cf1-->S1
cf1-->S2
end
style E stroke-width:2px,stroke-dasharray: 5 5
style F stroke-width:2px,stroke-dasharray: 5 5
Диаграмма включает следующие компоненты:
- cloudflared: каждый дата-центр подключен к Cloudflare через собственный Cloudflare Tunnel.
cloudflaredустанавливается на один или подробнее хост-машины в сети. - IP-адрес приватного балансировщика нагрузки: конечные пользователи подключаются к приложению по IP-адресу балансировщика нагрузки. Это может быть IP-адрес, назначенный Cloudflare, в
100.112.0.0/16или пользовательский/32IP-адрес в Диапазон RFC 1918 ↗. - Пул балансировщика нагрузки: балансировщик нагрузки настроен с одним пул на туннель.
- Конечная точка балансировщика нагрузки: пул содержит одну или несколько конечных точек, где каждая конечная точка представляет собой сервер за
cloudflaredна котором выполняется приложение. Если IP-адреса ваших серверов пересекаются, вы можете назначить отдельный виртуальная сеть (VNET) на туннель, чтобы Load Balancer мог детерминированно направлять запросы на нужный конечный узел.
Предварительные требования
- IP-адреса ваших конечных точек проходят через Cloudflare Tunnel. Чтобы узнать, как подключить приватную сеть, см. Подключите IP/CIDR.
1. Создайте пулы балансировщика нагрузки
Пулы балансировщика нагрузки представляют собой логические группы конечных точек, обычно организованные по физическому дата-центру или географическому региону. Конечные точки в пуле являются точками назначения, куда в итоге направляется трафик.
Пулы можно создавать как в панели управления Cloudflare, так и через API.
Чтобы создать пул на панели управления, см. раздел Создать пул документация.
Чтобы получить список текущих виртуальных сетей, используйте List virtual networks операция API.
Включите поддержку виртуальных или приватных IP-адресов, добавив virtual_network_id поле в origins в запросе к API. См. Документация по API Cloudflare Load Balancer где рассказано, как создать пул с помощью API.
В следующем примере в существующий пул Load Balancer добавляется конечная точка Cloudflare Tunnel:
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Load Balancing: Monitors and Pools Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/load_balancers/pools/$POOL_ID" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"origins": [
{
"name": "server-1",
"address": "10.0.0.1",
"enabled": true,
"weight": 1,
"virtual_network_id": "a5624d4e-044a-4ff0-b3e1-e2465353d4b4"
}
]
}'2. Создайте приватный балансировщик нагрузки
-
На панели управления Cloudflare перейдите к разделу Load Balancing страницу.
Перейдите в Load Balancing ↗ -
Выберите Создание балансировщика нагрузки.
-
Выберите Private Load Balancer.
-
На следующем шаге вы можете связать этот балансировщик нагрузки с одним из следующих вариантов:
- IP-адрес, назначенный Cloudflare, из
100.112.0.0/16диапазон - Пользовательский
/32IP-адрес в Диапазон RFC 1918 ↗
- IP-адрес, назначенный Cloudflare, из
-
Добавьте понятное имя, по которому вы узнаете ваш балансировщик нагрузки.
-
Пройдите процесс настройки.
После завершения настройки вы будете перенаправлены на панель Load Balancing. Найти свой балансировщик нагрузки можно с помощью строки поиска или фильтра по Private балансировщиков нагрузки. Обязательно запишите IP-адрес балансировщика нагрузки, так как он понадобится на следующих шагах.
3. Направьте IP-адрес балансировщика нагрузки через Cloudflare One Client
Чтобы клиенты Cloudflare One могли подключаться к вашему балансировщику нагрузки, его IP-адрес должен маршрутизироваться через туннель WARP в вашей Настройки Split Tunnel.
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Команда и ресурсы > Профили устройств.
- Найдите профиль устройства который вы хотите изменить, и выберите Изменить.
- В разделе Split Tunnels, проверьте, что ваш Режим Split Tunnels имеет значение Exclude или Включить.
- Выберите Управление. В зависимости от режима:
-
Режим Exclude: удалите диапазон IP-адресов, который содержит IP-адрес вашего балансировщика нагрузки. Например, если балансировщику назначен CGNAT IP-адрес от Cloudflare, удалите
100.64.0.0/10. Рекомендуем повторное добавление IP-адресов которые не используются вашим балансировщиком нагрузки. -
Режим Include: добавьте IP-адрес вашего балансировщика нагрузки.
-
Теперь трафик Cloudflare One Client может достигать вашего приватного балансировщика нагрузки. Например, если ваш балансировщик нагрузки указывает на веб-приложение, вы можете проверить это, выполнив curl <load-balancer-IP> с устройства. Этот трафик будет распределяться через Cloudflare Tunnel между вашими частными конечными точками в соответствии с настроенным методом распределения.
4. (Необязательно) Назначьте имя хоста балансировщику нагрузки
Чтобы пользователи могли прозрачно обращаться к балансировщику нагрузки и его эндпоинтам по имени хоста, вы можете создать Gateway DNS Политика переопределения которая сопоставляет имя хоста с IP-адресом балансировщика нагрузки. Это гарантирует, что трафик, предназначенный для этого имени хоста, разрешается в правильный IP-адрес.
-
В Панель управления Cloudflare ↗, перейдите в Zero Trust > Политики трафика > Политики Firewall > DNS.
-
Выберите Добавление политики.
-
В Трафик, создайте выражение, в котором Селектор равно
Host, Оператор равноis, а также Значение это имя хоста, которое вы хотите привязать к своему балансировщику нагрузки. Например,Селектор Оператор Значение Host является app.internal.local -
Задайте Действие к Переопределение.
-
В Переопределение имени хоста, введите IP-адрес вашего приватного балансировщика нагрузки (например,
100.112.0.0).
Теперь запросы к этому имени хоста будут разрешаться на ваш частный балансировщик нагрузки.