Wireguard client+Mwan3 решаем проблемы с синхронизацией времени и переключением интерфейсов Failover

Wireguard тема довольно новая, поэтому многие типовые ответы еще придут а данное решение было проанализировано, оттестировано и принято на вооружение лично мной.

Многое описанное ни для кого уже не секрет, но проблема остается ( из моих многих экспериментов, и много перекуренного материала в интернетах) что Wireguard а далее по тексту буду обзывать его просто WG, очень требователен к более-менее точно времени на клиенте и именно на роутерах с прошивками openwrt. Во всем нижеописанном сабже я благодарен публикациям, supervillain с поста Хабра WireGuard — прекрасный VPN будущего?, а так-же itdog с его статьей отсюда же Точечный обход блокировок PKH на роутере с OpenWrt с помощью WireGuard и DNSCrypt. Эти публикации помогли мне запилить сие интересное решение на моем UniFi AC PRO с прошивкой Openwrt. Дело было сделано. Был настроен VPS сервер с wireguard на борту, настроен роутер с openwrt как клиента wireguard, и далее по порядку.

Настраиваем VPS+ Wireguard Server.

Я думаю что ныне ни для кого не секрет приобретение и первоначальная настройка и безопасность своего облачного сервера ( Если будет интересно готов описать минимум настроек на серверной Ubuntu мои настройки UFW). После всех нужных настроек запускаю:

wget https://raw.githubusercontent.com/l-n-s/wireguard-install/master/wireguard-install.sh -O wireguard-install.sh
bash wireguard-install.sh

Огромное спасибо supervillain с его постом WireGuard — прекрасный VPN будущего?. На этом сервер готов и можно приступать к настройке роутера.

На роутере дабы не развивать тут простыню текста опишу вкратце:

opkg update
opkg install kmod-wireguard
wireguard 
luci-proto-wireguard

Далее если кому-то интересно, состояние wireguard в web интерфейсе можно посмотерть установив пакеты:

luci-app-wireguard
luci-i18n-wireguard-ru

Далее все очень четко описано в статье itdog Точечный обход блокировок PKH на роутере с OpenWrt с помощью WireGuard и DNSCrypt.

И тут возникает проблема в том что мне не нужен обход по заблоченным ссылкам а нужен обход всего трафика (так-как в некоторых тоталитарных странах необходим трафик проксированый весь). Но проблема в том что после того как я сконфигурировал интерфейс WG с его настройками внутренними и Firewall, весь трафик независимо от настроек побежал через этот WG. Дело в том что при отвале интерфейса WG интернет пропадал хотя и был на основном интерфейсе WAN. На помощь приходит пакет MWAN3. Для себя я поставил таким образом:

luci-app-mwan3
mwan3
luci-i18n-mwan3-ru

Теперь утилита доступна по Network =>Load Balancing ( все действо происходит в OpenWrt 18.06.1). Далее все просто при отвале интерфейса WG с метрикой 1 LAN кидаеться на интерфейс WAN с метрикой 2 и наоборот при поднятии WG перекидывается обратно вообщем failover, если будет интересно готов описать все до точки.

Время очень важно!

Дабы не растягивать уже и без того растянутый пост опишу что wireguard неимоверно требователен ко времени геолокации внешнего IP. Я победил его вырубив встроенный NTP и установив пакеты:

collectd-mod-ntpd
luci-app-ntpc
luci-i18n-ntpc-ru

И настроив NTP сервера от стратума 2 яруса.

Ежели будет вопросы по теме, пишите.
Теги:
openwrt, linux, vpn wireguard, openvpn

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.