Кто нибудь реализовал ?
устал уже читать и пробовать...
на 1ом WAN всё ОК.
если подкинуть 2ой WAN и маркернуть (статикой тоже пробовал)
(input имеется)
chain=prerouting action=mark-connection new-connection-mark=connection_wan2 passthrough=yes connection-mark=no-mark in-interface=wan2 log=no log-prefix=""
chain=output action=mark-routing new-routing-mark=route_wan2 passthrough=no connection-mark=connection_wan2 log=no log-prefix=""
имеются абсолютно одинаковые правила для порта WG и 80 на роутер через WAN2
и если пройти по WAN2 по 80му на роутер - то всё работает, WG - нет (как с маркировкой пакетов, так и статикой)
[TUN] [HM562] Handshake for peer 1 (х:х) did not complete after 5 seconds, retrying (try 2)
Пакеты на порт WG приходят, но не уходят.
Такое чувство, что на WG интерфейс через WAN2 приходит IP шлюза, а не пира, однако, при такой же конфигурации, но на WAN1 - всё работает.
так вот вопрос, есть кто реализовал WG на 2ом WAN ?
Wireguard на 2ом WAN интерфейсе
-
- Сообщения: 20
- Зарегистрирован: 27 дек 2020, 18:48
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Wireguard на 2ом WAN интерфейсе
Поскольку WG работает через UDP на выделенном порту, я у себя для бэкапного LTE-канала на роутере сделал одно простое правило:
И вроде как этого оказалось достаточно, канал поднимается и долго держится
Код: Выделить всё
/ip firewall mangle
add action=mark-routing chain=output new-routing-mark=lte-Backup protocol=udp src-port=12321
-
- Сообщения: 20
- Зарегистрирован: 27 дек 2020, 18:48
Re: Wireguard на 2ом WAN интерфейсе
не верю.
т.к. у микротик есть баг в wireguard - все исходящие идут через шлюз по умолчанию.
т.е. при таком правиле в mangle всё равно не достичь handshake.
ну и тем более, это я пробовал сразу, в т.ч. и со статической маршрутизацией
и собственно, исходя из указанного бага, тут нужна идея, прямо указанная в баге.
и решение было найдено. Помогли из Канады:
т.к. у микротик есть баг в wireguard - все исходящие идут через шлюз по умолчанию.
т.е. при таком правиле в mangle всё равно не достичь handshake.
ну и тем более, это я пробовал сразу, в т.ч. и со статической маршрутизацией
и собственно, исходя из указанного бага, тут нужна идея, прямо указанная в баге.
и решение было найдено. Помогли из Канады:
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=prerouting comment="WAN LTE" \
connection-mark=no-mark in-interface=isp-wan2 new-connection-mark=\
connection_lte passthrough=yes
add action=mark-routing chain=output connection-mark=connection_lte \
new-routing-mark=route_wan2 passthrough=no
/ip firewall nat
chain=dstnat dst-address-type=local in-interface=WAN2 protocol=udp dst-port=wg-port action=dst-nat to-addresses=ip.of.wan.1
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Wireguard на 2ом WAN интерфейсе
А можно ссылку на баг? Я вот обновился с 7.12.1 до 7.15.3 - и сначала подумал, что всё перестало работать, а потом оказалось, что просто модем завис, после его перезагрузки второй Wireguard-канал опять заработал:
Адрес LTE на стороне сервера корректно отображается.
Я вот пытаюсь проникнуться решением из вашего сообщения - и не могу понять, как это правило NAT может чем-то помочь...
Код: Выделить всё
[Remote] > int/wireguard/peers/print detail
Flags: X - disabled; D - dynamic
0 interface=wg-Headquarter name="peer1" public-key="+kiFcoybKc6oA4d7114Nji5F7681WBY="
private-key="" endpoint-address=Headquarter.by endpoint-port=55006
current-endpoint-address=37.45.x.y current-endpoint-port=55006 allowed-address=0.0.0.0/0
preshared-key="" client-endpoint="" rx=29.8MiB tx=128.3MiB last-handshake=49s
1 interface=wg-Headquarter-lte-Backup name="peer3" public-key="cYcjk1jWrwitlywUSacECzQNVqgr90A="
private-key="" endpoint-address=Headquarter.by endpoint-port=55009
current-endpoint-address=37.45.x.y current-endpoint-port=55009 allowed-address=0.0.0.0/0
preshared-key="" client-endpoint="" rx=245.7KiB tx=419.3KiB last-handshake=2s
Код: Выделить всё
[Headquarter] > int/wireguard/peers/print detail where interface~"Remote"
Flags: X - disabled; D - dynamic
0 interface=wg-Remote name="Remote" public-key="PzOdbgPPLK2aLKGs8OTheTK4pscsAQw="
private-key="" endpoint-address=Remote.by endpoint-port=55003
current-endpoint-address=178.125.w.z current-endpoint-port=55003 allowed-address=0.0.0.0/0
preshared-key="" client-endpoint="" is-responder=yes rx=240.4MiB tx=97.2MiB last-handshake=34s
1 interface=wg-Remote-lte-Backup name="Remote-lte-Backup" public-key="bIXAxRSFG34IVYnEHGTnN4TU4LHFRAE="
private-key="" endpoint-address="" endpoint-port=0 current-endpoint-address=46.216.i.j
current-endpoint-port=46996 allowed-address=0.0.0.0/0 preshared-key="" client-endpoint=""
rx=381.8KiB tx=350.1KiB last-handshake=18s
Я вот пытаюсь проникнуться решением из вашего сообщения - и не могу понять, как это правило NAT может чем-то помочь...