MikroTik: маршрутизация через VPN-шлюз на микро ПК
Пошаговая настройка MikroTik с двумя шлюзами: policy routing для выборочной маршрутизации клиентов 192.168.1.0/24 через VPN на микро ПК (192.168.1.5). Mangle, routing-mark, NAT, VLAN и Windows-вариант без доп. портов.
Как настроить Mikrotik с двумя интернет-шлюзами для маршрутизации трафика через VPN?
У меня есть Mikrotik, который получает интернет от провайдера и раздает его в локальную сеть 192.168.1.0/24. Также у меня есть отдельный микро ПК с IP-адресом 192.168.1.5, который находится в той же локальной сети. На этом микро ПК установлены платные VPN-сервисы (Amnezia, AdGuard и др.), и он может выступать в качестве шлюза для раздачи интернета через VPN.
На микро ПК установлен один сетевой интерфейс Ethernet 1Gb, и на нем можно установить Linux, Windows 10 или даже Proxmox.
Основной вопрос: как настроить маршрутизацию так, чтобы определенные клиенты (с определенными IP-адресами) в сети 192.168.1.0/24 использовали интернет через VPN-шлюз на микро ПК?
Конкретные вопросы:
- Как реализовать такую схему, чтобы клиенты оставались в одной подсети 192.168.1.0/24?
- Если использовать Windows 10 на микро ПК, как объединить два интерфейса в бридж при наличии только одного физического порта?
- Можно ли решить эту задачу с помощью VLAN, и если да, то как именно настроить?
- Как избежать необходимости использования отдельного физического порта для этой конфигурации?
Настройка MikroTik VPN с выборочной маршрутизацией трафика через микро ПК на 192.168.1.5 позволит направлять определенных клиентов из подсети 192.168.1.0/24 именно через VPN-шлюз, не меняя основную сеть. Используйте policy routing на MikroTik: создайте address-list для клиентов, пометьте их трафик в mangle с routing-mark, добавьте специальный маршрут к микро ПК и настройте NAT. Это работает даже с одним Ethernet-портом на микро ПК — через VLAN или Linux forwarding.
Содержание
- Policy routing на MikroTik для VPN-шлюза
- Подготовка микро ПК как VPN-роутера
- Маркировка трафика клиентов через mangle
- Маршруты с routing-mark и NAT
- VLAN для одного физического порта
- Вариант с Windows 10: бридж и ICS
- Проверка конфигурации и отладка
- Источники
- Заключение
Policy routing на MikroTik для VPN-шлюза
Представьте: ваши клиенты в 192.168.1.0/24 сидят на одном MikroTik, основной интернет от провайдера летает быстро, но пара устройств должна уходить через VPN на микро ПК. Зачем это? Обход блокировок, приватность или просто сервис вроде Amnezia VPN. Ключ — MikroTik маршрутизация VPN через policy routing, как описано в официальной документации MikroTik. Не нужно менять подсети или тянуть кабели — все в одной LAN.
Сначала решим конкретный вопрос: да, клиенты остаются в 192.168.1.0/24. MikroTik будет перехватывать их трафик в prerouting и слать на 192.168.1.5 как на следующий хоп. Микро ПК примет пакеты, пропустит через свой VPN и вернет ответы обратно. Главное — на микро ПК включить IP forwarding и masquerade для исходящего VPN-трафика.
Но подождите, а если основной маршрут к провайдеру имеет distance=1? Сделаем VPN-маршрут с таким же приоритетом, но только для помеченного трафика. Поехали по шагам.
Подготовка микро ПК как VPN-роутера
Микро ПК с одним Gigabit Ethernet — это вызов, но решаемый. Выберите ОС wisely: Linux (Ubuntu/Debian) или Proxmox — идеал для forwarding. Windows 10 подойдет, но с нюансами бриджинга.
Для Linux/Proxmox (рекомендую первым):
- Назначьте статический IP 192.168.1.5/24, gateway=IP вашего MikroTik (скажем, 192.168.1.1).
- Включите forwarding:
sysctl -w net.ipv4.ip_forward=1(сделайте permanent в /etc/sysctl.conf). - Установите VPN-клиент (Amnezia, AdGuard — они поддерживают TUN/TAP).
- iptables для NAT:
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE(tun0 — ваш VPN-интерфейс). - Разрешите трафик:
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT; iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT.
Готово. Микро ПК теперь роутит любой трафик от MikroTik через VPN. Проверьте ip route — дефолтный маршрут должен уходить в VPN.
Почему не сразу на MikroTik VPN? Если сервисы не поддерживают RouterOS (Amnezia часто кастомная), микро ПК — единственный выход. Объем запросов “amnezia vpn mikrotik” (328) показывает, что это популярно.
Маркировка трафика клиентов через mangle
Сердце настройки VPN на MikroTik — firewall mangle. Соберем IP клиентов в address-list, пометим их пакеты.
В Winbox или терминале:
/ip firewall address-list
add address=192.168.1.10/32 list=vpn-clients comment=“Клиент1”
add address=192.168.1.20/32 list=vpn-clients comment=“Клиент2”
Теперь mangle в chain=prerouting (для входящего от клиентов трафика):
/ip firewall mangle
add action=mark-routing chain=prerouting dst-address-list=!vpn-clients new-routing-mark=to-main passthrough=yes comment=“Обычный трафик”
add action=mark-routing chain=prerouting src-address-list=vpn-clients new-routing-mark=to-vpn passthrough=yes comment=“VPN клиенты”
Почему src-address-list? Потому что prerouting видит исходный IP клиента. Passthrough=yes — чтобы пакеты шли дальше в routing. Это из практического гайда на Bozza — проверено на реальных сетях.
А если по доменам? Добавьте dst-address-list с IP сайтов, но для клиентов проще по src.
Маршруты с routing-mark и NAT
Помеченный трафик не уйдет по дефолту — нужен маршрут.
Сначала основной маршрут (если еще нет):
/ip route
add dst-address=0.0.0.0/0 gateway=ВАШ_ПРОВАЙДЕР distance=1
Для VPN:
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.1.5 routing-mark=to-vpn distance=1
MikroTik пошлет to-vpn трафик на микро ПК. Ответы вернутся через него же — симметрично.
NAT обязателен, иначе микро ПК не поймет, откуда пакеты:
/ip firewall nat
add action=masquerade chain=srcnat out-interface=etherX routing-mark=to-vpn comment=“NAT для VPN” (etherX — порт к LAN)
Нет out-interface для IP? MikroTik маршрутизирует по gateway, так что masquerade с routing-mark сработает. Firewall: разрешите forward для 192.168.1.0/24.
Готово! Клиенты с меткой уйдут через 192.168.1.5 → VPN.
VLAN для одного физического порта
Один порт на микро ПК? VLAN — спасение. Клиенты в одной подсети, но логически разделены. На MikroTik:
- Создайте bridge: /interface bridge add name=bridge-lan
- Добавьте порты: /interface bridge port add bridge=bridge-lan interface=ether1 (WAN? Нет, LAN порты).
Для VLAN: trunk на порту к микро ПК.
Предположим, ether2 — к микро ПК (или switch).
/interface vlan
add interface=ether2 name=vlan1-vpn vlan-id=10
add interface=ether2 name=vlan1-lan vlan-id=20
На MikroTik bridge с VLAN filtering (ROS7+): /interface bridge set bridge-lan vlan-filtering=yes
/ip address add address=192.168.1.1/24 interface=bridge-lan
На микро ПК (Linux):
ip link add link=eth0 name=eth0.10 type vlan id=10 # VPN VLAN
ip addr add 192.168.1.5/24 dev eth0.10
ip link set eth0.10 up
Gateway=192.168.1.1. Теперь трафик в VLAN10 уйдет только на микро ПК. В mangle добавьте in-interface=vlan1-vpn для маркировки.
Это решает вопрос 4 — без доп. портов. Pikabu-гайд подтверждает: trunk + VLAN на клиенте и роутере.
Вариант с Windows 10: бридж и ICS
Windows 10 на микро ПК? Бридж одного порта — трюк. Нельзя просто bridge eth с самим собой, но ICS (Internet Connection Sharing) подойдет.
- Установите VPN (Amnezia/AdGuard — как TAP/TUN).
- Назначьте 192.168.1.5 на Ethernet, шлюз=192.168.1.1.
- Включите ICS: Параметры → Сеть → Ethernet → Свойства → Общий доступ → “Разрешить другим использовать…”.
Но ICS меняет IP на 192.168.137.1 — фикс: вручную верните 192.168.1.5 и добавьте маршрут.
Лучше: используйте PowerShell для forwarding.
Enable-NetAdapterBinding -Name “Ethernet” -ComponentID ms_tcpip
netsh interface ipv4 set interface “Ethernet” forwarding=enabled
NAT через netsh: netsh interface portproxy add v4tov4 listenport=0 listenaddress=0.0.0.0 connectport=0 connectaddress=VPN_IP
Или OpenVPN TAP-bridge: создайте TAP, bridge с Ethernet (даже если один физический — Windows позволяет virtual bridge). CyberGhost гайд показывает шаги.
Минус: Windows менее стабилен для роутинга. Предпочтите Linux.
Проверка конфигурации и отладка
Запустили? Проверьте.
- /ip route print — видите маршрут с routing-mark=to-vpn?
- /ip firewall mangle print stats — счётчики растут для vpn-clients?
- На клиенте: traceroute 8.8.8.8 — первый хоп 192.168.1.5?
- /tool traceroute 8.8.8.8 routing-table=main (или без) — сравните.
Проблемы?
- Нет трафика: firewall filter drop forward? Разрешите src/dst 192.168.1.0/24.
- Асимметрия: на микро ПК policy route для ответов.
- VPN down: universal route с check-gateway=ping.
Torch в Winbox покажет потоки. Логи: /log print where topics~routing.
Источники
- Официальная документация MikroTik: Policy Routing
- Bozza: Отдельные сайты через VPN на MikroTik
- Pikabu: Настройка VPN и маршрутизация трафика
- CyberGhost: Sharing VPN over Ethernet в Windows
Заключение
MikroTik VPN с маршрутизацией через микро ПК — мощное решение для выборочного трафика в 192.168.1.0/24: mangle + routing-mark + маршрут к 192.168.1.5 + NAT на роутере, forwarding на клиенте. VLAN обходит лимит одного порта, Windows работает через ICS, но Linux надежнее. Тестируйте поэтапно — и ваши клиенты уйдут в VPN, не трогая остальных. Если зацепит, масштабируйте на WireGuard или IPSec.