Wi-Fi через Wireguard, работает некорректно

Обсуждение оборудования и его настройки
Ответить
Pusher
Сообщения: 3
Зарегистрирован: 12 янв 2023, 17:44

Хочу настроить отдельный Wi-Fi, весь трафик через него пустить по VPN (WireGuard).
Для теста максимально все упростил, оставив 1 WiFi, в рабочем варианте будет основной,
через провайдера, второй через VPN.

Имеем:
MikroTik cAP lite
Интернет через ether1 (для теста просто в лакальной сети)
WiFi
WireGuard до VPS

Wi-Fi в отдельной подсети, добавил правило маршрутизации
src-address wi-fi(172.16.15.0/24) в отдельную таблицу маршрутизации (wg)
и маршрут по умолчанию для таблицы wg на wireguard.

Сразу скажу, пробовал делать через mark routing, результат аналогичный.
В итоге работает это работает, но плохо:
- сайты некоторые открываются быстро, некоторые медленно (особенно первый раз),
некоторые (2ip.ru например) не открываются, телнет на 80 порт заходит.
- пинги и трассировка нормальные через vpn(в том числе и до 2ip.ru)
- янедкс показывает ip от VPN, нормальную скорость входящего траффика
и очень медленную исхдящего
- при пиге счетчик NAT правила показывает пакеты, но при тесте скорости и
открытыие сайта счетчик может стоять или очень мало прибавлять.

Есть ощущение, что часть пакетов идут не через Wireguard или что-то подобное.
Wiregard c ПК работает без проблем.
Что проверить, куда капнуть? Похоже что-то пропустил или не учел.

Код: Выделить всё

/ip address
add address=192.168.15.251/24 interface=ether1 network=192.168.15.0
add address=10.10.10.31 interface=wg-germ-21 network=10.10.10.31
add address=172.16.15.1/24 interface=wlan1 network=172.16.15.0

Код: Выделить всё

/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=wg-germ-21 pref-src="" routing-table=wg scope=30 \
    suppress-hw-offload=no target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.15.100 pref-src="" routing-table=main scope=30 \
    suppress-hw-offload=no target-scope=10

Код: Выделить всё

/ip firewall nat
add action=masquerade chain=srcnat out-interface=wg-germ-21 src-address=172.16.15.0/24 to-addresses=10.10.10.31

Код: Выделить всё

/routing rule
add action=lookup-only-in-table disabled=no src-address=172.16.15.0/24 table=wg


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

При первом приближении только nat вызывает вопросы.
Попробуйте либо аналогичное правило в route rule добавить для адреса, который на wg-интерфейсе.

Либо без nat’а вообще - у вас же на том конце ваша же VPS, которая все равно потом все натит в интернет.
Только на ней тогда маршрут/allowed-addresses нужны в локалку.


Telegram: @thexvo
Pusher
Сообщения: 3
Зарегистрирован: 12 янв 2023, 17:44

xvo писал(а): 13 янв 2023, 13:38 При первом приближении только nat вызывает вопросы.
Попробуйте либо аналогичное правило в route rule добавить для адреса, который на wg-интерфейсе.
При включенном NAT добавил правило на wg интерфейс, пробовал и по ip wg интерфейса, поведение не меняется.

Код: Выделить всё

/routing rule
add action=lookup-only-in-table disabled=no src-address=172.16.15.0/24 table=wg
add action=lookup-only-in-table disabled=no interface=wg-germ-21 table=wg
xvo писал(а): 13 янв 2023, 13:38 Либо без nat’а вообще - у вас же на том конце ваша же VPS, которая все равно потом все натит в интернет.
Только на ней тогда маршрут/allowed-addresses нужны в локалку.
tcpdump посмотрел пакеты на wg сервере.
При включенном NAT естественно идут пакеты с 10.10.10.31
При выключенном вообще пакетов нет, хотя должны быть с ip Wi-Fi сети, т.е. 172.16.15.0/24

MikroTik при этом отправляет на wg интерфейс
Изображение


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

На сервере что allowed-addresses для микротика?


Telegram: @thexvo
Pusher
Сообщения: 3
Зарегистрирован: 12 янв 2023, 17:44

xvo писал(а): 16 янв 2023, 17:10 На сервере что allowed-addresses для микротика?
Спасибо за подсказку. Про конфиг сервера wg не подумал.

Добавил в AllowedIPs на сервере 172.16.15.0/24
заработало без NAT на mikrotik, но опять с проблемами:
2ip.ru стал открываться через раз,
speedtest.net начинает грузиться, но виснет загрузка,
некоторые сайты нормально открываются, некоторые долго (особенно первый переход).

Если подключиться к wireguard серверу просто клиентом из ОС,
то все работает без лагов, все сайты открываются.

На сервере для теста в iptables оставил только snat,
все остальное в ACCEPT.

Вообще не пойму, что смотреть.

wg0.conf на wireguard сервере:

Код: Выделить всё

AllowedIPs = 10.10.10.31/32, 172.16.15.0/24

Код: Выделить всё

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  10.10.10.0/24        anywhere             to:x.x.x.x
SNAT       all  --  172.16.15.0/24       anywhere             to:x.x.x.x
Изображение


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Ну может все-таки что-то в остальной части микротиковского конфига препятствует тому, чтобы весь трафик в туннель уходил.
Хотя я так не могу придумать, чтобы это такое вообще могло быть.


Telegram: @thexvo
korall_m
Сообщения: 20
Зарегистрирован: 27 июл 2019, 21:44

Оффтоп, прошу извинить. Процесс загрузки страницы виден в Firefox-е (слева, внизу). Такие страницы у меня получались при блокировании (ошибочном) googleapis-что-то-там.


Ответить