LINUX.ORG.RU
ФорумAdmin

Openwrt + wireguard + mwan3 (wan или wanb)

 ,


0

1

Просьба о помощи. Настраиваю систему на доступ в сетку. КлиентVPN - VPS - openwrt - lan

C настройкой wireguard на wan интерфейсе проблем нет. Клиент конектится к VPS и все ок… доступ в сетку организован. Я даже подумал ничего-се пару телодвижений и все… да не тут то было. Отключаю я wan и как положено включается wanb(LTE) в работу вступил mwan3 wan_wanb и трафик пополз как и ожидалось по wanb. А вот wireguard так и щимится на wan и все… как оказалось два default geatway с метрикой 10 и 20. Wireguard идет по тому что метрика меньше.

Так как в маршрутизации не особо силен… пока только читаю и изучаю. Возможно кто то знает как победить сию проблему? Возможно дописать к mwan3 в скрипт на падения линка wan поменять таблицу 1 на таблицу 2 … просто не особо знаю как сделать.

Wireguard идет по тому что метрика меньше.

Вот это да! WG делает ровно то что должен, как же быть?

zgen ★★★★★
()

трафик пополз как и ожидалось по wanb

conntrack чистишь, как на wiki сказано? А то, сдаётся мне у тебя только новые соединения пошли по wanb

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Чистится conntrack. Там фишка такая что wireguard идет в таблицу маршрутизации с наименьшей метрикой.

default via 172.17.165.1 dev eth0.2 proto static metric 10 default via 192.168.8.1 dev eth2 proto static src 192.168.8.110 metric 20 10.66.66.0/24 dev wg proto static scope link metric 30 172.17.165.0/24 dev eth0.2 proto static scope link metric 10 192.168.0.0/24 dev br-lan proto kernel scope link src 192.168.0.1 192.168.8.0/24 dev eth2 proto static scope link metric 20 212.x.x.x via 172.17.165.1 dev eth0.2 proto static metric 10 212.x.x.x via 192.168.8.1 dev eth2 proto static metric 20

bakteriums
() автор топика
Ответ на: комментарий от zgen

Вопрос как после падения линка wan сделать что бы wireguard ходил по wanb? А при поднятии wan снова ходил по wan…

bakteriums
() автор топика

В mwan3 есть сброс conntrack, но он нормально работает с чем угодно, кроме wg :(

pekmop1024 ★★★★★
()
Ответ на: комментарий от bakteriums

if [ «${ACTION}» = «ifdown» ] && [ «${INTERFACE}» = «wan» ]; then sleep 25 if [ping -c 1 10.66.66.1 > /dev/null]; then exit 0 else ifdown wan sleep 5 ifup wan exit 0 fi fi if [ «${ACTION}» = «ifup» ] && [ «${INTERFACE}» = «wan» ]; then ifdown wg sleep 5 ifup wg exit 0 fi

bakteriums
() автор топика
Ответ на: комментарий от bakteriums

Глюк который а может и не глюк Wireguard при поднятии интерфейса пытается топать по маршруту с наименшей метрикой и запоминает его. Если потушить wan то остается один маршрут и он автоматом поднимается на нем и запоминает его. При подняти wan необходимо просто перегрузить wireguard interface. И все ок. Просьба если кто может доработать скрипт… Пинг надо 3 раза с счетчиком и если все три пинга на 10.66.66.1 не прошли то тогда сделать ifdown wan и ifup wan.

bakteriums
() автор топика
Ответ на: комментарий от bakteriums

Он обратно тоже не уходит. У меня он остается висеть на интерфейсе модема бэкапного с большей метрикой после поднятия интерфейса с меньшей метрикой и сброса conntrack. Его реально нужно передергивать при каждом переключении.

pekmop1024 ★★★★★
()
Ответ на: комментарий от Pinkbyte

Этот баг (скорее фича, ибо то, как рождаются интерфейсы wg - то еще сочетание говна, палок и китайского скотча) тянется минимум с 17.01, на более ранних… вроде и wg не существовало как проекта в принципе.

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Ну пытался писать в wireguard но вроде как смотрят. Но в защиту wireguard скажу если допилят то это неплохая vpn. Я костыль выложил. Если у кого есть возможность переписать было б здорово. Но пока у меня такой вариан работает

bakteriums
() автор топика
Ответ на: комментарий от bakteriums

Да кто же спорит, эта штука дает второй шанс стареньким WR1043ND v2+ в качестве нормального впн-роутера.

pekmop1024 ★★★★★
()
Ответ на: комментарий от bakteriums

Лучше так, имхо:

if test "$ACTION" = "ifup" && { test "$INTERFACE" = "wan_a" || test "$INTERFACE" = "wan_b"; }; then

  logger -t MWAN3-WIREGUARD-FIX -s "$INTERFACE"

  ifdown vpn
  rmmod wireguard
  insmod wireguard
  ifup vpn
fi
dhameoelin ★★★★★
()
Последнее исправление: dhameoelin (всего исправлений: 2)
Ответ на: комментарий от dhameoelin

Как-то так:

#!/bin/sh
#
# Скипнута шапка скрипта
#

LINK_MAIN=wan_a
LINK_FAILOVER=wan_b

if test "${ACTION}" = "ifup" && test "${INTERFACE}" = "${LINK_MAIN}"; then

  logger -t MWAN3-WIREGUARD-FIX -s "${ACTION} - ${INTERFACE}"

  ifdown "${LINK_FAILOVER}"
  sleep 1
  ifup "${LINK_FAILOVER}"
fi
dhameoelin ★★★★★
()
Последнее исправление: dhameoelin (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.