Как стать автором
Поиск
Написать публикацию
Обновить

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

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


Ситуация


Пользователи отечественных 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

Публикации

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