Навантажувальне балансування в MikroTik RouterOS: основи та налаштування

2025-04-27 16:36
27
Ця стаття на мовах: UA / RU
Цікавий факт
В Японії були створені телефони для захисту від води, бо багато людей користувалися ними у ванній.

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-портами.

  • Рандомізація для кращого балансу трафіку.

Приклад використання:
У вас є два інтернет-канали від різних провайдерів зі швидкістю 100 Мбіт/с кожен. Завдяки ECMP весь трафік буде динамічно розподілятися між двома каналами, дозволяючи досягти сумарної швидкості близько 200 Мбіт/с.

Переваги ECMP:

  • Проста реалізація на маршрутизаторі.

  • Природне масштабування пропускної здатності.

  • Мінімальні затримки при виході одного каналу з ладу (автоматичне перемикання).

Обмеження ECMP:

  • Не гарантує постійність з'єднання для окремих сесій (пакети можуть "перескакувати").

  • Вимагає однакової вартості маршрутів.

  • Підходить краще для сценаріїв із високою кількістю коротких запитів.


PCC (Per Connection Classifier) — Детальний розбір

Що таке PCC:
PCC (класифікація за з'єднанням) — це технологія, що аналізує нові мережеві з'єднання і розподіляє їх за певними характеристиками, закріплюючи за конкретним інтернет-каналом.

Як працює:
Кожен новий сеанс (TCP або UDP) аналізується за обраними критеріями (IP-адреса джерела, порт тощо), і на основі цього рішення встановлюється — через який саме канал він буде проходити.

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

  • IP-адреса джерела.

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

  • Порт джерела або призначення.

  • Протокол (TCP, UDP).

Приклад використання:
Сімейний роутер має два канали: один для потокового відео (YouTube, Netflix), інший — для ігор і роботи. Завдяки PCC трафік YouTube буде йти через один провайдер, а онлайн-ігри — через інший, не заважаючи один одному.

Переваги PCC:

  • Постійність з'єднань (важливо для банків, VPN, ігор).

  • Можливість пріоритезації різного типу трафіку.

  • Гнучкість у налаштуванні класифікаторів.

Обмеження PCC:

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

  • При виході каналу з ладу сесії можуть обриватися (потрібна додаткова обробка).

 

Ось приклади реальної конфігурації MikroTik RouterOS для ECMP та PCC.


Конфігурація 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 пропонує потужні та гнучкі інструменти для реалізації навантажувального балансування навіть у складних мережах. Завдяки правильному налаштуванню можна забезпечити стабільний і швидкий доступ до Інтернету з мінімальними витратами.


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