Wireguard mikrotik что это
MikroTik: L2VPN = EoIP + WireGuard
WireGuard is a communication protocol and free and open-source software that implements encrypted virtual private networks (VPNs), and was designed with the goals of ease of use, high speed performance, and low attack surface. It aims for better performance and more power than IPsec and OpenVPN, two common tunneling protocols. The WireGuard protocol passes traffic over UDP.
Введение
Как позиционируют WireGuard это быстрый VPN нового поколения, в котором реализована современная криптография. Он изначально разрабатывался как более простая и удобная альтернатива существующим VPN.
Ну что, давайте протестируем данный протокол на примере Mikrotik. Возьмем версию прошивки Mikrotik RouterOS 7.1rc2 и протестируем.
Сделаем не просто связность, а реализуем схему: центральный офис + 2 удаленных офиса, все это на «серых» адресах, L2VPN (Ethernet over IP over WireGuard – нужно больше over) и подружим с CISCO. И должно у нас получиться, что-то вроде этого:
Начало
В данной статье я расскажу, как «поднять» сервер в облаке, установить WireGuard и подключить MikroTik’и к данному серверу как клиенты. И должны получить что-то вот это:
Все IP адреса открыты, как и пароли и ключи. Все делается в EVE-NG ради эксперимента.
Настройка сервера
Для размещения сервера потребуется VPS (VDS). Я буду использовать дешевый виртуальный сервер c операционной системой Ubuntu 20.04. Покупаем виртуальный сервер на любом хостинге. Для экспериментов я выбрал на ruvds.ru – цена около 240р.
Залогинимся на сервер с правами пользователя root и выполним следующие команды:
Обязательно перезагрузите сервер!
Создадим конфигурационный файл /etc/wireguard/wg0.conf со следующим содержимым:
Запустим VPN-сервис и добавим его в автозагрузку:
Убедимся, что служба запустилась корректно:
Настройка MikroTik
Проверяем IP адрес, чтобы зайти через WEB
Качаем новую прошивку и устанавливаем (на все устройства)
Заходим на устройство по WEB и закидываем прошивку в устройство
Настройка WireGuard
Далее делаем настройку WireGuard клиента на MikroTik (лучше делать данные настройки из консоли, т.к. через Web у меня не завелось)
Создаем интерфейс wireguard с именем wg0:
Вешаем IP адрес на wg0:
Настройка сервера для работы с клиентами на MikroTik
Заходим на сервер и добавляем клиента Wireguard на сервер:
Читаем, если не заработало
Если вдруг будут ошибки или не получаться просто ребутните сервер и микротик
Пингуем сервер со стороны MikroTik’а и обратно (10.7.0.1, 10.7.0.2)
Аналогичным способом подключаем все оставшиеся MikroTik’и, незабываем редактировать файл /etc/wireguard/wg0.conf и systemctl restart wg-quick@wg0
Пингуем сервер со стороны MikroTik’ов и обратно (10.7.0.1, 10.7.0.2, 10.7.0.3, 10.7.0.4)
В итоге у нас должно получиться, что то того:
В итоге у нас получилось вот это:
В следующей статье я напишу как поднять EoIP, VLAN, trunk и все это делать связать между собой, чтобы все это заработало.
Это моя первая статься, прошу не судить строго. И да, VPLS тоже будет. Сейчас речь, о том, как быстро сделать L2VPN на базе MikroTik.
Mikrotik (RouterOS) + Wireguard
Вступление
Один из способом сделать доступным некоторые внутренние (домашние) сервисы из Интернета является VPN. Можно, конечно, отдельные порты опубликовать и через ssh, но для более полноценной связи лучше использовать другие решения. Я уже писал и про ZeroTier, и про OpenVPN, и получил упреки, что незаслуженно забыл про Wireguard…
Так или иначе, мне стало не хватать VPN клиента (в т.ч. и Wireguard) на отдельно стоящем серверочке, потребовалось связать (в данном случае с vNet в Azure, хотя это не принципиально) всю домашнюю сеть с несколькими ресурсами. И я решил, что пора уже сделать это через роутер, для полноценного site-to-site.
Хотя Keenetic и научился поддерживать Wireguard на новых прошивках, для старенькой Ultra я такой не нашел. С OpenWRT тоже не срослось (для Ultra II есть, а моя модель старовата). Так что я решил, что пора проапгрейдиться. И, поскольку Mikrotik RouterOS выкатила бету 7 версии с Wireguard, я решил, что пора изучить это чудо.
Действительность оказалась несколько сложнее, чем я рассчитывал, однако все получилось. И сейчас опишу основные моменты, которые нигде не смог найти, и до которых пришлось доходить самому.
Основные моменты
Взял я MikroTik hAP ac2. Модель старая, без излишеств, но все, что нужно, делает.
Хотя дела с Микротиками я раньше не имел, запустил его достаточно быстро. Были некоторые сложности с тем, что в настройке DHCP Server недостаточно установить Network, чтобы IP адреса начали раздаваться из этой сети. Оказалось, что есть еще и отдельный IP Pool. Но это мелочи. Так что довольно быстро я приступил к настройкам именно Wireguard.
Конечно же, ничего не заработало. Более того, «на той стороне» я даже не видел входящих пакетов.
Потом уже я обратил внимание, что в поле Endpoint указан только IP адрес, но отсутствует порт. Попробовал указать его явно, но обломался. Поле становится красным и не проходит валидацию.
Пошел разбираться с командной строкой. Для меня, в первый раз увидевшего RouterOS, там, конечно, не сахар. Более-менее, разобрался, конечно. Но как узнать, какие вообще параметры имеются, так и не понял. Ну т.е. до /interface wireguard peers я добрался. Даже про add догадался. Только вот при этом система спрашивала только interface, public-key и allowed-address. В общем, всякими переборами подобрал команду:
Т.е. порт можно указать только через командную строку. Впрочем, все равно не заработало.
Напомню, что wg0 был создан ранее через web-интерфейс. Или WinBox, не помню. Он чуток получше, чем веб-интерфейс, но порт тоже не давал указать. И тут до меня дошло, что на обычном Linux я ведь еще IP адрес своего локального хоста указываю. А тут его не задавал. Заработало только после:
P.S. Адреса я, конечно, менял. Но allowed-address=192.168.66.128/25 и add address=192.168.66.253/24 не ошибка. Просто у меня к двум серверам подключение. Половина сети класса С на один сервер, половина на другой.
P.P.S. Почему Wireguard, а не OpenVPN? Например, производительность:
А еще простота настройки и кое-что по мелочи.
Update: Я в свое время не смог на старом Кинетике завести wireguard. Но вот ув. @Contrabondo поправляет: «У меня zyxel keenetic extra, ещё старом черном, все отлично работает — нужна debug-firmware 2.16.d «. И ссылка
MikroTik: L2VPN = EoIP + WireGuard (часть 1)
WireGuard is a communication protocol and free and open-source software that implements encrypted virtual private networks (VPNs), and was designed with the goals of ease of use, high speed performance, and low attack surface. It aims for better performance and more power than IPsec and OpenVPN, two common tunneling protocols. The WireGuard protocol passes traffic over UDP.
Введение
Как позиционируют WireGuard это быстрый VPN нового поколения, в котором реализована современная криптография. Он изначально разрабатывался как более простая и удобная альтернатива существующим VPN.
Ну что, давайте протестируем данный протокол на примере Mikrotik. Возьмем версию прошивки Mikrotik RouterOS 7.1rc2 и протестируем.
Сделаем не просто связность, а реализуем схему: центральный офис + 2 удаленных офиса, все это на «серых» адресах, L2VPN (Ethernet over IP over WireGuard – нужно больше over) и подружим с CISCO. Продолжение написано тут. И должно у нас получиться, что-то вроде этого:
Начало
В данной статье я расскажу, как «поднять» сервер в облаке, установить WireGuard и подключить MikroTik’и к данному серверу как клиенты. И должны получить что-то вот это:
Все IP адреса открыты, как и пароли и ключи. Все делается в EVE-NG ради эксперимента.
Настройка сервера
Для размещения сервера потребуется VPS (VDS). Я буду использовать дешевый виртуальный сервер c операционной системой Ubuntu 20.04. Покупаем виртуальный сервер на любом хостинге. Для экспериментов я выбрал на ruvds.ru – цена около 240р.
Залогинимся на сервер с правами пользователя root и выполним следующие команды:
Обязательно перезагрузите сервер!
Создадим конфигурационный файл /etc/wireguard/wg0.conf со следующим содержимым:
Запустим VPN-сервис и добавим его в автозагрузку:
Убедимся, что служба запустилась корректно:
Настройка MikroTik
Проверяем IP адрес, чтобы зайти через WEB
Качаем новую прошивку и устанавливаем (на все устройства)
Заходим на устройство по WEB и закидываем прошивку в устройство
Настройка WireGuard
Далее делаем настройку WireGuard клиента на MikroTik (лучше делать данные настройки из консоли, т.к. через Web у меня не завелось)
Создаем интерфейс wireguard с именем wg0:
Вешаем IP адрес на wg0:
Настройка сервера для работы с клиентами на MikroTik
Заходим на сервер и добавляем клиента Wireguard на сервер:
Читаем, если не заработало
Если вдруг будут ошибки или не получаться просто ребутните сервер и микротик
Пингуем сервер со стороны MikroTik’а и обратно (10.7.0.1, 10.7.0.2)
Аналогичным способом подключаем все оставшиеся MikroTik’и, незабываем редактировать файл /etc/wireguard/wg0.conf и systemctl restart wg-quick@wg0
Пингуем сервер со стороны MikroTik’ов и обратно (10.7.0.1, 10.7.0.2, 10.7.0.3, 10.7.0.4)
В итоге у нас должно получиться, что то того:
В итоге у нас получилось вот это:
В следующей статье я напишу как поднять EoIP, VLAN, trunk и все это делать связать между собой, чтобы все это заработало.
Это моя первая статься, прошу не судить строго. И да, VPLS тоже будет. Сейчас речь, о том, как быстро сделать L2VPN на базе MikroTik.
RouterOS v7 WireGuard
Проверяем и разбираемся с WireGuard в RouterOS 7
21 августа 2020 года, компания MikroTik опубликовала версию RouterOS 7.1beta2 с поддержкой WireGuard
Главное помните в production есть место только long-term релизам, не о каких stable и тем более testing или development не идёт и речи.
Обновляем RouterOS до версии RouterOS 7.1beta2 и смотрим в winbox.
Как видим WireGuard доступен в WinBox сразу в главном меню, но через консоль он доступен как и положенно в разделе interface.
На всякий случай напоминаю, что в RouterOS седьмой версии слегка изменился синтаксис, теперь разделитель между разделами не пробел, а слеш (slash), по аналогии также как и в API RouterOS шестой версии, что конечно значительно удобнее.
И посмотрим результат
Кстати обратите внимание export всё ещё выводит путь к разделу, в старом формате. Да да пока синтаксис обратно-совместим, можно пользоваться как пробелом так и слешом для разделения уровней.
Видим что RouterOS автоматически создал приватный ключ для интерфейса WireGuard. Если вы не укажите порт который будет слушать интерфейс порт будет сгенерирован динамически. Как вы знаете я не люблю не определённости, поэтому указываем руками.
Нам необходимо выяснить публичный ключ
Именно этот public ключ мы должны передать на клиента.
Так же необходимо назначить на интерфейс WireGuard ip адрес
Далее заходим на самого клиента, в моём случае я буду делать всё на iPhone на других платформах аналогично с учётом специфика клиента.
Заходим в клиента | Создаём туннель |
---|---|
Далее нам необходимо подготовить интерфейс на клиенте
Задаём имя интерфейса | Генерируем ключи |
---|---|
Скопируйте public ключ | Настройка сети |
---|---|
Ключ нам необходимо передать на MikroTik, а адреса клиентов должны лежать в сети адреса интерфейса WireGuard указанном на MikroTik.
Необходимо настроить peer на клиенте
Добавляем клиента на MikroTik
Результат на клиенте
Конечно это самый не удобный способ, мы можем всё подготовить со стороны сервера и передать клиенту в одностороннем порядке, и клиенту необходимо будет либо камерой прочитать QR код или выбрать файл конфигурации.
Я же здесь просто хотел вам показать, что это работает и с этим можно жить.
Mikrotik (RouterOS) + Wireguard
Вступление
Один из способом сделать доступным некоторые внутренние (домашние) сервисы из Интернета является VPN. Можно, конечно, отдельные порты опубликовать и через ssh, но для более полноценной связи лучше использовать другие решения. Я уже писал и про ZeroTier, и про OpenVPN, и получил упреки, что незаслуженно забыл про Wireguard…
Так или иначе, мне стало не хватать VPN клиента (в т.ч. и Wireguard) на отдельно стоящем серверочке, потребовалось связать (в данном случае с vNet в Azure, хотя это не принципиально) всю домашнюю сеть с несколькими ресурсами. И я решил, что пора уже сделать это через роутер, для полноценного site-to-site.
Хотя Keenetic и научился поддерживать Wireguard на новых прошивках, для старенькой Ultra я такой не нашел. С OpenWRT тоже не срослось (для Ultra II есть, а моя моедль старовата). Так что я решил, что пора проапгрейдиться. И, поскольку Mikrotik RouterOS выкатила бету 7 версии с Wireguard, я решил, что пора изучить это чудо.
Действительность оказалась несколько сложнее, чем я рассчитывал, однако все получилось. И сейчас опишу основные моменты, которые нигде не смог найти, и до которых пришлось доходить самому.
Основные моменты
Взял я MikroTik hAP ac2. Модель старая, без излишеств, но все, что нужно, делает.
Хотя дела с Микротиками я раньше не имел, запустил его достаточно быстро. Были некоторые сложности с тем, что в настройке DHCP Server недостаточно установить Network, чтобы IP адреса начали раздаваться из этой сети. Оказалось, что есть еще и отдельный IP Pool. Но это мелочи. Так что довольно быстро я приступил к настройкам именно Wireguard.
Конечно же, ничего не заработало. Более того, «на той стороне» я даже не видел входящих пакетов.
Потом уже я обратил внимание, что в поле Endpoint указан только IP адрес, но отсутствует порт. Попробовал указать его явно, но обломался. Поле становится красным и не проходит валидацию.
Пошел разбираться с командной строкой. Для меня, в первый раз увидевшего RouterOS, там, конечно, не сахар. Более-менее, разобрался, конечно. Но как узнать, какие вообще параметры имеются, так и не понял. Ну т.е. до /interface wireguard peers я добрался. Даже про add догадался. Только вот при этом система спрашивала только interface, public-key и allowed-address. В общем, всякими переборами подобрал команду:
Т.е. порт можно указать только через командную строку. Впрочем, все равно не заработало.
Напомню, что wg0 был создан ранее через web-интерфейс. Или WinBox, не помню. Он чуток получше, чем веб-интерфейс, но порт тоже не давал указать. И тут до меня дошло, что на обычном Linux я ведь еще IP адрес своего локального хоста указываю. А тут его не задавал. Заработало только после:
P.S. Адреса я, конечно, менял. Но allowed-address=192.168.66.128/25 и add address=192.168.66.253/24 не ошибка. Просто у меня к двум серверам подключение. Половина сети класса С на один сервер, половина на другой.
P.P.S. Почему Wireguard, а не OpenVPN? Например, производительность:
А еще простота настройки и кое-что по мелочи.