[РЕШЕНО] Микротик- клиент WireGuard. С ПК за Микротиком он (Микротик) не доступен, так как трафик идет в туннель.

Обсуждение ПО и его настройки
Ответить
fox77
Сообщения: 1
Зарегистрирован: 16 фев 2023, 16:53

Добрый день.
Ситуация странная.
WireGuard- сервер на линуксе.
Микротик- клиент WireGuard-а и шлюз для локальной сети, часть хостов которой должна выходить в интернет через туннель.
Туннель поднимается, Микротик пингует сервер WireGuard-a, сервер также пингует Микротик.

На Микротике настроена маркировка пакетов, чтобы определнные ПК ходили наружу только через туннель.
НАТа на интерфейсе WireGuard-для этого трафика нет. Он натится на удаленном WireGuard сервере.

Клиентский ПК включен в порт Микротика, получает от него адрес по DHCP, выходит наружу через туннель.
1. НО если пингануть с ПК Микротик, то последний не пингуется. Этот трафик волшебным убразом попадает в туннель и фиксируется логами Микротика
как Forward с Bridge интерфейса на интерфейс Wireguard-а....
На интерфкйсе ПК видет МАК адрес Микротика.

ПРИЧИНА!
Схема работы пакетного фильтра Микротика:
Изображение

Предположим мы с ПК пингуем Микротик.
Трафик от ПК, попадает на порт Микротика и попадает в цепочку PREROUTING, а дальше фильтром MANGLE PREROUTING получает маркер принадлежности таблице маршрутизации wg_mark

После этого, трафик НЕ попадает в INPUT так как ROUTING DECISION на основе маркера отправляет его в цепочку FORFARW, а далее пихается в туннель.

РЕШЕНИЕ.

При настройке правила IP->FireWall->Mangle-> цепочки Prerouting
УКАЗАТЬ:
1. Маркировать трафик от определенных источников (в моем случае Src. Address List: wireguard_full ) - это понятно.
2. ОБЯЗАТЕЛЬНО указать НЕ маркировать трафик идущий НА внутренние подсети Микротика (у меня это: 10.31.9.0 и 192.168.88.0/24)

=======================================================================================================================

2. С ПК сайты открываются, но speedtest.net не работает, на странице появляется только текст.

Буду крайне благодарен за советы по устранению этих странных косяков.

Конфигурация Микротика:

feb/16/2023 17:33:08 by RouterOS 7.7
# software id = YP25-0DHP
#
# model = RB952Ui-5ac2nD
# serial number =
/interface bridge
add admin-mac=18:FD:74:22:AA:D5 auto-mac=no comment=defconf name=bridge
add name=bridge-lan
/interface wireless
set [ find default-name=wlan1 ] band=2ghz-b/g/n channel-width=20/40mhz-XX \
country=russia3 disabled=no distance=indoors frequency=auto installation=\
indoor mode=ap-bridge ssid=MIK-TEST2 wireless-protocol=802.11 wps-mode=\
disabled
set [ find default-name=wlan2 ] band=5ghz-a/n/ac channel-width=\
20/40/80mhz-XXXX distance=indoors frequency=auto installation=indoor \
mode=ap-bridge ssid=MikroTik-2200D9 wireless-protocol=802.11
/interface wireguard
add listen-port=51280 mtu=1420 name=wireguard1
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface lte apn
set [ find default=yes ] ip-type=ipv4 use-network-apn=no
/interface wireless security-profiles
set [ find default=yes ] authentication-types=wpa2-psk mode=dynamic-keys \
supplicant-identity=MikroTik
/ip pool
add name=default-dhcp ranges=192.168.88.10-192.168.88.254
add name=dhcp_pool2 ranges=10.31.9.10-10.31.9.254
/ip dhcp-server
add address-pool=default-dhcp comment="Admin port Ether5 DHCP Server" \
interface=bridge name=defconf
add address-pool=dhcp_pool2 comment="USER DHCP Server" interface=bridge-lan \
lease-time=23h59m59s name=dhcp1
/routing table
add disabled=no fib name=wg_mark
/interface bridge port
add bridge=bridge comment=defconf ingress-filtering=no interface=ether5
add bridge=bridge-lan interface=ether2
add bridge=bridge-lan interface=ether3
add bridge=bridge-lan interface=ether4
add bridge=bridge-lan interface=wlan1
add bridge=bridge-lan interface=wlan2
/ip neighbor discovery-settings
set discover-interface-list=LAN
/ip settings
set max-neighbor-entries=8192
/ipv6 settings
set disable-ipv6=yes max-neighbor-entries=8192
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
/interface ovpn-server server
set auth=sha1,md5
/interface wireguard peers
add allowed-address=0.0.0.0/0 endpoint-address=ННН.ООО.ЛЛЛ.ХХХ endpoint-port=\
51280 interface=wireguard1 persistent-keepalive=5s public-key=\
"iPLl09хххххххххххххххххххххх+Q8XwfsD9XVCnmo="
/ip address
add address=192.168.88.1/24 comment=defconf interface=bridge network=\
192.168.88.0
add address=10.7.0.2/24 interface=wireguard1 network=10.7.0.0
add address=10.31.9.1/24 comment="Internal USER Bridge" interface=bridge-lan \
network=10.31.9.0
/ip dhcp-client
add add-default-route=no comment=defconf interface=ether1 use-peer-dns=no
add disabled=yes interface=bridge
/ip dhcp-server network
add address=10.31.9.0/24 gateway=10.31.9.1
add address=192.168.88.0/24 comment=defconf gateway=192.168.88.1
/ip dns
set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4
/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan
/ip firewall address-list
add address=10.31.9.11 list=wireguard_full
add address=192.168.88.20 list=wireguard_full
/ip firewall filter
add action=accept chain=input in-interface=wireguard1 log=yes
add action=accept chain=output log=yes out-interface=wireguard1
add action=accept chain=forward in-interface=wireguard1
add action=accept chain=forward log=yes out-interface=wireguard1
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="INPUT DROP ALL from WAN" in-interface=\
ether1
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 disabled=yes 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=ether1
/ip firewall mangle
add action=mark-routing chain=prerouting log=yes new-routing-mark=wg_mark \
passthrough=yes src-address-list=wireguard_full
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" \
ipsec-policy=out,none out-interface=ether1
add action=src-nat chain=srcnat disabled=yes out-interface=wireguard1 \
src-address-list=wireguard_full to-addresses=10.7.0.2
/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.55.1 \
pref-src="" routing-table=main suppress-hw-offload=no
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.7.0.1 pref-src="" \
routing-table=wg_mark suppress-hw-offload=no
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh port=4422
set www-ssl certificate=www-cert disabled=no port=4443
set api disabled=yes
set winbox disabled=yes
set api-ssl disabled=yes
/system clock
set time-zone-name=Europe/Moscow
/system identity
set name=RouterOS
/tool mac-server
set alloweфd-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN

С уважением! Спасибо....


Ответить