← Cloudflare One / cloudflare-one / networks / connectors / cloudflare-mesh
Высокая доступность
Для производственных развертываний можно запускать несколько реплик узла Mesh в режиме active-passive. Все реплики используют общий идентификатор узла и анонсируют один и тот же маршруты. Если активная реплика выходит из строя, Cloudflare автоматически повышает резервную реплику до активной.
Когда использовать высокую доступность
Высокая доступность обеспечивает отказоустойчивость для префиксов маршрутов CIDR, анонсируемых узлом Mesh. Когда активная реплика отключается, Cloudflare переводит резервный узел в активный режим, чтобы трафик к анонсируемым подсетям продолжал поступать.
Это означает, что HA полезен для узлов с настроенными маршрутами: то есть узлов, выступающих в роли шлюзов подсети для приватных сетей за ними. Если узел используется только для прямого подключения по Mesh IP (без маршрутов), польза от HA ограничена, поскольку Mesh IP узла привязан к конкретной реплике.
Как это работает
Когда вы создаете узел Mesh с включенной высокой доступностью, Cloudflare генерирует для этого узла единый токен. С его помощью вы устанавливаете Cloudflare One Client на несколько хостов Linux. Каждый хост регистрируется как реплика одного и того же узла.
- Все реплики анонсируют одни и те же маршруты CIDR.
- В любой момент времени активна только одна реплика. Остальные находятся в пассивном резерве.
- Если активная реплика отключается, Cloudflare автоматически назначает пассивную реплику активной.
- Переключение при сбое обрабатывается сетью Cloudflare.
flowchart LR
subgraph replicas["Mesh node: web-server"]
R1["Replica 1 <br> (active)"]
R2["Replica 2 <br> (standby)"]
R3["Replica 3 <br> (standby)"]
end
CF((Cloudflare)) <--> R1
CF -. failover .-> R2
CF -. failover .-> R3
client["Client device"] <--> CF
Создать узел с высокой доступностью
Когда вы создаете узел Mesh через панель управления, высокая доступность включается по умолчанию. Чтобы создать новый узел:
-
В панели управления Cloudflare перейдите в Сеть > Mesh.
Перейдите в Mesh ↗ -
Выберите Добавьте узел.
-
Следуйте мастеру настройки. Узел создаётся с автоматически включённым HA.
-
Скопируйте команды установки и выполните их на своём хосте Linux.
Чтобы создать узел с высокой доступностью через API, задайте ha: true в теле запроса:
curl -X POST "https://api.cloudflare.com/client/v4/accounts/{account_id}/warp_connector" \
-H "Authorization: Bearer {api_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "web-server",
"ha": true
}'Ответ включает token поле. Используйте этот токен для регистрации реплик.
Добавить реплики
Чтобы добавить реплику к существующему узлу высокой доступности, установите Cloudflare One Client на новый хост Linux и зарегистрируйте его с помощью того же токена узла.
-
В панели управления Cloudflare перейдите в Сеть > Mesh.
Перейдите в Mesh ↗ -
Выберите свой узел Mesh.
-
Выберите Добавьте реплику.
-
В диалоговом окне отображаются команды установки и токен узла.
-
На новом хосте Linux выполните команды установки, показанные в диалоговом окне.
Команды установки
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg &&
echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(. /etc/os-release && echo $VERSION_CODENAME) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list &&
sudo apt-get update -qq && sudo apt-get install -y -qq cloudflare-warp &&
printf 'net.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\nnet.ipv6.conf.all.accept_ra = 2\n' | sudo tee /etc/sysctl.d/99-zzz-cloudflare-warp-connector.conf &&
sudo sysctl --systemsudo warp-cli connector new <TOKEN> && sudo warp-cli connectВ RHEL 9 и более поздних версиях перед установкой включите репозиторий Extra Packages for Enterprise Linux (EPEL) для cloudflare-warp. EPEL предоставляет зависимости, необходимые для интерфейса Cloudflare One Client:
sudo dnf install -y epel-releaseЗатем установите пакет:
curl -fsSl https://pkg.cloudflareclient.com/cloudflare-warp-ascii.repo | sudo tee /etc/yum.repos.d/cloudflare-warp.repo &&
sudo yum install -y cloudflare-warp &&
printf 'net.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\nnet.ipv6.conf.all.accept_ra = 2\n' | sudo tee /etc/sysctl.d/99-zzz-cloudflare-warp-connector.conf &&
sudo sysctl --systemsudo warp-cli connector new <TOKEN> && sudo warp-cli connect-
Получите токен узла:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/warp_connector/{node_id}/token" \ -H "Authorization: Bearer {api_token}"Ответ содержит строку токена.
-
Установите клиент и зарегистрируйтесь на новом хосте Linux:
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg && echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(. /etc/os-release && echo $VERSION_CODENAME) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list && sudo apt-get update -qq && sudo apt-get install -y -qq cloudflare-warp && printf 'net.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\nnet.ipv6.conf.all.accept_ra = 2\n' | sudo tee /etc/sysctl.d/99-zzz-cloudflare-warp-connector.conf && sudo sysctl --systemsudo warp-cli connector new <TOKEN> && sudo warp-cli connectВ RHEL 9 и более поздних версиях перед установкой включите репозиторий Extra Packages for Enterprise Linux (EPEL) для
cloudflare-warp. EPEL предоставляет зависимости, необходимые для интерфейса Cloudflare One Client:sudo dnf install -y epel-releaseЗатем установите пакет:
curl -fsSl https://pkg.cloudflareclient.com/cloudflare-warp-ascii.repo | sudo tee /etc/yum.repos.d/cloudflare-warp.repo && sudo yum install -y cloudflare-warp && printf 'net.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\nnet.ipv6.conf.all.accept_ra = 2\n' | sudo tee /etc/sysctl.d/99-zzz-cloudflare-warp-connector.conf && sudo sysctl --systemsudo warp-cli connector new <TOKEN> && sudo warp-cli connect
Новая реплика будет находиться в режиме ожидания, пока активная реплика не отключится.
Просмотр реплик
-
В панели управления Cloudflare перейдите в Сеть > Mesh.
Перейдите в Mesh ↗ -
Выберите узел с поддержкой HA. Узлы HA отображают HA badge в сводной таблице.
-
На странице сведений об узле отображается вкладка для каждой реплики. На каждой вкладке отображаются:
- Активно или Passive badge
- Mesh IP (IPv4 и IPv6)
- Центр обработки данных Edge
- IP-адрес источника
- Платформа, версия и имя устройства
- Подключено с отметки времени
Чтобы просмотреть все реплики и их статус HA, запросите конечную точку API connections:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/warp_connector/{node_id}/connections" \
-H "Authorization: Bearer {api_token}"Ответ включает каждую реплику с её ha_status (active или passive), сведения о подключении и дата-центр Cloudflare, к которому оно подключено:
{
"success": true,
"result": [
{
"id": "bf69f118-238e-11f1-b113-ee02f3be4a5b",
"conns": [
{
"colo_name": "lhr16",
"origin_ip": "34.105.147.200",
"opened_at": "2026-03-19T12:25:47.400Z"
}
],
"run_at": "2026-03-19T12:25:47.400Z",
"ha_status": "active"
},
{
"id": "e07272a6-21fc-11f1-8997-e28f01ba3991",
"conns": [
{
"colo_name": "lhr14",
"origin_ip": "35.246.81.139",
"opened_at": "2026-03-19T02:38:37.203Z"
}
],
"run_at": "2026-03-19T02:38:37.203Z",
"ha_status": "passive"
}
]
}Ручное переключение при сбое
Помимо автоматического переключения при сбое, когда активная реплика отключается, вы можете вручную повысить пассивную реплику до активной.
-
В панели управления Cloudflare перейдите в Сеть > Mesh.
Перейдите в Mesh ↗ -
Выберите узел с поддержкой HA.
-
Выберите вкладку пассивной реплики, которую нужно повысить до активной.
-
Выберите Сделать активным.
-
В диалоговом окне подтверждения выберите Сделать активным для подтверждения.
Трафик немедленно перенаправляется на повышенную реплику. Предыдущая активная реплика переходит в пассивный резервный режим.
Чтобы вручную запустить переключение при сбое, отправьте PUT запрос с client_id реплики, которую нужно повысить:
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/{account_id}/warp_connector/{node_id}/failover" \
-H "Authorization: Bearer {api_token}" \
-H "Content-Type: application/json" \
-d '{
"client_id": "e07272a6-21fc-11f1-8997-e28f01ba3991"
}'Получите client_id из конечная точка подключений. Используйте id поле реплики, которую вы хотите повысить.
Особенности
Требования к настройке
- Высокая доступность задается при создании узла и не может быть изменена впоследствии.
- Чтобы работало переключение при отказе, клиент нужно установить как минимум на двух хостах. Одна реплика означает отсутствие резервирования.
- Для высокой доступности необходимо, чтобы у узла Mesh профиль устройства настроено на использование MASQUE, протокол по умолчанию для Cloudflare One Client. Он не работает, если в профиле устройства вместо этого используется WireGuard.
Настройка сети
- Все реплики должны находиться в одной подсети и иметь одинаковую конфигурацию маршрутизации сети (Split Tunnels, статические маршруты).
- HA обеспечивает отказоустойчивость для префиксов маршрутов CIDR. Узлы без маршрутов не получают преимуществ от переключения при сбое HA.
Поведение переключения при сбое
- Время переключения при сбое зависит от того, как быстро Cloudflare обнаруживает отключение активной реплики (обычно это занимает несколько секунд).
- Входящий трафик (от клиентов Mesh к подсети) автоматически переключается на резерв в сети Cloudflare. Cloudflare направляет трафик на новую активную реплику.
- Исходящий трафик (от устройств в подсети через узел Mesh) не переключается на резерв автоматически. Ваша среда должна определить, что другая реплика была повышена до активной, и обновить таблицы маршрутизации, чтобы трафик пошёл через новый активный хост. На данный момент отказоустойчивое переключение на стороне клиента для трафика on-ramp не поддерживается.