Как стать автором
Обновить

Подводные камни отечественного Remote Access VPN или как сделать стабильно

Время на прочтение3 мин
Количество просмотров4.4K


Ситуация


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

Отечественный VPN похож на кофе. Как вкус и аромат кофе зависят от таланта баристы, так и VPN решения требуют правильного приготовления.  На примере С-Терра VPN покажу, на что жалуются пользователи и как этого избежать.

Исходные данные


Я должен перевести 500 сотрудников на удаленную работу. Для этого использую С-Терра VPN версии 4.3. Из VPN продуктов мне нужен С-Терра Шлюз в центр и клиентское ПО С-Терра Клиент на ноутбуки сотрудников.

С-Терра Шлюз использую только для RA VPN. Все 500 пользователей подключаются к шлюзу в один момент времени.

Решение в лоб


В архитектуре IKE/IPsec одно клиентское подключение считается отдельным туннелем. Значит, мне нужен шлюз, способный поддерживать 500 туннелей одновременно. Открываю сайт вендора и вижу, что мне подходит три модели:

Модель шлюза
безопасности
Количество
одновременно работающих туннелей
С-Терра Шлюз 2000
500
С-Терра Шлюз 3000
1000
С-Терра Шлюз 7000
Не ограничено

Хочу сэкономить, беру С-Терра Шлюз 2000. Начинаю тихо ненавидеть мир.

Камень 1. Нужно время, чтобы построить 500 туннелей

Пользователь придет примерно с такой фразой: «Эта Эстера никогда с первого раза не подключается, прям совсем никогда!»

С-Терра Шлюз в RA VPN работает, как ответчик на клиентские подключения. По моим наблюдениям, в секунду строится где-то 10 туннелей (среднее значение для рассматриваемых
моделей шлюзов). Соответственно, чтобы построить 500 туннелей потребуется 50 секунд, округляю до честной минуты.

Нашему пользователю не везет. Каждый раз при подключении к шлюзу пользователь попадает в очередь. Нужно ждать до 60 секунд. Активный пользователь попытается перезапустить клиента и, тем самым, переподключиться, но попадет в конец очереди. Инструктируйте пользователя, что в таких ситуациях лучше подождать.

Камень 2. IPsec туннели периодически перестраиваются

Для пользователя это выглядит примерно так: «Эта Эстера периодически отваливается и вновь не подключается с первого раза!»

Время жизни IPsec туннеля ограничено либо количеством трафика, либо временем. При
перестроении туннеля генерируется новый сеансовый симметричный ключ шифрования.

А теперь представьте – туннели решили перестроиться плюс-минус одновременно. Снова очередь и проклятия. Чтобы этого избежать, на шлюзе безопасности нужно задать дельту (DELTA), которая случайным образом изменит время жизни каждого из туннелей.

Камень 3. Шлюзы безопасности ограничены в производительности шифрования

Открываю сайт вендора и вижу:
Модель шлюза
безопасности
Максимальная
производительность шифрования, Мбит/с
Производительность
шифрования IMIX, Мбит/с
С-Терра Шлюз 2000
380
250
С-Терра Шлюз 3000
1550
1180
С-Терра Шлюз 7000
3080
2030

На какую производительность ориентироваться?

На IMIX. Максимальная производительность шифрования, как правило, достигается на
пакетах большого размера, к реальной сети малоприменимо.

Чтобы избежать дропов, нестабильной работы и отключений, нужно оценить, какой средний объем трафика генерирует одно клиентское подключение. Например, мои пользователи используют RDP, почту и документооборот. Оцениваю трафик в 2Мбит/с в среднем на подключение. Итого имею 1000 Мбит/с. Добавлю запас на случай пиковой нагрузки по 1 Мбит/с на подключение, суммарно получаю 1500Мбит/с в пике для 500 одновременных подключений.

От С-Терра Шлюз 2000 отказываюсь. Смотрю в сторону С-Терра Шлюз 7000.

Решение в лоб: С-Терра Шлюз 7000 и 500 клиентов.

Оптимизация решения


Хочу отказоустойчивое решение, а также сократить время ожидания в очереди. Для этого рассматриваю варианты.

Два С-Терра Шлюз 3000

Клиентов разбалансирую пополам по 250 подключений. Максимальное время ожидания в очереди составит 250/10 примерно 25 секунд при первом подключении. Проблему с очередями при перестроении туннелей решу, задав DELTA. В случае выхода из строя одного из шлюзов, нагрузка переедет на второй шлюз (правда без запаса по производительности).

Пять С-Терра Шлюз 2000

Решение для максимального быстродействия. По 100 клиентских подключений на шлюз, максимальное время ожидания в очереди 10 секунд, но без запаса по производительности.

Прайс-лист у С-Терра открытый. Сравню стоимость приведенных решений (курс доллара взял 73 рубля):

Решение
Цена, руб
С-Терра Шлюз 7000
+ 500 клиентов
4 533 270
2 х С-Терра Шлюз
3000 + 500 клиентов
4 564 680
5 х С-Терра Шлюз
2000 + 500 клиентов
4 980 300

Я выберу второй вариант. Два С-Терра Шлюз 3000 и 500 клиентов. 31 000 рублей за отказоустойчивость и сокращение времени в очереди хорошая цена. Система управления у вендора опциональна, если хотите – берите.

Итоги


Рецепт вкусного RA VPN:

  • Определите количество клиентских подключений:
  • Оцените средний объем трафика с клиентского подключения;
  • Балансируйте клиентские подключения на несколько шлюзов; 
  • Учтите архитектурные особенности (очередь и перестроение).


Как говорит студент, раунд!

Анонимный инженер
t.me/anonimous.engineer
Теги:
Хабы:
Всего голосов 2: ↑1 и ↓10
Комментарии5

Публикации

Истории

Работа

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань