← Cloudflare One / cloudflare-one / networks / connectors / cloudflare-tunnel / configure-tunnels / tunnel-availability
Системные требования
Наш коннектор, cloudflared, разработан достаточно лёгким и гибким, чтобы его можно было эффективно развернуть на Raspberry Pi, вашем ноутбуке или сервере в дата-центре.
В отличие от устаревших VPN, где пропускная способность определяется объемом памяти сервера, CPU и другими характеристиками оборудования, пропускная способность Cloudflare Tunnel в первую очередь ограничена количеством портов, настроенных в системном ПО. Поэтому при расчете размера вашего cloudflared сервера важнее всего правильно рассчитать количество доступных портов на устройстве, чтобы оно соответствовало ожидаемой пропускной способности трафика TCP и UDP.
Рекомендации
Для большинства сценариев использования мы рекомендуем следующую базовую конфигурацию:
- Запустите
cloudflaredреплика на двух выделенных хост-машинах на каждую сетевую локацию. Использование двух хостов обеспечивает избыточность на стороне сервера. - Выделяйте каждому хосту не менее 4 ГБ оперативной памяти и 4 ядра процессора.
- Выделите 50,000 порты к
cloudflaredпроцесс на каждом хосте.
Такой конфигурации обычно достаточно для обработки трафика от 8,000 пользователей Cloudflare One Client (4,000 на хост). Фактический объем ресурсов, используемых cloudflared будет зависеть от многих переменных, включая количество запросов в секунду, пропускную способность, сетевой маршрут и оборудование. По мере подключения новых пользователей или при увеличении сетевого трафика сверх имеющегося у вас пропускная способность туннеля, вы можете масштабировать свой туннель, добавив ещё один cloudflared хост в этом расположении.
Количество портов
Когда cloudflared получает запрос от устройства, он использует порты на хост-машине для оценки и пересылки запроса в вашу исходную (origin) службу. Каждая машина по своей конструкции аппаратно ограничена максимум 65,535 портами. Кроме того, каждая служба на машине может использовать лишь ограниченное число портов. По этой причине мы рекомендуем следующую модель развертывания:
cloudflaredследует развернуть на выделенной хост-машине. Такая модель обычно подходит, но в некоторых процессах, использующих serverless или кластеризацию, выделенный хост может быть недоступен.- На хост-машине должно быть выделено 50 000 портов, доступных для использования
cloudflaredслужбы. Остальные порты зарезервированы для системных административных процессов.
Чтобы увеличить количество портов, доступных для 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 (более распространены, менее ресурсоёмкие)
- UDP requests (less common, more resource intensive)
Трафик 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. После того как репрезентативная группа пользователей поработает с вашей сетью хотя бы неделю, вы сможете настроить параметры туннеля с учётом собственных характеристик трафика.
Чтобы рассчитать пропускную способность туннеля:
- Настройте служба метрик при запуске туннеля.
- Примерно через неделю запросите следующее метрики туннеля:
cloudflared_tcp_total_sessionscloudflared_udp_total_sessions
- Вычислите среднее значение Запросы TCP в секунду и UDP-запросы, не относящиеся к DNS, в секунду путём деления общего числа сеансов на общее время.
- В своём частном DNS-резолвере узнайте среднюю Запросы частного DNS в секунду.
- Введите свои значения в наш калькулятор для расчёта размера:
Метрики
Результат
По этим результатам можно определить, достаточна ли пропускная способность туннеля. Чтобы увеличить пропускную способность туннеля, добавьте идентичные хост-машины, на которых выполняется cloudflared реплики.