MikroTik / RouterOS · Урок 5 ·

Маршрутизація: статика, кілька провайдерів, failover

Один канал інтернету — це один пункт відмови. У цьому уроці навчимося прописувати статичні маршрути, розберемось із distance і check-gateway та зробимо автоматичний failover на два провайдери. І дізнаємось, чим failover відрізняється від балансування через PCC.

Рівень: Middle·~10 хв читання

← Усі уроки курсу «MikroTik / RouterOS з нуля»

Урок 5. Маршрутизація: статика, кілька провайдерів, failover — курс SEOWORK

Статичні маршрути: gateway і distance

Маршрутизація — це правила «куди відправляти пакет для такої-то мережі». Мінімум, який уже працює після Уроку 2, — default route (0.0.0.0/0) у бік провайдера, який RouterOS отримав від DHCP-клієнта. Але статику варто вміти прописувати руками (меню IP > Routes):

# увесь невідомий трафік — на шлюз провайдера
/ip route add dst-address=0.0.0.0/0 gateway=192.0.2.1
# маршрут до віддаленої підмережі через конкретний шлюз
/ip route add dst-address=10.10.0.0/24 gateway=192.168.10.254

Параметр distance — «вага» маршруту. Що менше число, то пріоритетніший маршрут. Коли до однієї цілі є кілька шляхів, RouterOS обере з найменшою distance, а решту тримає в резерві. Саме на цьому будується failover.

Два провайдери і failover

Класична задача офісу: два канали, і якщо основний падає — трафік має піти в резервний автоматично. Найпростіший робочий спосіб — два default route з різною distance і перевіркою живості шлюзу check-gateway:

# основний канал: distance=1, перевіряємо шлюз пінгом
/ip route add dst-address=0.0.0.0/0 gateway=192.0.2.1 \
distance=1 check-gateway=ping
# резервний канал: distance=2 — вмикається, коли перший «помер»
/ip route add dst-address=0.0.0.0/0 gateway=198.51.100.1 \
distance=2 check-gateway=ping

Логіка: поки шлюз основного каналу відповідає на ping, працює маршрут із distance=1. Щойно шлюз перестав пінгуватися — RouterOS деактивує цей маршрут, і трафік перемикається на резервний (distance=2). Канал повернувся — усе автоматично їде назад на основний.

Тонкість. check-gateway=ping перевіряє лише шлюз, а не «чи є взагалі інтернет». Якщо провайдер живий, а от далі в нього аварія — шлюз пінгується, і failover не спрацює. Для «справжньої» перевірки використовують recursive-маршрути (маршрут через шлюз, доступність якого перевіряється пінгом до зовнішньої адреси на кшталт 8.8.8.8) або скрипти з Netwatch.

Балансування навантаження: PCC

Failover — це «резерв». А якщо треба, щоб обидва канали працювали одночасно й ділили навантаження? Для цього є PCC (Per Connection Classifier) — механізм у mangle, який розкидає зʼєднання між каналами за хешем (наприклад, за парою src-address+dst-address), позначаючи їх connection-mark і routing-mark.

PCC — тема не для першого тижня: там кілька правил mangle, окремі таблиці маршрутизації й masquerade на кожен канал. Головне зараз — знати, що балансування двох провайдерів на MikroTik робиться саме через PCC, і не плутати його з простим failover.

Коли статики замало: OSPF

Поки мереж дві-три — статичних маршрутів вистачає. Але коли підмереж десятки й вони змінюються, руками це вести нереально. Тоді вмикають динамічну маршрутизацію — найчастіше OSPF: роутери самі обмінюються інформацією про мережі й будують таблиці маршрутів. Це наступний рівень після цього курсу — просто знай, що такий інструмент є і куди рости.

Типова помилка

Два default route без distance. Якщо додати два маршрути 0.0.0.0/0 з однаковою distance і без check-gateway, RouterOS почне слати трафік то в один, то в інший канал (per-connection), і користувачі скаржитимуться на «то працює, то ні» — особливо ламаються сесії й банк-клієнти. Для резерву різницю в distance і check-gateway ставити обовʼязково; для балансу — робити повноцінний PCC, а не покладатися на випадок.

Домашнє завдання

  1. Подивись поточну таблицю маршрутів: /ip route print — знайди свій default route і його distance.
  2. Якщо є другий канал — додай резервний default route з distance=2 і check-gateway=ping.
  3. Вимкни основний канал і переконайся, що інтернет не зник (перемкнувся на резерв).

Часті питання

Додай два default route (0.0.0.0/0) з різною distance: основний з distance=1, резервний з distance=2, обидва з check-gateway=ping. Поки шлюз основного каналу пінгується, працює він; щойно шлюз «помер» — трафік автоматично перемикається на резервний, а після відновлення повертається назад.

Distance — це пріоритет (адміністративна відстань) маршруту. Що менше число, то вищий пріоритет. Коли до однієї мережі є кілька шляхів, RouterOS обирає маршрут із найменшою distance, а решту тримає в резерві. На цьому будується failover між провайдерами.

Failover тримає резервний канал у запасі й вмикає його лише коли основний падає — робиться через distance і check-gateway. Балансування (load balancing) задіює обидва канали одночасно й ділить між ними трафік — на MikroTik це роблять через PCC (Per Connection Classifier) у mangle. Це різні задачі й різні механізми.

Зміст курсу

  1. Перше підключення
  2. Базове налаштування (IP/DHCP/NAT)
  3. Firewall RouterOS
  4. Wi-Fi, bridge та VLAN
  5. Маршрутизація і failover
  6. VPN (WireGuard/IPsec/L2TP)
  7. QoS, бекап і хардненг

Канал стійкий до збоїв

Урок 6 — піднімаємо VPN: WireGuard, IPsec і L2TP для віддаленого доступу.

Сподобалось? Поділіться — це найкраща підтримка

Розбори кіберзагроз від SEOWORK

Одна практична стаття на тиждень — як не купитися на фішинг, захистити акаунти й дані. У подарунок одразу памʼятка у PDF.