Идея была простая, определённые IP через Mikrotik подключённый к VPS с wireguard пропускать трафик. Но скорость около нулевая. Если подключаемся напрямую к VPS по wireguard 100 мегабит стабильно.
wg0 туннель работает стабильно, ip сервера 10.10.100.1 , Микротик 10.10.100.4, как клиент NAT весь трафик через этот IP.
На роутере 2 сети, одна ходит через провайдера, вторая ходит через VPS как хотелось.
172.16.123.0/24 - сеть адресов которые идут напрямую, а 172.16.124.0/24 заворачиваем через wg0 NAT , т.е через VPS туннель.
Ниже вырезка из конфига, весь не влез, выбрал важные моменты относительно таблиц маршрутизации и маркировки. Может будет чем полезно?
Вырезка из конфига# mar/14/2023 00:35:48 by RouterOS 7.8
# software id = JTH5-U5DD
#
# model = RB951G-2HnD
/interface bridge
add comment="Loopback interface" name=br-lo
add admin-mac=000000000 auto-mac=no comment=defconf name=bridge
/interface wireguard
add comment=vps listen-port=13231 mtu=1420 name=wg0
/interface wireguard peers
add allowed-address=0.0.0.0/0 comment=vps endpoint-address=xxx.xxx.158.xxx \
endpoint-port=8090 interface=wg0 persistent-keepalive=10s public-key=\
"xxxxxxxxxxxxxxxxxxxx="
/ip firewall filter
add action=accept chain=input comment=\
"defconf: accept established,related,untracked" connection-state=\
established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment=\
"defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" \
ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" \
ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
connection-state=established,related hw-offload=yes
add action=accept chain=forward comment=\
"defconf: accept established,related, untracked" connection-state=\
established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
connection-state=invalid
add action=drop chain=forward comment=\
"defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
connection-state=new in-interface-list=WAN
/ip firewall mangle
add action=route chain=prerouting comment="Address List via ISP1 only" \
dst-address-list=!BOGONS passthrough=no route-dst=10.10.100.1 \
src-address-list=vps_users
add action=mark-connection chain=prerouting comment="Connmark in from VPS" \
connection-mark=no-mark in-interface=wg0 new-connection-mark=conn_vps \
passthrough=no
add action=mark-routing chain=prerouting comment=\
"Routemark transit out via VPS" connection-mark=conn_vps \
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_vps \
passthrough=no
add action=mark-routing chain=output comment="Routemark local out via VPS" \
connection-mark=conn_vps dst-address-type=!local new-routing-mark=to_vps \
passthrough=no
add action=mark-routing chain=prerouting comment="Address List via VPS" \
dst-address-list=!BOGONS new-routing-mark=to_vps passthrough=no \
src-address-list=vps_users
/ip firewall nat
add action=src-nat chain=srcnat comment="NAT via VPS" ipsec-policy=out,none \
out-interface=wg0 to-addresses=10.10.100.4
add action=masquerade chain=srcnat comment="defconf: masquerade" \
ipsec-policy=out,none out-interface=ether1
add action=masquerade chain=srcnat comment="defconf: masquerade" \
ipsec-policy=out,none out-interface=wlan-ext
add action=masquerade chain=srcnat comment="defconf: masquerade" disabled=yes \
ipsec-policy=out,none out-interface-list=WAN
/ip route
add check-gateway=ping comment="Marked via VPS" disabled=no distance=1 \
dst-address=0.0.0.0/0 gateway=10.10.100.1 pref-src=0.0.0.0 routing-table=\
to_vps scope=30 suppress-hw-offload=no target-scope=11
add comment="Emergency route" distance=254 gateway=br-lo
/routing rule
add action=lookup disabled=no dst-address=172.16.123.0/24 table=main
add action=lookup disabled=no dst-address=172.16.124.0/24 table=main
add action=lookup comment="From VPS IP to Inet" src-address=10.10.100.4 \
table=to_vps
Traceroute для обычных пользователей
Tracert ya.ruТрассировка маршрута к ya.ru [77.88.55.242]
с максимальным числом прыжков 30:
1 <1 мс <1 мс <1 мс 172.16.123.1
2 1 ms <1 мс <1 мс 10.254.171.1
3 1 ms 1 ms 1 ms 10.149.131.1
4 1 ms 1 ms 1 ms 10.148.252.245
5 2 ms 2 ms 2 ms 89.223.47.29
6 2 ms 2 ms 2 ms aurora.yndx.net [194.226.100.90]
7 17 ms 18 ms 33 ms sas-32z7-ae1.yndx.net [87.250.239.77]
8 19 ms 18 ms 17 ms 10.2.7.1
9 17 ms 17 ms 17 ms ya.ru [77.88.55.242]
Трассировка завершена.
Трассировка для пользователей через VPS
Tracert ya.ruТрассировка маршрута к ya.ru [5.255.255.242]
с максимальным числом прыжков 30:
1 <1 мс <1 мс <1 мс 172.16.124.1
2 34 ms 34 ms 34 ms 10.10.100.1
3 34 ms 34 ms 34 ms sxx-vds.hosxxxxx.xxx [xx.xxx.x.x44]
4 34 ms 34 ms 34 ms 51.195.4.252
5 34 ms 34 ms 34 ms 10.162.49.26
6 34 ms 35 ms 34 ms 10.17.245.18
7 34 ms 34 ms 34 ms 10.73.40.74
8 * * * Превышен интервал ожидания для запроса.
9 35 ms 35 ms 35 ms fra-fr5-sbb2-nc5.de.eu [94.23.122.246]
10 36 ms 36 ms 39 ms 10.200.0.19
11 35 ms 35 ms 36 ms ipv4.de-cix.fra.de.as208722.yandex.com [80.81.192.251]
12 * * * Превышен интервал ожидания для запроса.
13 76 ms 76 ms 76 ms ya.ru [5.255.255.242]
Трассировка завершена.
Какие могут быть причины медленной скорости?
Плюс на некоторых сайтах часть контента не грузится по таймауту.
Могу предположить, что я где-то не верно маркирую трафик и его перенаправляю, но тогда бы и всё не работало скорее всего. Как можно железобетонно всё проверить?