Навантажувальне балансування в 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
. Потрібно рівномірно розподіляти вихідний трафік через обидва канали.
Приклад налаштування:
Що відбувається:
-
dst-address=0.0.0.0/0
— усі маршрути (інтернет). -
gateway=192.168.88.1,192.168.89.1
— два шлюзи, через які маршрутизатор буде рівномірно розподіляти трафік.
Важливо:
Швидкість каналів має бути однаковою або схожою для ідеальної роботи ECMP.
Конфігурація PCC (Per Connection Classifier)
Задача:
Є два провайдери, і потрібно розділяти нові з'єднання на два канали на основі IP-адрес джерела.
Приклад налаштування:
-
Створюємо
mangle
правила для маркування трафіку:
-
Створюємо маршрути для різних каналів:
Пояснення:
-
Нові з'єднання з LAN розділяються на дві групи за IP-адресою.
-
Кожна група має свій власний маршрут через відповідного провайдера.
-
Завдяки
check-gateway=ping
маршрутизатор буде знати, чи працює конкретний шлюз.
Примітки ✍️
-
Для ECMP не потрібно маркувати з'єднання.
-
Для PCC обов'язково маркуються з'єднання і маршрути.
-
Якщо хочете мати резервний канал (автоматичний фейловер), доведеться трохи ускладнити конфігурацію (наприклад, за допомогою
netwatch
чи скриптів).
Налаштування навантажувального балансування
1. Додавання маршрутів
Створюються кілька маршрутів до інтернет-шлюзів з однаковими або різними пріоритетами (distance). Наприклад:
2. Налаштування правил балансування
В залежності від обраного методу потрібно створити правила для mangle або nat для правильного розподілу сесій.
3. Моніторинг доступності каналів
RouterOS дозволяє контролювати стан інтернет-каналів і автоматично вимикати маршрути, якщо шлюз недоступний.
Переваги балансування навантаження
-
Оптимальне використання доступної пропускної здатності
-
Підвищення відмовостійкості мережі
-
Можливість комбінувати дешеві та дорогі канали для економії коштів
Висновок
MikroTik RouterOS пропонує потужні та гнучкі інструменти для реалізації навантажувального балансування навіть у складних мережах. Завдяки правильному налаштуванню можна забезпечити стабільний і швидкий доступ до Інтернету з мінімальними витратами.