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

Системные требования

Наш коннектор, cloudflared, разработан достаточно лёгким и гибким, чтобы его можно было эффективно развернуть на Raspberry Pi, вашем ноутбуке или сервере в дата-центре.

В отличие от устаревших VPN, где пропускная способность определяется объемом памяти сервера, CPU и другими характеристиками оборудования, пропускная способность Cloudflare Tunnel в первую очередь ограничена количеством портов, настроенных в системном ПО. Поэтому при расчете размера вашего cloudflared сервера важнее всего правильно рассчитать количество доступных портов на устройстве, чтобы оно соответствовало ожидаемой пропускной способности трафика TCP и UDP.

Рекомендации

Для большинства сценариев использования мы рекомендуем следующую базовую конфигурацию:

Такой конфигурации обычно достаточно для обработки трафика от 8,000 пользователей Cloudflare One Client (4,000 на хост). Фактический объем ресурсов, используемых cloudflared будет зависеть от многих переменных, включая количество запросов в секунду, пропускную способность, сетевой маршрут и оборудование. По мере подключения новых пользователей или при увеличении сетевого трафика сверх имеющегося у вас пропускная способность туннеля, вы можете масштабировать свой туннель, добавив ещё один cloudflared хост в этом расположении.

Количество портов

Когда cloudflared получает запрос от устройства, он использует порты на хост-машине для оценки и пересылки запроса в вашу исходную (origin) службу. Каждая машина по своей конструкции аппаратно ограничена максимум 65,535 портами. Кроме того, каждая служба на машине может использовать лишь ограниченное число портов. По этой причине мы рекомендуем следующую модель развертывания:

Чтобы увеличить количество портов, доступных для cloudflared в Linux:

Если на вашем компьютере есть /etc/sysctl.d/ каталог:

echo 'net.ipv4.ip_local_port_range = 11000 60999' | sudo tee -a /etc/sysctl.d/99-cloudflared.conf
sudo sysctl -p /etc/sysctl.d/99-cloudflared.conf

В противном случае:

echo 'net.ipv4.ip_local_port_range = 11000 60999' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf

Чтобы увеличить количество портов, доступных для cloudflared в Windows задайте динамический диапазон портов для TCP и UDP:

netsh int ipv4 set dynamicport tcp start=11000 num=50000
netsh int ipv4 set dynamicport udp start=11000 num=50000
netsh int ipv6 set dynamicport tcp start=11000 num=50000
netsh int ipv6 set dynamicport udp start=11000 num=50000

Частный DNS

DNS-запросы используют больше системных ресурсов по сравнению с TCP и UDP-запросами, не относящимися к DNS. Чтобы оптимизировать доступность сервиса, Cloudflare рекомендует разделить трафик частного DNS в собственный Cloudflare Tunnel. Туннель должен работать на выделенном хосте и включать маршруты только к IP-адресам вашего внутреннего DNS-резолвера.

значения ulimit

В Linux и macOS ulimit параметры определяют системные ресурсы, доступные вошедшему в систему пользователю. Рекомендуем настроить следующие ulimits на cloudflared сервер:

ulimit Описание Значение
-n Максимальное количество открытых файлов или файловых дескрипторов ≥ 70,000

Чтобы просмотреть свои текущие значения ulimit, откройте терминал и выполните:

ulimit -a

Чтобы задать лимит открытых файлов ulimit:

ulimit -n 70000

Приведенная выше команда задает лимит открытых файлов только для текущего сеанса терминала и не сохраняется после перезагрузки или нового входа в систему. Чтобы применить это ограничение на постоянной основе, настройте его с помощью метода, подходящего для вашей операционной системы.

Расчётная пропускная способность

Большая часть трафика частной сети, проходящего через cloudflared относится к одной из двух категорий:

Трафик TCP использует и освобождает порты почти мгновенно. Это означает, что для перегрузки cloudflared экземпляра с 50,000 доступными портами вашей организации нужно будет непрерывно генерировать 50,001 TCP-запрос в секунду.

UDP traffic is more unique. DNS queries - usually the bulk of UDP traffic - are held by ports in cloudflared в течение пяти секунд. Трафик UDP, отличный от DNS, удерживает каждый порт в течение всего времени соединения, которое может быть любой продолжительности. Это означает, что для перегрузки cloudflared экземпляра с 50,000 доступными портами вам нужно будет непрерывно генерировать либо 10,000 DNS-запросов к вашему частному DNS-резолверу в секунду, либо совокупно 50,000 не-DNS UDP-запросов за время меньше, чем период сброса ваших подключений.

Рассчитайте пропускную способность своего туннеля

Наш базовые рекомендации служат отправной точкой для развёртывания Cloudflare Tunnel. После того как репрезентативная группа пользователей поработает с вашей сетью хотя бы неделю, вы сможете настроить параметры туннеля с учётом собственных характеристик трафика.

Чтобы рассчитать пропускную способность туннеля:

  1. Настройте служба метрик при запуске туннеля.
  2. Примерно через неделю запросите следующее метрики туннеля:
    • cloudflared_tcp_total_sessions
    • cloudflared_udp_total_sessions
  3. Вычислите среднее значение Запросы TCP в секунду и UDP-запросы, не относящиеся к DNS, в секунду путём деления общего числа сеансов на общее время.
  4. В своём частном DNS-резолвере узнайте среднюю Запросы частного DNS в секунду.
  5. Введите свои значения в наш калькулятор для расчёта размера:

Системная конфигурация





Метрики




Результат




Этот калькулятор предназначен только для информационных целей, все результаты являются приблизительными.

По этим результатам можно определить, достаточна ли пропускная способность туннеля. Чтобы увеличить пропускную способность туннеля, добавьте идентичные хост-машины, на которых выполняется cloudflared реплики.