Балансировка нагрузки в MikroTik RouterOS: основы и настройка

2025-04-27 16:36
27
Ця стаття на мовах: UA / RU
Цікавий факт
Перша фотографія в Інтернеті була завантажена у 1992 році і зображала жіночий гурт "Les Horribles Cernettes".

t.me


Стаття у розділах:

Програмне забезпечення Загальна інформація

Балансировка нагрузки в MikroTik RouterOS: основы и настройка

В эпоху растущих требований к стабильному и быстрому интернет-соединению балансировка нагрузки стала критически важной технологией. MikroTik RouterOS предлагает гибкие возможности для реализации распределения трафика между несколькими интернет-каналами.

Что такое балансировка нагрузки?

Балансировка нагрузки — это процесс распределения сетевого трафика между несколькими каналами связи с целью оптимизации пропускной способности, уменьшения задержек и обеспечения высокой доступности интернет-услуг.

Методы балансировки в MikroTik

RouterOS позволяет использовать несколько подходов к балансировке нагрузки:

  • ECMP (Equal Cost Multi Path): равномерное распределение трафика между несколькими шлюзами или интернет-каналами с одинаковой стоимостью маршрута.

  • PCC (Per Connection Classifier): распределение новых соединений по определённым характеристикам, таким как IP-адрес или порт.

  • Nth: выбор каждого n-го соединения для маршрутизации через различные каналы.

  • Random: случайное распределение новых соединений.

ECMP (Equal Cost Multi Path) — Подробный разбор

Что такое ECMP:
ECMP (многопутевая маршрутизация с равной стоимостью) — это техника маршрутизации, позволяющая сетевому устройству использовать несколько маршрутов одновременно, если у них одинаковая стоимость (метрика).

Как работает:
Когда маршрутизатор обнаруживает несколько равнозначных путей до одного назначения, он может использовать все эти маршруты параллельно для распределения нагрузки.

Методы распределения трафика:

  • Хеширование на основе IP-адресов источника и назначения.

  • Хеширование по TCP/UDP портам.

  • Случайный выбор маршрута для лучшего распределения.

Пример использования:
В компании подключено два интернет-провайдера по 1 Гбит/с. С помощью ECMP можно равномерно распределить нагрузку между ними и добиться суммарной пропускной способности около 2 Гбит/с.

Преимущества ECMP:

  • Простота настройки на большинстве маршрутизаторов.

  • Естественное масштабирование пропускной способности.

  • Минимальная задержка переключения при отказе одного канала.

Ограничения ECMP:

  • Нет гарантии стабильности для отдельных сессий (пакеты могут идти разными маршрутами).

  • Требуется одинаковая стоимость маршрутов.

  • Лучше подходит для большого количества коротких соединений.


PCC (Per Connection Classifier) — Подробный разбор

Что такое PCC:
PCC (классификация по соединениям) — это технология, анализирующая новые сетевые соединения и закрепляющая их за конкретным интернет-каналом на основе заданных критериев.

Как работает:
Каждое новое TCP или UDP-соединение классифицируется по определённым признакам (IP-адрес, порт и т.д.), после чего маршрутизатор принимает решение, через какой канал направлять трафик.

Критерии классификации:

  • IP-адрес источника.

  • IP-адрес назначения.

  • Порт источника или назначения.

  • Протокол.

Пример использования:
Домашний маршрутизатор подключён к двум интернет-провайдерам. Игровой трафик направляется через первый канал с минимальными задержками, а весь остальной трафик — через второй, более дешёвый канал.

Преимущества PCC:

  • Стабильность соединений (очень важно для банковских приложений, VPN, онлайн-игр).

  • Возможность настройки приоритета разных типов трафика.

  • Гибкость в выборе критериев классификации.

Ограничения PCC:

  • Более сложная настройка в сравнении с ECMP.

  • При отказе канала соединения могут обрываться без специальной обработки.

  • Менее эффективное использование каналов для мелких сессий.

 

Конфигурация ECMP (Equal Cost Multi Path)

Задача:
Есть два провайдера: ether1 и ether2. Нужно равномерно распределять исходящий трафик через оба канала.

Пример настройки:

bash
/ip route add dst-address=0.0.0.0/0 gateway=192.168.88.1,192.168.89.1

Что происходит:

  • dst-address=0.0.0.0/0 — весь интернет-трафик.

  • gateway=192.168.88.1,192.168.89.1 — два шлюза, через которые маршрутизатор будет распределять трафик равномерно.

Важно:
Скорости каналов должны быть одинаковыми или хотя бы похожими для идеальной работы ECMP.


Конфигурация PCC (Per Connection Classifier)

Задача:
Есть два провайдера, и нужно распределить новые подключения на два канала на основе IP-адресов источника.

Пример настройки:

  1. Создаем правила mangle для маркировки трафика:

bash
/ip firewall mangle add chain=prerouting in-interface=LAN connection-mark=no-mark action=mark-connection \ new-connection-mark=to_ISP1_conn passthrough=yes per-connection-classifier=src-address:2/0 add chain=prerouting in-interface=LAN connection-mark=no-mark action=mark-connection \ new-connection-mark=to_ISP2_conn passthrough=yes per-connection-classifier=src-address:2/1 add chain=prerouting connection-mark=to_ISP1_conn action=mark-routing new-routing-mark=to_ISP1 passthrough=yes add chain=prerouting connection-mark=to_ISP2_conn action=mark-routing new-routing-mark=to_ISP2 passthrough=yes
  1. Создаем маршруты для каждого канала:

bash
/ip route add dst-address=0.0.0.0/0 gateway=192.168.88.1 routing-mark=to_ISP1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=192.168.89.1 routing-mark=to_ISP2 check-gateway=ping

Пояснение:

  • Новые подключения из LAN разделяются на две группы по IP-адресу.

  • Каждая группа получает свой маршрут через соответствующего провайдера.

  • Опция check-gateway=ping позволяет маршрутизатору проверять доступность каждого шлюза.


Примечания ✍️

  • Для ECMP маркировать соединения не нужно.

  • Для PCC обязательно маркируются и соединения, и маршруты.

  • Если нужен резервный канал (автоматический фейловер), понадобится чуть более сложная конфигурация (например, через netwatch или скрипты).

 

Настройка балансировки нагрузки

1. Добавление маршрутов

Создаются несколько маршрутов к интернет-шлюзам с одинаковым или разным приоритетом (distance). Например:

 
/ip route add dst-address=0.0.0.0/0 gateway=192.168.88.1 add dst-address=0.0.0.0/0 gateway=192.168.89.1

2. Настройка правил балансировки

В зависимости от выбранного метода необходимо создать правила в mangle или nat для корректного распределения сессий.

3. Мониторинг доступности каналов

RouterOS позволяет контролировать состояние интернет-каналов и автоматически отключать маршруты в случае недоступности шлюза.

Преимущества балансировки нагрузки

  • Оптимальное использование доступной пропускной способности

  • Повышение отказоустойчивости сети

  • Возможность комбинировать дешёвые и дорогие каналы для экономии средств

Заключение

MikroTik RouterOS предлагает мощные и гибкие инструменты для реализации балансировки нагрузки даже в сложных сетях. При правильной настройке можно обеспечить стабильный и быстрый доступ в Интернет с минимальными затратами.


Сподобалась стаття? Подякуйте автору