НейроАгент

Настройка Mikrotik с двумя шлюзами для VPN маршрутизации

Полное руководство по настройке Mikrotik с двумя интернет-шлюзами для маршрутизации трафика через VPN. Узнайте, как направлять трафик определенных IP через VPN-шлюз в той же подсети.

Вопрос

Как настроить 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-шлюз на микро ПК?

Конкретные вопросы:

  1. Как реализовать такую схему, чтобы клиенты оставались в одной подсети 192.168.1.0/24?
  2. Если использовать Windows 10 на микро ПК, как объединить два интерфейса в бридж при наличии только одного физического порта?
  3. Можно ли решить эту задачу с помощью VLAN, и если да, то как именно настроить?
  4. Как избежать необходимости использования отдельного физического порта для этой конфигурации?
НейроАгент

Основной способ настройки Mikrotik с двумя интернет-шлюзами для маршрутизации трафика через VPN - это использование политикорентированной маршрутизации (Policy-Based Routing) с маркировкой трафика и отдельными таблицами маршрутизации. Для сохранения клиентов в одной подсети 192.168.1.0/24 необходимо настроить VPN-шлюз на микро ПК как прокси-сервер или использовать bridged интерфейс, а на Mikrotik создать правила маршрутизации, которые перенаправляют трафик определенных IP-адресов через VPN-шлюз.

Содержание

Основные концепции 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 на микро ПК рекомендуется использовать следующие компоненты:

bash
# Установка необходимых пакетов
sudo apt update
sudo apt install squid3 openvpn wireguard amnezia-wg

# Настройка Squid как прокси
sudo nano /etc/squid/squid.conf

Основные параметры Squid:

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 клиент с разделяемым подключением

Настройка сетевого моста

bash
# На 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: Создание таблиц маршрутизации

routeros
# Создание отдельной таблицы для VPN трафика
/ip route table add name=vpn_routing
/ip route table print

Шаг 2: Добавление маршрутов в VPN таблицу

routeros
# Маршрут через 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 для маркировки трафика

routeros
# Маркировка трафика от конкретных 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

routeros
# Применение маркированных маршрутов
/ip route rule add table=vpn_routing routing-mark=vpn_routing

Шаг 5: NAT настройки

routeros
# SNAT для трафика через VPN
/ip firewall nat add chain=srcnat out-interface=vpn_gateway action=masquerade

Решение с Windows 10 и одним физическим интерфейсом

Создание виртуальных интерфейсов

На Windows 10 с одним физическим портом можно использовать:

  1. Hyper-V Virtual Switch Manager
  2. Драйверы виртуальных адаптеров
  3. Microsoft KM-TEST Loopback Adapter

Конфигурация моста:

cmd
# В командной строке от имени администратора
netsh bridge show adapter
netsh bridge add adapter name="Ethernet"
netsh bridge create name="Bridge"
netsh bridge add adapter "Bridge" "Ethernet"

Настройка VPN клиента:

  1. Установить AdGuard VPN или Amnezia WG
  2. Настроить режим “Split Tunneling”
  3. Разрешить подключение только от IP-адресов Mikrotik

Настройка с использованием VLAN

Вариант 1: 802.1Q VLAN на Mikrotik

routeros
# Создание 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 на микро ПК

bash
# На 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, можно настроить:

bash
# Установка 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: Туннельные интерфейсы

routeros
# Создание 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: Проксирование на уровне приложения

routeros
# Настройка.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

routeros
# На 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

routeros
# Настройка 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 прокси

bash
# На микро ПК с 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

routeros
# Проверка текущих маршрутов
/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

Источники

  1. MikroTik RouterOS Easy Policy Based Routing, selective devices through VPN Tunnel - YouTube
  2. Routing traffic from specific src addresses through specific VPN gateways - MikroTik community forum
  3. Mikrotik and VPN for specific web sites only - Super User
  4. Route traffic to VPN on Mikrotik | System/Network daily engineering
  5. Policy Based Routing - MikroTik community forum
  6. Dual Gateway Setup in Mikrotik - Server Fault
  7. Site to Site IPsec Policy Based VPN between Edge Gateway and Mikrotik
  8. Best way to route some traffic over a VPN, and leaving the rest for the default gateway? - Reddit

Заключение

Для настройки Mikrotik с двумя интернет-шлюзами для маршрутизации трафика через VPN необходимо:

  1. Использовать Policy-Based Routing - это основной и наиболее гибкий метод, позволяющий направлять трафик определенных IP-адресов через VPN-шлюз в той же подсети.

  2. Настроить VPN-шлюз на микро ПК - предпочтительно использовать Linux с Squid прокси или WireGuard, что обеспечит лучшую производительность и надежность.

  3. Объединить интерфейсы с помощью VLAN или мостов - при наличии одного физического порта можно использовать 802.1Q VLAN для создания виртуальных сетевых интерфейсов.

  4. Избегать физических портов через виртуализацию - современные Mikrotik поддерживают туннельные протоколы и виртуальные интерфейсы, что позволяет обойти ограничения количества физических портов.

  5. Тщательно тестировать конфигурацию - перед развертыванием в рабочей среде обязательно проверьте работу маршрутизации, NAT и доступности всех сервисов.

Рекомендуемая схема реализации: Mikrotik с политикорентированной маршрутизацией + Linux-микро ПК с Squid прокси + VLAN для изоляции трафика. Этот подход обеспечит максимальную гибкость и производительность при минимальных затратах на оборудование.