Маршруты и балансировка нагрузки
Что такое маршрут в CreateYourVPN, как создать его за минуту, зачем нужны пустые маршруты и как система распределяет пользователей по серверам.
Маршрут — это мостик между вашей инфраструктурой и тем, что видит пользователь. Вы управляете серверами и инбаундами, а пользователь в приложении видит короткий список «серверов» — и каждая позиция этого списка на самом деле маршрут.
Маршрут = одна строчка в приложении пользователя
Маршрут — это группа инбаундов под одним именем в подписке клиента. Правило простое:
Один непустой маршрут = одна позиция в списке серверов у пользователя.
Внутри маршрута может стоять один инбаунд, а может — десять на разных серверах. Пользователь этого не видит: он выбирает «🇺🇸 США», а на какой конкретно сервер он попадёт, решает балансировщик — о нём чуть ниже.
При этом имя, которое видит пользователь, — это имя выбранного инбаунда: назвали инбаунды понятно («🇺🇸 Нью-Йорк», «🇺🇸 Даллас») — пользователь увидит именно их.
Когда вы подключаете первый сервер, система сама создаёт маршрут по умолчанию и кладёт в него первый инбаунд — поэтому «из коробки» всё работает без единой настройки. Маршруты нужны, когда вы захотите большего: несколько стран, отдельный маршрут «для стриминга» и так далее.
Создаём маршрут
На странице кластера в разделе «Маршруты» нажмите «Новый маршрут». В мастере три секции:
- Как клиент увидит этот маршрут — название (например,
🇺🇸 США) и флаг. Это «вывеска» маршрута. - Алгоритм балансировки — «Наименее загруженный по трафику» (по умолчанию) или «Round-robin». Разница — ниже.
- Инбаунды в пуле — какие инбаунды входят в маршрут. Секция необязательная: можно создать пустой маршрут и наполнить его позже перетаскиванием.
Один инбаунд может состоять только в одном маршруте. Если вы выбираете инбаунд, который уже занят другим маршрутом, он переедет в новый. Так система гарантирует, что трафик каждой точки входа управляется ровно одним набором правил.
Диаграмма топологии: маршруты наглядно
На странице кластера маршруты видны на живой схеме: слева серверы с инбаундами, справа — коробки маршрутов. Инбаунды можно перетаскивать мышкой: схватили инбаунд, бросили в другой маршрут — готово. Есть и зона «Без маршрута» — бросьте инбаунд туда, чтобы отвязать его от всех маршрутов.
Сами коробки маршрутов тоже можно переставлять (за ручку перетаскивания или стрелками) — это чисто визуальный порядок для вашего удобства.
Пустые маршруты
Маршрут без единого инбаунда рисуется пунктиром и не имеет «трубы» к распределяющему узлу — это подсказка, что пользователи его не видят. Пустые маршруты удобны как заготовки: создали «🇯🇵 Япония» заранее, а когда появится японский сервер — перетащили инбаунд, и маршрут ожил.
Обратная ситуация тоже подсвечивается: если у вас есть инбаунды вне маршрутов, панель предупредит — «инбаундов не привязано ни к одному маршруту — клиенты их не видят».
Балансировка: кто попадёт на какой сервер
Когда пользователь запрашивает подключение, система для каждого маршрута выбирает один инбаунд из пула — живьём, по свежим метрикам серверов (тем самым из урока 3). Алгоритма два:
«Наименее загруженный по трафику» (по умолчанию)
Система смотрит, сколько свободной полосы на одного пользователя осталось у каждого сервера: берёт ёмкость канала, вычитает текущий трафик и делит на число подключённых. Побеждает сервер с самым большим запасом. Это честная балансировка «по реальной нагрузке»: слабый забитый сервер новых пользователей не получит, даже если людей на нём формально меньше.
Ёмкость канала система оценивает сама — по наблюдаемым пикам реального трафика (пик постепенно «остывает», если сервер давно не нагружали).
«Round-robin»
Простое правило: новый пользователь идёт на сервер, где сейчас меньше всего людей — с поправкой на коэффициент сервера. Коэффициент — это вес: сервер с коэффициентом 2.0 считается «вдвое вместительнее» и получит примерно вдвое больше пользователей, чем сосед с 1.0. Так можно честно нагружать разномощные машины.
Если у какого-то сервера в пуле ещё нет оценки ёмкости (например, сервер совсем новый и пиков трафика пока не видел), маршрут аккуратно переключается на round-robin — чтобы решения всегда принимались по данным, которые есть.
Когда происходит перебалансировка
Постоянно — и сама. Выбор сервера пересчитывается при каждом обращении по свежим метрикам: нагрузка сместилась — новые пользователи начинают приземляться на более свободные серверы. При этом за конкретным пользователем система старается закреплять один и тот же выбор при равных условиях, чтобы его «сервер» не скакал туда-сюда.
И ещё одна страховка: серверы, которые мониторинг считает недоступными, из выбора исключаются — об этом подробно в уроке 7.
Запомнить
- Маршрут — «вывеска» для группы инбаундов; непустой маршрут = строчка в приложении пользователя.
- Один инбаунд — только в одном маршруте. Инбаунд вне маршрутов невидим для клиентов.
- Пустые маршруты — нормальная заготовка: пунктирная коробка, скрыт от пользователей.
- Два алгоритма: по свободной полосе (умный, по умолчанию) и round-robin с весами.
- Балансировка живая: пересчитывается при каждом подключении по текущим метрикам.
Дальше
Серверы: подключение, этапы установки и метрики
Как CreateYourVPN подключает и защищает ваш VPS: все этапы установки по шагам, состояния сервера и расшифровка каждой метрики на карточке.
Инбаунды и раздельное туннелирование
Что такое инбаунд в CreateYourVPN: маскировка под сайт, блокировка торрентов и раздельное туннелирование — какой трафик идёт через VPN, а какой напрямую.