В предыдущих статьях, от RSagittarius, посвящённых ZeroTier было подробно рассмотрено практическое применение данного инструмента и его настройка. Настало время сравнить его с таким, набирающим популярность, решением как WireGuard, что бы понять — в каких случаях лучше выбрать ZeroTier, а в каких WireGuard. Так же, «на закуску», рассмотрим такую штуку как локалка RuVDS.
Wireguard — относительно новый популярный VPN «из коробки»
Существует огромное множество VPN решений, наиболее известными, на сегодняшний день, являются IPSec, WireGuard и до недавнего времени наиболее популярный, OpenVPN. Так почему-же я решил сравнивать ZeroTier, который производителем не позиционируется как классическое VPN решение, именно с WireGuard? На то есть несколько причин:
- Простота настройки — низкий порог входа.
- Мультиплатформенность — наличие клиентов под все распространённые платформы, включая мобильные.
- «Новизна» продуктов — и тот и другой стали «на слуху» сравнительно недавно.
- Было интересно сравнить то что идёт прямо в поставке ядра Linux, современных версий (WireGuard) с ZeroTier.
Итак, что-же такое WireGuard: Wireguard — классическое, клиент-серверное, VPN решение. Опенсорсное, довольно простое, в настройке и производительное. Давайте пробежимся по пунктам из списка выше.
1. Простота настройки
По сравнению с тем-же OpenVPN настройка WireGuard действительно «тривиальна». Достаточно сгенерировать пары открытый-закрытый ключ и обменяться открытыми ключами, между хостами, поднять WireGuard интерфейсы (правда руками), и руками-же их скоммуницировать. На этом, в принципе базовая настройка завершена.
и это только для двух хостов, а ведь ещё WG умеет в топологию «звезда» и в mesh. Разумеется, в продакшене, всё делается через создание конфигов в
/etc/wireguard/interface_name.conf
и добавление в автозапуск systemd wg-quick@interface_name.service
. Или штатным конфигурированием интерфейса, если используется systemd-networkd. Там-же можно посмотреть как конфигурировать wireguard для других менеджеров сети, включая NetworkManager.2. Мультиплатформенность
У WireGuard всё более чем хорошо с мультиплатформенностью. Вот что мы имеем на текущий момент:
- Android
- iOS
- Linux
- FreeBSD
- MacOS
- Mikrotik (RouterOS ≥7.1beta)
- NetBSD
- OpenBSD
- OpenWRT
- Windows
3. Новизна
WireGuard впервые «вышел в свет» в конце июня 2016-го и сразу в прод маленькой кучки VPN провайдеров:
Earliest snapshots of the code base exist from June 30, 2016. Four early adopters of WireGuard were > the VPN service providers Mullvad, AzireVPN, IVPN and cryptostorm.
Wikipedia
ZeroTier — виртуальный коммутатор с функцией VPN и «файрволом»
Скажу сразу и честно. Давно не испытывал такого удовольствия от соединения энного количества хостов в сеть. Простота и логичность работы и настройки ZeroTier просто подкупает. А с учётом того, что RuVDS предоставляет готовый шаблон, для поднятия собственного ZeroTier контроллера, так ещё и сокращает время развёртывания VPN сети. Ни в одном опенсорс проекте, до этого, я ещё не видел такой лёгкости добавления отдельных хостов и целых локальных сетей, в VPN сеть. Да именно сеть, ибо производитель позиционирует свой продукт как виртуальный коммутатор с функцией VPN. Теперь можно пройтись по тем-же пунктам что и в случае WireGuard.
1. Простота настройки
Не буду повторяться, ибо всё уже написано до нас. Отмечу лишь то, что добавление нового хоста это одна команда на клиенте вида
zerotier-cli join 7ca3bd9b52f9d96b
и… и всё! (ну и плюс поставить галочку авторизации, в веб-интерфейсе контроллера, для свеже-добавленного хоста). Роутинг в локалки, например в локалки филиалов, тоже никаких проблем! Галочка в GUI и статик роуты на маршрутизаторах локалок. Вобщем, как минимум, я рекомендую попробовать!2. Мультиплатформенность
ZT тоже балует обилием клиентов подо всё что движется, включая практически все популярные NAS и даже OpenWRT.
- Android
- Docker
- iOS
- Linux
- FreeBSD
- MacOS
- OpenWRT
- QNap
- Synology
- WD MyCloud NAS
- Windows
3. Новизна
ZeroTier уже не мальчик. Всё-таки 10 лет развития, по айтишным меркам, это уже что-то. Но, тем не менее, продукт выглядит свежо, по крайней мере по концепциям. А главное, он работает ровно так, как задумано. Но это всё лирика. Как мне кажется пора переходить к самому главному к сравнению…
Сравниваем наших героев
Здесь мы сведём воедино все практические аспекты обоих продуктов, плюс сравним производительность ну и определимся с тем, когда и для чего лучше использовать WireGuard, а когда ZeroTier. Итак:
- Простота настройки. Здесь вперёд, со значительным отрывом вырывается ZeroTier. Проще решения я не видел.
- Мультиплатформенность. Здесь ± паритет. Но у WireGuard появилась поддержка маршрутизаторов от Mikrotik, что может стать решающим фактором при выборе решения.
- Дополнительные возможности. Наличие встроенного в ZeroTier «файрвола» (да, там такое есть! Но, к сожалению рассмотрение этой фичи выходит за рамки данной статьи) позволяющего блокировать/разрешать трафик на уровне VPN сети.
- Самое интересное. Производительность.
- Чем тестировали:
iperf3 -P 5 -R
- ОС, клиент и сервер: Ubuntu 20.04.
- «Железо» RuVDS клиент + сервер:
- CPU: 1 X Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz
- Mem 0.5Gb
- ДЦ RuVDS в Королёве —
iperf3
сервер - ДЦ RuVDS в Казани —
iperf3
клиент
WireGuard, результаты
root@ruvds-9qxnx:~# iperf3 -c 10.0.0.2 -P 5 -R
Connecting to host 10.0.0.2, port 5201
Reverse mode, remote host 10.0.0.2 is sending
[ 5] local 10.0.0.1 port 44108 connected to 10.0.0.2 port 5201
[ 7] local 10.0.0.1 port 44110 connected to 10.0.0.2 port 5201
[ 9] local 10.0.0.1 port 44112 connected to 10.0.0.2 port 5201
[ 11] local 10.0.0.1 port 44114 connected to 10.0.0.2 port 5201
[ 13] local 10.0.0.1 port 44116 connected to 10.0.0.2 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 2.20 MBytes 18.4 Mbits/sec
[ 7] 0.00-1.00 sec 2.12 MBytes 17.8 Mbits/sec
[ 9] 0.00-1.00 sec 1.23 MBytes 10.3 Mbits/sec
[ 11] 0.00-1.00 sec 1.90 MBytes 15.9 Mbits/sec
[ 13] 0.00-1.00 sec 1.86 MBytes 15.6 Mbits/sec
[SUM] 0.00-1.00 sec 9.30 MBytes 78.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 1.00-2.00 sec 2.22 MBytes 18.6 Mbits/sec
[ 7] 1.00-2.00 sec 2.24 MBytes 18.8 Mbits/sec
[ 9] 1.00-2.00 sec 1.07 MBytes 9.01 Mbits/sec
[ 11] 1.00-2.00 sec 2.17 MBytes 18.2 Mbits/sec
[ 13] 1.00-2.00 sec 2.30 MBytes 19.3 Mbits/sec
[SUM] 1.00-2.00 sec 10.0 MBytes 84.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 2.00-3.00 sec 2.07 MBytes 17.4 Mbits/sec
[ 7] 2.00-3.00 sec 2.83 MBytes 23.7 Mbits/sec
[ 9] 2.00-3.00 sec 1.08 MBytes 9.08 Mbits/sec
[ 11] 2.00-3.00 sec 2.21 MBytes 18.6 Mbits/sec
[ 13] 2.00-3.00 sec 2.45 MBytes 20.6 Mbits/sec
[SUM] 2.00-3.00 sec 10.7 MBytes 89.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 3.00-4.00 sec 2.06 MBytes 17.3 Mbits/sec
[ 7] 3.00-4.00 sec 2.87 MBytes 24.1 Mbits/sec
[ 9] 3.00-4.00 sec 890 KBytes 7.29 Mbits/sec
[ 11] 3.00-4.00 sec 2.10 MBytes 17.6 Mbits/sec
[ 13] 3.00-4.00 sec 2.12 MBytes 17.8 Mbits/sec
[SUM] 3.00-4.00 sec 10.0 MBytes 84.1 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 4.00-5.00 sec 2.27 MBytes 19.0 Mbits/sec
[ 7] 4.00-5.00 sec 2.57 MBytes 21.5 Mbits/sec
[ 9] 4.00-5.00 sec 967 KBytes 7.92 Mbits/sec
[ 11] 4.00-5.00 sec 2.07 MBytes 17.4 Mbits/sec
[ 13] 4.00-5.00 sec 2.31 MBytes 19.4 Mbits/sec
[SUM] 4.00-5.00 sec 10.2 MBytes 85.2 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 5.00-6.00 sec 2.20 MBytes 18.4 Mbits/sec
[ 7] 5.00-6.00 sec 2.78 MBytes 23.3 Mbits/sec
[ 9] 5.00-6.00 sec 927 KBytes 7.60 Mbits/sec
[ 11] 5.00-6.00 sec 2.11 MBytes 17.7 Mbits/sec
[ 13] 5.00-6.00 sec 2.72 MBytes 22.8 Mbits/sec
[SUM] 5.00-6.00 sec 10.7 MBytes 89.9 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 6.00-7.00 sec 1.97 MBytes 16.5 Mbits/sec
[ 7] 6.00-7.00 sec 2.66 MBytes 22.3 Mbits/sec
[ 9] 6.00-7.00 sec 840 KBytes 6.88 Mbits/sec
[ 11] 6.00-7.00 sec 2.22 MBytes 18.6 Mbits/sec
[ 13] 6.00-7.00 sec 2.65 MBytes 22.3 Mbits/sec
[SUM] 6.00-7.00 sec 10.3 MBytes 86.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 7.00-8.00 sec 1.96 MBytes 16.4 Mbits/sec
[ 7] 7.00-8.00 sec 2.98 MBytes 25.0 Mbits/sec
[ 9] 7.00-8.00 sec 798 KBytes 6.53 Mbits/sec
[ 11] 7.00-8.00 sec 1.89 MBytes 15.8 Mbits/sec
[ 13] 7.00-8.00 sec 2.55 MBytes 21.4 Mbits/sec
[SUM] 7.00-8.00 sec 10.2 MBytes 85.2 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 8.00-9.00 sec 2.00 MBytes 16.8 Mbits/sec
[ 7] 8.00-9.00 sec 3.05 MBytes 25.6 Mbits/sec
[ 9] 8.00-9.00 sec 826 KBytes 6.76 Mbits/sec
[ 11] 8.00-9.00 sec 2.03 MBytes 17.1 Mbits/sec
[ 13] 8.00-9.00 sec 2.58 MBytes 21.6 Mbits/sec
[SUM] 8.00-9.00 sec 10.5 MBytes 87.7 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 9.00-10.00 sec 1.95 MBytes 16.4 Mbits/sec
[ 7] 9.00-10.00 sec 3.16 MBytes 26.5 Mbits/sec
[ 9] 9.00-10.00 sec 827 KBytes 6.77 Mbits/sec
[ 11] 9.00-10.00 sec 2.04 MBytes 17.1 Mbits/sec
[ 13] 9.00-10.00 sec 2.52 MBytes 21.1 Mbits/sec
[SUM] 9.00-10.00 sec 10.5 MBytes 87.9 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.06 sec 22.1 MBytes 18.4 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 20.9 MBytes 17.5 Mbits/sec receiver
[ 7] 0.00-10.06 sec 29.2 MBytes 24.3 Mbits/sec 0 sender
[ 7] 0.00-10.00 sec 27.3 MBytes 22.9 Mbits/sec receiver
[ 9] 0.00-10.06 sec 10.3 MBytes 8.58 Mbits/sec 0 sender
[ 9] 0.00-10.00 sec 9.31 MBytes 7.81 Mbits/sec receiver
[ 11] 0.00-10.06 sec 21.9 MBytes 18.2 Mbits/sec 0 sender
[ 11] 0.00-10.00 sec 20.7 MBytes 17.4 Mbits/sec receiver
[ 13] 0.00-10.06 sec 25.8 MBytes 21.5 Mbits/sec 1 sender
[ 13] 0.00-10.00 sec 24.1 MBytes 20.2 Mbits/sec receiver
[SUM] 0.00-10.06 sec 109 MBytes 91.0 Mbits/sec 1 sender
[SUM] 0.00-10.00 sec 102 MBytes 85.8 Mbits/sec receiver
iperf Done.
ZeroTier, результаты
root@ruvds-9qxnx:~# iperf3 -c 172.28.1.64 -P 5 -R
Connecting to host 172.28.1.64, port 5201
Reverse mode, remote host 172.28.1.64 is sending
[ 5] local 172.28.1.91 port 34468 connected to 172.28.1.64 port 5201
[ 7] local 172.28.1.91 port 34470 connected to 172.28.1.64 port 5201
[ 9] local 172.28.1.91 port 34472 connected to 172.28.1.64 port 5201
[ 11] local 172.28.1.91 port 34474 connected to 172.28.1.64 port 5201
[ 13] local 172.28.1.91 port 34476 connected to 172.28.1.64 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 1.08 MBytes 9.07 Mbits/sec
[ 7] 0.00-1.00 sec 988 KBytes 8.08 Mbits/sec
[ 9] 0.00-1.00 sec 768 KBytes 6.28 Mbits/sec
[ 11] 0.00-1.00 sec 615 KBytes 5.03 Mbits/sec
[ 13] 0.00-1.00 sec 1.03 MBytes 8.65 Mbits/sec
[SUM] 0.00-1.00 sec 4.43 MBytes 37.1 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 1.00-2.00 sec 1.28 MBytes 10.8 Mbits/sec
[ 7] 1.00-2.00 sec 1006 KBytes 8.25 Mbits/sec
[ 9] 1.00-2.00 sec 808 KBytes 6.63 Mbits/sec
[ 11] 1.00-2.00 sec 660 KBytes 5.41 Mbits/sec
[ 13] 1.00-2.00 sec 1.26 MBytes 10.6 Mbits/sec
[SUM] 1.00-2.00 sec 4.96 MBytes 41.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 2.00-3.00 sec 1.14 MBytes 9.55 Mbits/sec
[ 7] 2.00-3.00 sec 1.04 MBytes 8.72 Mbits/sec
[ 9] 2.00-3.00 sec 872 KBytes 7.14 Mbits/sec
[ 11] 2.00-3.00 sec 437 KBytes 3.58 Mbits/sec
[ 13] 2.00-3.00 sec 1.12 MBytes 9.40 Mbits/sec
[SUM] 2.00-3.00 sec 4.58 MBytes 38.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 3.00-4.00 sec 625 KBytes 5.13 Mbits/sec
[ 7] 3.00-4.00 sec 845 KBytes 6.93 Mbits/sec
[ 9] 3.00-4.00 sec 953 KBytes 7.81 Mbits/sec
[ 11] 3.00-4.00 sec 400 KBytes 3.28 Mbits/sec
[ 13] 3.00-4.00 sec 832 KBytes 6.82 Mbits/sec
[SUM] 3.00-4.00 sec 3.57 MBytes 30.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 4.00-5.00 sec 620 KBytes 5.08 Mbits/sec
[ 7] 4.00-5.00 sec 606 KBytes 4.97 Mbits/sec
[ 9] 4.00-5.00 sec 1.12 MBytes 9.37 Mbits/sec
[ 11] 4.00-5.00 sec 633 KBytes 5.19 Mbits/sec
[ 13] 4.00-5.00 sec 1.00 MBytes 8.42 Mbits/sec
[SUM] 4.00-5.00 sec 3.94 MBytes 33.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 5.00-6.00 sec 802 KBytes 6.57 Mbits/sec
[ 7] 5.00-6.00 sec 690 KBytes 5.65 Mbits/sec
[ 9] 5.00-6.00 sec 1.53 MBytes 12.8 Mbits/sec
[ 11] 5.00-6.00 sec 920 KBytes 7.54 Mbits/sec
[ 13] 5.00-6.00 sec 955 KBytes 7.82 Mbits/sec
[SUM] 5.00-6.00 sec 4.82 MBytes 40.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 6.00-7.00 sec 309 KBytes 2.53 Mbits/sec
[ 7] 6.00-7.00 sec 228 KBytes 1.87 Mbits/sec
[ 9] 6.00-7.00 sec 464 KBytes 3.80 Mbits/sec
[ 11] 6.00-7.00 sec 322 KBytes 2.64 Mbits/sec
[ 13] 6.00-7.00 sec 311 KBytes 2.55 Mbits/sec
[SUM] 6.00-7.00 sec 1.60 MBytes 13.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 7.00-8.00 sec 577 KBytes 4.73 Mbits/sec
[ 7] 7.00-8.00 sec 580 KBytes 4.75 Mbits/sec
[ 9] 7.00-8.00 sec 1.30 MBytes 10.9 Mbits/sec
[ 11] 7.00-8.00 sec 792 KBytes 6.49 Mbits/sec
[ 13] 7.00-8.00 sec 655 KBytes 5.36 Mbits/sec
[SUM] 7.00-8.00 sec 3.84 MBytes 32.2 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 8.00-9.00 sec 781 KBytes 6.40 Mbits/sec
[ 7] 8.00-9.00 sec 561 KBytes 4.59 Mbits/sec
[ 9] 8.00-9.00 sec 1.29 MBytes 10.8 Mbits/sec
[ 11] 8.00-9.00 sec 1.18 MBytes 9.87 Mbits/sec
[ 13] 8.00-9.00 sec 631 KBytes 5.17 Mbits/sec
[SUM] 8.00-9.00 sec 4.39 MBytes 36.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 9.00-10.00 sec 961 KBytes 7.87 Mbits/sec
[ 7] 9.00-10.00 sec 762 KBytes 6.24 Mbits/sec
[ 9] 9.00-10.00 sec 1.44 MBytes 12.0 Mbits/sec
[ 11] 9.00-10.00 sec 1.15 MBytes 9.67 Mbits/sec
[ 13] 9.00-10.00 sec 717 KBytes 5.87 Mbits/sec
[SUM] 9.00-10.00 sec 4.97 MBytes 41.7 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.99 sec 8.33 MBytes 6.36 Mbits/sec 33 sender
[ 5] 0.00-10.00 sec 8.07 MBytes 6.77 Mbits/sec receiver
[ 7] 0.00-10.99 sec 7.32 MBytes 5.58 Mbits/sec 64 sender
[ 7] 0.00-10.00 sec 7.16 MBytes 6.01 Mbits/sec receiver
[ 9] 0.00-10.99 sec 10.7 MBytes 8.20 Mbits/sec 61 sender
[ 9] 0.00-10.00 sec 10.4 MBytes 8.76 Mbits/sec receiver
[ 11] 0.00-10.99 sec 7.25 MBytes 5.53 Mbits/sec 70 sender
[ 11] 0.00-10.00 sec 7.00 MBytes 5.87 Mbits/sec receiver
[ 13] 0.00-10.99 sec 8.61 MBytes 6.57 Mbits/sec 55 sender
[ 13] 0.00-10.00 sec 8.42 MBytes 7.07 Mbits/sec receiver
[SUM] 0.00-10.99 sec 42.3 MBytes 32.2 Mbits/sec 283 sender
[SUM] 0.00-10.00 sec 41.1 MBytes 34.5 Mbits/sec receiver
Выводы
К сожалению ZeroTier, предсказуемо, проиграл по производительности. По крайней мере для систем на ядре Linux. Но, по моему скромному мнению, ZeroTier победил в простоте и удобстве администрирования. Отсюда вывод. Если вам нужна высокая производительность между серверами и рабочими станциями на линукс, выбирайте WireGuard. Если-же у вас клиенты, по большей части на MacOS, Windows, и мобильных платформах, то я-бы выбрал ZeroTier. Особенно если нужно добавлять / удалять новых клиентов, в большом количестве, раздавать права доступа и так далее. Ну и, для клиентов RuVDS, может стать решающим фактором быстрота и удобство развёртывания собственного контроллера, «в один клик». Так-же, для упрощения выбора, приведу сводную таблицу совместимых платформ:
А теперь небольшой сюрприз
На самом деле, для случая соединения между собой серверов размещённых у RuVDS, есть ещё один вариант. Вариант указанный в заголовке статьи. И этот вариант, по производительности, уделывает даже WireGuard, но, при этом, по простоте настройки сравним с ZeroTier. Это «Локальная сеть» в панели управления серверами. Под спойлером — где искать и как всё это настроить:
Краткий манул, в картинках
В панели управления серверами у любого сервера который хотим добавить в локалку идём на вкладку «сеть»(1) и смело жмём на капу «настроить локальные сети»(2).
Далее создаём новую локалку.
Задаём имя локальной сети(1). Выделяем подсеть в любом из частных диапазонов (10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12 etc), с маской в CIDR нотации(2). Опционально придумываем описание(3). Выбираем сервер который хотим подключить(4), подключаем(5), при необходимости повторяем шаги 4 и 5. Жмём зелёную капу(6).
Выглядит локалка как-то так… Проверяем, жмём «Deploy».
Мы подключены к сети(2), но пока в оффлайне(1). Ждём пару минут.
После чего жмём «обновить список»(1) и убеждаемся что сеть перешла в состояние online(2).
После того как сеть поднялась, заходим на виртуалки и проверяем связность. Локалка видна как обычный сетевой интерфейс, с адресом из той подсети которую мы задали(1). «Соседний» сервер на другом конце страны, прекрасно пингуется(2).
Далее создаём новую локалку.
Задаём имя локальной сети(1). Выделяем подсеть в любом из частных диапазонов (10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12 etc), с маской в CIDR нотации(2). Опционально придумываем описание(3). Выбираем сервер который хотим подключить(4), подключаем(5), при необходимости повторяем шаги 4 и 5. Жмём зелёную капу(6).
Выглядит локалка как-то так… Проверяем, жмём «Deploy».
Мы подключены к сети(2), но пока в оффлайне(1). Ждём пару минут.
После чего жмём «обновить список»(1) и убеждаемся что сеть перешла в состояние online(2).
После того как сеть поднялась, заходим на виртуалки и проверяем связность. Локалка видна как обычный сетевой интерфейс, с адресом из той подсети которую мы задали(1). «Соседний» сервер на другом конце страны, прекрасно пингуется(2).
Самое интересное — производительность (сервера те-же что и в тестах WireGuard и ZeroTier):
$ iperf3 -c 192.168.0.3 -P 5 -R
Connecting to host 192.168.0.3, port 5201
Reverse mode, remote host 192.168.0.3 is sending
[ 5] local 192.168.0.4 port 35816 connected to 192.168.0.3 port 5201
[ 7] local 192.168.0.4 port 35818 connected to 192.168.0.3 port 5201
[ 9] local 192.168.0.4 port 35820 connected to 192.168.0.3 port 5201
[ 11] local 192.168.0.4 port 35822 connected to 192.168.0.3 port 5201
[ 13] local 192.168.0.4 port 35824 connected to 192.168.0.3 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 14.8 MBytes 124 Mbits/sec
[ 7] 0.00-1.00 sec 14.9 MBytes 125 Mbits/sec
[ 9] 0.00-1.00 sec 14.7 MBytes 123 Mbits/sec
[ 11] 0.00-1.00 sec 14.7 MBytes 123 Mbits/sec
[ 13] 0.00-1.00 sec 14.6 MBytes 122 Mbits/sec
[SUM] 0.00-1.00 sec 73.7 MBytes 617 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 1.00-2.00 sec 20.9 MBytes 176 Mbits/sec
[ 7] 1.00-2.00 sec 20.7 MBytes 174 Mbits/sec
[ 9] 1.00-2.00 sec 20.7 MBytes 174 Mbits/sec
[ 11] 1.00-2.00 sec 20.6 MBytes 173 Mbits/sec
[ 13] 1.00-2.00 sec 20.4 MBytes 171 Mbits/sec
[SUM] 1.00-2.00 sec 103 MBytes 868 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 2.00-3.00 sec 18.3 MBytes 153 Mbits/sec
[ 7] 2.00-3.00 sec 18.5 MBytes 155 Mbits/sec
[ 9] 2.00-3.00 sec 18.6 MBytes 155 Mbits/sec
[ 11] 2.00-3.00 sec 18.2 MBytes 153 Mbits/sec
[ 13] 2.00-3.00 sec 18.5 MBytes 155 Mbits/sec
[SUM] 2.00-3.00 sec 92.0 MBytes 771 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 3.00-4.00 sec 18.3 MBytes 154 Mbits/sec
[ 7] 3.00-4.00 sec 18.4 MBytes 155 Mbits/sec
[ 9] 3.00-4.00 sec 18.2 MBytes 153 Mbits/sec
[ 11] 3.00-4.00 sec 18.4 MBytes 155 Mbits/sec
[ 13] 3.00-4.00 sec 18.1 MBytes 152 Mbits/sec
[SUM] 3.00-4.00 sec 91.4 MBytes 768 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 4.00-5.00 sec 17.0 MBytes 142 Mbits/sec
[ 7] 4.00-5.00 sec 17.2 MBytes 144 Mbits/sec
[ 9] 4.00-5.00 sec 17.0 MBytes 142 Mbits/sec
[ 11] 4.00-5.00 sec 17.4 MBytes 146 Mbits/sec
[ 13] 4.00-5.00 sec 16.7 MBytes 140 Mbits/sec
[SUM] 4.00-5.00 sec 85.3 MBytes 713 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 5.00-6.00 sec 16.5 MBytes 139 Mbits/sec
[ 7] 5.00-6.00 sec 16.7 MBytes 141 Mbits/sec
[ 9] 5.00-6.00 sec 16.7 MBytes 140 Mbits/sec
[ 11] 5.00-6.00 sec 16.4 MBytes 138 Mbits/sec
[ 13] 5.00-6.00 sec 16.1 MBytes 136 Mbits/sec
[SUM] 5.00-6.00 sec 82.4 MBytes 694 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 6.00-7.00 sec 17.7 MBytes 148 Mbits/sec
[ 7] 6.00-7.00 sec 17.8 MBytes 149 Mbits/sec
[ 9] 6.00-7.00 sec 17.6 MBytes 148 Mbits/sec
[ 11] 6.00-7.00 sec 17.5 MBytes 146 Mbits/sec
[ 13] 6.00-7.00 sec 17.3 MBytes 145 Mbits/sec
[SUM] 6.00-7.00 sec 87.9 MBytes 736 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 7.00-8.00 sec 17.7 MBytes 148 Mbits/sec
[ 7] 7.00-8.00 sec 17.9 MBytes 149 Mbits/sec
[ 9] 7.00-8.00 sec 17.6 MBytes 148 Mbits/sec
[ 11] 7.00-8.00 sec 17.7 MBytes 148 Mbits/sec
[ 13] 7.00-8.00 sec 17.5 MBytes 147 Mbits/sec
[SUM] 7.00-8.00 sec 88.5 MBytes 741 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 8.00-9.00 sec 18.7 MBytes 157 Mbits/sec
[ 7] 8.00-9.00 sec 18.8 MBytes 158 Mbits/sec
[ 9] 8.00-9.00 sec 18.9 MBytes 159 Mbits/sec
[ 11] 8.00-9.00 sec 18.7 MBytes 157 Mbits/sec
[ 13] 8.00-9.00 sec 18.5 MBytes 155 Mbits/sec
[SUM] 8.00-9.00 sec 93.6 MBytes 787 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 9.00-10.00 sec 19.2 MBytes 161 Mbits/sec
[ 7] 9.00-10.00 sec 19.1 MBytes 160 Mbits/sec
[ 9] 9.00-10.00 sec 19.0 MBytes 160 Mbits/sec
[ 11] 9.00-10.00 sec 19.0 MBytes 160 Mbits/sec
[ 13] 9.00-10.00 sec 18.8 MBytes 158 Mbits/sec
[SUM] 9.00-10.00 sec 95.1 MBytes 799 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.05 sec 181 MBytes 151 Mbits/sec 150 sender
[ 5] 0.00-10.00 sec 179 MBytes 150 Mbits/sec receiver
[ 7] 0.00-10.05 sec 182 MBytes 152 Mbits/sec 144 sender
[ 7] 0.00-10.00 sec 180 MBytes 151 Mbits/sec receiver
[ 9] 0.00-10.05 sec 181 MBytes 151 Mbits/sec 166 sender
[ 9] 0.00-10.00 sec 179 MBytes 150 Mbits/sec receiver
[ 11] 0.00-10.05 sec 181 MBytes 151 Mbits/sec 253 sender
[ 11] 0.00-10.00 sec 179 MBytes 150 Mbits/sec receiver
[ 13] 0.00-10.05 sec 179 MBytes 149 Mbits/sec 168 sender
[ 13] 0.00-10.00 sec 176 MBytes 148 Mbits/sec receiver
[SUM] 0.00-10.05 sec 904 MBytes 755 Mbits/sec 881 sender
[SUM] 0.00-10.00 sec 893 MBytes 749 Mbits/sec receiver
Очевидные вопросы
1. Что у этого решения под капотом?
VLAN/IPsec, при этом не используются ресурсы виртуалки.
2. Где использовать?
Для соединения серверов в рамках RuVDS.
3. Простота настройки?
Сравнима с настройкой ZeroTier.
Окончательные выводы по областям применения
- Wireguard — Соединение линукс хостов между собой, включая клиентские машины и если нужно объединить в VPN хосты у других хостеров. Высокая скорость передачи данных.
- ZeroTier — Мультиплатформенное решение, в основном для объединения клиентских устройств и подсетей, с удобным менеджментом. Средняя скорость передачи данных.
- «Локальная сеть» RuVDS — объединение в единую, высокопроизводительную, защищённую сеть Linux и Windows хостов, в рамках датацентров хостера. Очень высокая скорость передачи данных.