Построение Full-Mesh VPN-сети с использованием fastd, tinc, VpnCloud и тестирование производительности

zmomhcch4l9ja5rcsyo9twscrhm.png


Привет, Хабр! Меня зовут Олег, я архитектор клиентских решений в Selectel. Недавно мы столкнулись с интересным клиентским кейсом при создании Full-Mesh сети. Расскажу, как пришлось тестировать VPN-сервисы, чтобы найти оптимальное решение.

Все результаты собрал в сводной таблице, чтобы наглядно показать разницу и аргументировать выбор.
К нам обратился клиент с задачей по переносу данных с арендованных выделенных серверов одного популярного в России поставщика услуг из Германии. На то было две причины:

  • Невозможность простой и быстрой оплаты услуг, поскольку привязанная карта российского банка перестала работать.
  • Защита от возможной эскалации санкционного давления (то есть полный запрет работы).


Если в первом случае мы помогли временно решить проблему, то во втором никаких гарантий дать не могли. Поэтому клиент принял решение мигрировать в Selectel, воспользовавшись специальным предложением.

C чем мы столкнулись


Компания арендовала в Германии такую инфраструктуру:

  • два сервера-гипервизора на базе Qemu/KVM с управлением через libvirtd,
  • два сервера c Docker-контейнерами для разработчиков и их заказной CRM/ERP-системой,
  • несколько виртуальных машин на Linux и Windows Server 2019.


Со схемой можно ознакомиться ниже:

fn079jy6zmsspbp_ixffyskumna.png


Сначала мы изучили текущее клиентское решение и предложили на его основе свою схему миграции, которая бережно относилась к текущей IT-инфраструктуре и при этом не теряла в отказоустойчивости.

Далее мы занялись обеспечением сетевой связности на втором уровне стека протоколов TCP/IP. Так мы смогли обеспечить клиенту «бесшовный» перенос виртуальных машин и сохранить IP-адреса. Чтобы оптимизировать бюджет, клиент выбрал серверы линейки Chipcore, в которых отсутствует «приватная сеть».

На этапе миграции остановились на следующей организации сетевой топологии. Так мы обеспечили единую L2-связность между дата-центром Selectel и зарубежным ЦОД:

0fjulubbjsahbors-v37fukbu-m.png


Потенциальные кандидаты


Дело осталось за малым — подобрать VPN, который прост в настройке, поддерживает L2, полносвязную топологию и использует быстрые, криптостойкие алгоритмы шифрования.

Вариант с Wireguard был отброшен сразу: он не работает по L2, только по L3, хотя продукт достойный.

OpenVPN — в данном случае не лучший выбор, так как имеет клиент-серверную архитектуру. В случае возникновения проблем или при регламентном обслуживании сервера связность на L2 потеряется. Нам не хотелось создавать точку отказа.

Во время миграции можно было бы использовать OpenVPN, но хотелось сразу подготовить решение, которое не нужно дорабатывать.

Рассматривались следующие варианты:

  • fastd,
  • VpnCloud,
  • Tinc.


Стоит отметить, что у разработчика VpnCloud удобный сайт. Есть подробные описания, проведены синтетические тесты и сравнены результаты, много «теории» и т.д. Есть даже таблица сравнения возможностей ПО:


hgocu1yyswdhlkdukoug741cxnu.png


К сожалению, там нет даже упоминания fastd, который использовался в проекте.

Выбирать, основываясь на субъективном мнении пользователей и разработчиков, не хотелось, поэтому решили провести лабораторное тестирование VPN-систем и составить свое предвзятое мнение

© Habrahabr.ru