Разделение двух провайдеров на MikroTik (Policy Routing): трафик директора на быстрый канал
Задача распределения нагрузки между двумя интернет-провайдерами
В офисе подключено два интернет-провайдера: ISP1 (дорогой, стабильный оптический канал 500 Мбит/с) и ISP2 (дешевый базовый канал 100 Мбит/с). Требуется направить трафик директора и бухгалтерии через скоростной ISP1, а трафик всех остальных сотрудников и гостевой Wi-Fi — через экономный ISP2.
Схема распределения трафика:
| Группа устройств | IP-диапазон / IP хоста | Используемый провайдер | Маршрут при падении канала |
|---|---|---|---|
| Директор / Серверы | 192.168.1.100, 192.168.1.10 | ISP1 (Основной быстрый) | Автоматическое переключение на ISP2. |
| Обычные сотрудники | 192.168.1.50 - 192.168.1.99 | ISP2 (Дешевый стандартный) | Автоматическое переключение на ISP1. |
Пошаговая реализация Policy Based Routing (PBR) в RouterOS
- Создание списка IP-адресов дирекции (Address List):
/ip firewall address-list add list=VIP_USERS address=192.168.1.100 comment="Director PC" add list=VIP_USERS address=192.168.1.101 comment="Director Laptop" - Маркировка маршрутов в таблице Mangle:
Помечаем трафик привилегированных пользователей специальной меткой маршрутизации (Routing Mark):
/ip firewall mangle add chain=prerouting src-address-list=VIP_USERS dst-address-type=!local action=mark-routing new-routing-mark=to_ISP1 passthrough=yes comment="Mark VIP traffic to ISP1" add chain=prerouting src-address-list=!VIP_USERS dst-address-type=!local action=mark-routing new-routing-mark=to_ISP2 passthrough=yes comment="Mark other traffic to ISP2" - Создание отдельных маршрутов для каждой таблицы:
Направляем маркированный трафик в шлюзы соответствующих провайдеров:
# Для RouterOS v7: /routing table add name=to_ISP1 fib /routing table add name=to_ISP2 fib /ip route add dst-address=0.0.0.0/0 gateway=198.51.100.1 routing-table=to_ISP1 check-gateway=ping comment="Route VIP via ISP1" add dst-address=0.0.0.0/0 gateway=203.0.113.1 routing-table=to_ISP2 check-gateway=ping comment="Route Others via ISP2" # Резервный маршрут по умолчанию в основной таблице (main): add dst-address=0.0.0.0/0 gateway=198.51.100.1 distance=1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=203.0.113.1 distance=2 - Настройка маскарадинга (NAT) для обоих каналов:
/ip firewall nat add chain=srcnat out-interface=ether1-ISP1 action=masquerade add chain=srcnat out-interface=ether2-ISP2 action=masquerade
Важное правило: Параметр dst-address-type=!local в правилах Mangle обязателен! Без него директор не сможет подключиться к локальным принтерам и сетевым папкам внутри офиса, так как пакеты уйдут напрямую в интернет-шлюз.
Частые вопросы (FAQ)
Что произойдет с интернетом у директора, если ISP1 оборвет кабель?
Благодаря опции `check-gateway=ping` неработающий маршрут ISP1 отключится через 20 секунд, и трафик директора автоматически пойдет по запасному маршруту через ISP2.
Чем Policy Routing отличается от балансировки PCC (Per Connection Classifier)?
Балансировка PCC делит сессии поровну между каналами случайным образом, а Policy Routing жестко закрепляет конкретных пользователей или сервисы за выбранным провайдером.
Можно ли пустить только трафик YouTube через резервного провайдера?
Да, можно сформировать список IP-адресов YouTube/VK через DNS Snooping / L7 и маркировать только пакеты к этим доменам.
Почему после настройки mangle перестал работать доступ к роутеру через WinBox?
Убедитесь, что входящие сессии роутера маркируются обратными метками соединений (connection-mark), чтобы ответные пакеты уходили через тот же интерфейс, откуда пришли.