Как разобраться с кейсом: mikrotik маршрутизация на внутренний VPN сервер?
Схема сети:
По вводным: mikrotik RouterOS v7.19 в качестве шлюза, на нем так же поднят VPN Server
По вводным: внутренняя сеть на бридже 192.168.11.252/24
Сеть для подключенных VPN клиентов 10.22.11.0/24
По вводным: внутренний VPN сервер на freebsd на нем тоже стоит VPN клиент, он разделяет трафик, часть уходит в VPN, часть должно обратно возвращаться на шлюз микротик 192.168.11.252 и уже с него уходить в интернет.
По вводным: моя логика такая c VPN клиентов на mikrotik маркеруем маршрут и перенаправляем на внутренний VPN шлюз
ip/firewall/mangle/add chain=prerouting action=mark-routing new-routing-mark=rt2vpnsplit passthrough=yes src-address=10.22.11.0/24 dst-address=!192.168.11.0/24
По вводным: соответственно маркированный маршрут отправляем на врутренний шлюз с VPN
ip/route/add dst-address=0.0.0.0/24 gateway=192.168.11.17 distance=1 routing-table=rt2vpnsplit
По вводным: ну и я повешал нат, что бы во внутреннюю сеть пакеты уходили с адресом внутренней подсети на бридже микрота
ip/firewall/nat/add chain=srcnat src-address=10.22.11.0/24 out-interface=br_ikc routing-mark=rt2vpnsplit action=masquerade
По вводным: после данных манипуляций по моей логике пакеты должны улететь на внутренний интерфей шлюза на фрибсд с адресом источника 192.168.11.252
Сейчас ситуация такая: на нем определяется по адресу назначения куда отправить пакет, в VPN или вернуть обратно на шлюз. Вот тот трафик что уходит в VPN, с ним нет проблем. А вот тот что должен вернуться обратно на микрот и с него уже улететь в интенет через ван интерфейс проблемы. Он не идет никуда.
По вводным: на внутреннем шлюзе фрибсд включен форвардин и проверял с натом и без. Если с натом то добавляю такие правила в фаервол:
/etc/rc.conf
firewall_enable="YES" firewall_nat_enable="YES" firewall_script="/etc/firewall.rules"
/etc/firewall.rules
ipfw -q flush ipfw nat 1 config if em0 reset same_ports ipfw add 300 nat 1 ip from 192.168.11.252 to any via em0
Сейчас ситуация такая: может кто то сталкивался с решением данной проблемы. Уже очень долго бьюсь, но он никак не хочет работать.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
В вашей схеме на MikroTik основная ошибка, судя по описанию, в маршруте и асимметрии. Для маркированного трафика вы указали
dst-address=0.0.0.0/24, а нужен дефолт0.0.0.0/0. Сейчас маршрут покрывает только сеть 0.0.0.0-0.0.0.255, то есть почти ничего.Правильная идея такая: трафик от VPN-клиентов MikroTik, который не идёт в локалку, маркируется и отправляется на внутренний шлюз 192.168.11.17. Но нужно исключить локальные сети и не сломать return path.
/ip firewall mangle add chain=prerouting src-address=10.22.11.0/24 dst-address=!192.168.11.0/24 action=mark-routing new-routing-mark=rt2vpnsplit passthrough=no /ip route add dst-address=0.0.0.0/0 gateway=192.168.11.17 routing-table=rt2vpnsplit
Для RouterOS v7 также проверьте, что таблица маршрутизации создана:
/routing table add name=rt2vpnsplit fib
Дальше важна обратная сторона. Внутренний VPN-шлюз на FreeBSD должен знать маршрут обратно к VPN-клиентам
10.22.11.0/24через MikroTik192.168.11.252. Иначе ответы могут уйти не туда.route add 10.22.11.0/24 192.168.11.252
Если FreeBSD делает NAT для части трафика, проверьте, где именно NAT нужен. Для выхода в интернет через внешний VPN NAT может быть на FreeBSD, а для возврата на MikroTik — не должен ломать маршрутизацию.
Диагностика на MikroTik:
/ip firewall mangle print stats /ip route print detail where routing-table=rt2vpnsplit /tool traceroute 8.8.8.8 src-address=10.22.11.1
Итог: исправьте
0.0.0.0/24на0.0.0.0/0, создайте FIB-таблицу в RouterOS v7, убедитесь в обратном маршруте на FreeBSD и проверяйте счётчики mangle. Без обратного маршрута схема будет работать нестабильно даже при правильном mark-routing.