Как настроить 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 - это использование политикорентированной маршрутизации (Policy-Based Routing) с маркировкой трафика и отдельными таблицами маршрутизации. Для сохранения клиентов в одной подсети 192.168.1.0/24 необходимо настроить VPN-шлюз на микро ПК как прокси-сервер или использовать bridged интерфейс, а на Mikrotik создать правила маршрутизации, которые перенаправляют трафик определенных IP-адресов через VPN-шлюз.
Содержание
- Основные концепции dual internet gateway с VPN
- Настройка VPN-шлюза на микро ПК
- Конфигурация Mikrotik для политикорентированной маршрутизации
- Решение с Windows 10 и одним физическим интерфейсом
- Настройка с использованием VLAN
- Оптимизация без отдельного физического порта
- Практические примеры конфигурации
Основные концепции dual internet gateway с VPN
Для реализации схемы с двумя интернет-шлюзами в одной подсети необходимо понимать несколько ключевых концепций:
Маркировка трафика (Routing Mark)
Mikrotik позволяет маркировать трафик с помощью policy routing, что позволяет направлять определенные потоки данных через разные шлюзы. Основные компоненты системы:
- Mangle rules - для маркировки пакетов
- Routing tables - для хранения различных маршрутов
- Routes - для указания шлюзов для каждой таблицы
- Firewall rules - для управления трафиком
Важно: При использовании VPN-шлюза в той же подсети, необходимо избегать кольцевой маршрутизации (routing loops) и правильно configuring NAT.
Схема работы
Клиент (192.168.1.X) → Mikrotik → VPN-шлюз (192.168.1.5) → Интернет через VPN
Клиент (192.168.1.Y) → Mikrotik → Основной шлюз → Интернет напрямую
Настройка VPN-шлюза на микро ПК
Вариант 1: Linux (рекомендуемый)
Для Linux на микро ПК рекомендуется использовать следующие компоненты:
# Установка необходимых пакетов
sudo apt update
sudo apt install squid3 openvpn wireguard amnezia-wg
# Настройка Squid как прокси
sudo nano /etc/squid/squid.conf
Основные параметры Squid:
http_port 3128
cache_peer 192.168.1.1 parent 8080 0 no-query default
acl vpn src 192.168.1.0/24
http_access allow vpn
Вариант 2: Windows 10
На Windows 10 можно использовать:
- AdGuard VPN в режиме прокси-сервера
- Amnezia WG как WireGuard клиент
- Встроенный VPN клиент с разделяемым подключением
Настройка сетевого моста
# На Linux - создание моста
sudo apt install bridge-utils
sudo brctl addbr br0
sudo brctl addif br0 eth0
sudo ip addr add 192.168.1.5/24 dev br0
sudo ip link set br0 up
Конфигурация Mikrotik для политикорентированной маршрутизации
Шаг 1: Создание таблиц маршрутизации
# Создание отдельной таблицы для VPN трафика
/ip route table add name=vpn_routing
/ip route table print
Шаг 2: Добавление маршрутов в VPN таблицу
# Маршрут через VPN шлюз
/ip route add gateway=192.168.1.5 routing-table=vpn_routing
# Маршрут обратно к клиентам (важно!)
/ip route add dst-address=192.168.1.0/24 gateway=192.168.1.5 routing-table=vpn_routing
Шаг 3: Настройка mangle для маркировки трафика
# Маркировка трафика от конкретных IP
/ip firewall mangle add chain=prerouting src-address=192.168.1.10 action=mark-routing new-routing-mark=vpn_routing
/ip firewall mangle add chain=prerouting src-address=192.168.1.20 action=mark-routing new-routing-mark=vpn_routing
# Маркировка трафика к определенным сайтам (опционально)
/ip firewall mangle add chain=prerouting dst-address=1.1.1.1 action=mark-routing new-routing-mark=vpn_routing
Шаг 4: Настройка routing policy
# Применение маркированных маршрутов
/ip route rule add table=vpn_routing routing-mark=vpn_routing
Шаг 5: NAT настройки
# SNAT для трафика через VPN
/ip firewall nat add chain=srcnat out-interface=vpn_gateway action=masquerade
Решение с Windows 10 и одним физическим интерфейсом
Создание виртуальных интерфейсов
На Windows 10 с одним физическим портом можно использовать:
- Hyper-V Virtual Switch Manager
- Драйверы виртуальных адаптеров
- Microsoft KM-TEST Loopback Adapter
Конфигурация моста:
# В командной строке от имени администратора netsh bridge show adapter netsh bridge add adapter name="Ethernet" netsh bridge create name="Bridge" netsh bridge add adapter "Bridge" "Ethernet"
Настройка VPN клиента:
- Установить AdGuard VPN или Amnezia WG
- Настроить режим “Split Tunneling”
- Разрешить подключение только от IP-адресов Mikrotik
Настройка с использованием VLAN
Вариант 1: 802.1Q VLAN на Mikrotik
# Создание VLAN интерфейса
/interface vlan add name=vlan10 vlan-id=10 interface=ether1
/ip address add address=192.168.1.5/24 interface=vlan10
# Настройка trunk порта
/interface ethernet switch port
set ether1 master-port=switch1 vlan-header=always-tag default-vlan=10
Вариант 2: VLAN на микро ПК
# На Linux с 8021q
modprobe 8021q
vconfig add eth0 10
ip addr add 192.168.1.5/24 dev eth0.10
Преимущества VLAN подхода:
- Изоляция трафика
- Возможность QoS
- Лучшая безопасность
- Простота управления
Оптимизация без отдельного физического порта
Метод 1: Использование tagged VLAN
Если на микро ПК установлен Linux, можно настроить:
# Установка VLAN
apt install vlan
modprobe 8021q
# Создание VLAN интерфейсов
vconfig add eth0 10 # Для VPN трафика
vconfig add eth0 20 # Для обычного трафика
# Назначение IP адресов
ip addr add 192.168.1.5/24 dev eth0.10
ip addr add 10.10.10.1/24 dev eth0.20
Метод 2: Туннельные интерфейсы
# Создание GRE туннеля между Mikrotik и микро ПК
/interface gre add name=vpn_tunnel local-address=192.168.1.1 remote-address=192.168.1.5
# Настройка маршрутизации через туннель
/ip route add gateway=vpn_tunnel routing-table=vpn_routing
Метод 3: Проксирование на уровне приложения
# Настройка.transparent proxy на Mikrotik
/ip proxy set enabled=yes port=8080
/ip firewall nat add chain=dstnat protocol=tcp dst-port=80 action=redirect to-ports=8080
Практические примеры конфигурации
Пример 1: Полная конфигурация для WireGuard
# На Mikrotik
/interface wireguard
add name=vpn-wg
/ip address add address=10.0.0.2/32 interface=vpn-wg
/ip route add dst-address=0.0.0.0/0 gateway=10.0.0.1
# Маркировка трафика
/ip firewall mangle add chain=prerouting src-address=192.168.1.10 action=mark-routing new-routing-mark=wg-mark
/ip firewall mangle add chain=prerouting src-address=192.168.1.20 action=mark-routing new-routing-mark=wg-mark
# Таблица маршрутизации
/ip route table add name=wg-table
/ip route rule add table=wg-table routing-mark=wg-mark
Пример 2: Конфигурация для OpenVPN
# Настройка OpenVPN клиента
/interface ovpn-client
add connect-to=vpn.server.com name=ovpn-client user=user password=pass
# Маршруты
/ip route add gateway=ovpn-client routing-table=vpn_table
# Firewall правила
/ip firewall mangle add chain=prerouting src-address=192.168.1.30 action=mark-packet new-packet-mark=vpn-packet
/ip firewall mangle add chain=prerouting packet-mark=vpn-packet action=mark-routing new-routing-mark=vpn_mark
Пример 3: Конфигурация Squid прокси
# На микро ПК с Linux
sudo apt install squid3
sudo nano /etc/squid/squid.conf
# Основные параметры
acl localnet src 192.168.1.0/24
http_access allow localnet
http_port 3128
cache_peer 192.168.1.1 parent 8080 0 no-query default
sudo systemctl restart squid
Пример 4: Настройка маршрутизации на Mikrotik
# Проверка текущих маршрутов
/ip route print
# Создание VPN таблицы
/ip route table add name=vpn_routes
# Добавление маршрутов
/ip route add gateway=192.168.1.5 routing-table=vpn_routes
# Маркировка трафика
/ip firewall mangle add chain=prerouting src-address=192.168.1.10 action=mark-routing new-routing-mark=vpn_mark
/ip firewall mangle add chain=prerouting src-address=192.168.1.20 action=mark-routing new-routing-mark=vpn_mark
# Применение правил
/ip route rule add table=vpn_routes routing-mark=vpn_mark
Источники
- MikroTik RouterOS Easy Policy Based Routing, selective devices through VPN Tunnel - YouTube
- Routing traffic from specific src addresses through specific VPN gateways - MikroTik community forum
- Mikrotik and VPN for specific web sites only - Super User
- Route traffic to VPN on Mikrotik | System/Network daily engineering
- Policy Based Routing - MikroTik community forum
- Dual Gateway Setup in Mikrotik - Server Fault
- Site to Site IPsec Policy Based VPN between Edge Gateway and Mikrotik
- Best way to route some traffic over a VPN, and leaving the rest for the default gateway? - Reddit
Заключение
Для настройки Mikrotik с двумя интернет-шлюзами для маршрутизации трафика через VPN необходимо:
-
Использовать Policy-Based Routing - это основной и наиболее гибкий метод, позволяющий направлять трафик определенных IP-адресов через VPN-шлюз в той же подсети.
-
Настроить VPN-шлюз на микро ПК - предпочтительно использовать Linux с Squid прокси или WireGuard, что обеспечит лучшую производительность и надежность.
-
Объединить интерфейсы с помощью VLAN или мостов - при наличии одного физического порта можно использовать 802.1Q VLAN для создания виртуальных сетевых интерфейсов.
-
Избегать физических портов через виртуализацию - современные Mikrotik поддерживают туннельные протоколы и виртуальные интерфейсы, что позволяет обойти ограничения количества физических портов.
-
Тщательно тестировать конфигурацию - перед развертыванием в рабочей среде обязательно проверьте работу маршрутизации, NAT и доступности всех сервисов.
Рекомендуемая схема реализации: Mikrotik с политикорентированной маршрутизацией + Linux-микро ПК с Squid прокси + VLAN для изоляции трафика. Этот подход обеспечит максимальную гибкость и производительность при минимальных затратах на оборудование.