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