Маршрутизация в MikroTik (RouterOS)
Общая архитектура маршрутизации в MikroTik
Маршрутизация в MikroTik — это цепочка обработчиков пакетов, организованных через "routing decision chain", маршруты, маркировки, policy-based routing и Firewall Mangle.
Основные стадии обработки пакета (RouterOS)
| Этап | Компонент | Описание |
|---|---|---|
| 1️⃣ Приём | Interface Input | Пакет приходит на интерфейс (ether1, wlan1 и т.п.) |
| 2️⃣ Pre-routing | Firewall → Mangle | Можно изменить метки маршрута, connection mark, routing mark и т.д. |
| 3️⃣ Routing | IP → Routes | Определяется, куда отправить: next-hop, интерфейс |
| 4️⃣ Post-routing | NAT, Mangle | Переписывание src/dst IP, final shaping |
| 5️⃣ Output | Interface Output | Передача пакета на интерфейс выхода |

Пример логики маршрутизации
IN-IFACE → Pre-routing → Mangle (маркировка маршрута)
→ Lookup по routing table
→ NAT (если есть)
→ OUT-IFACE
Ключевые особенности MikroTik
1. Routing Table
- MikroTik поддерживает несколько таблиц маршрутов (main, test, vpn1 и т.д.)
- Через
routing-markможно указать, в какую таблицу маршрутов смотреть
2. Mangle (в Chain prerouting, output, postrouting)
-
Позволяет:
- пометить соединение (
connection-mark) - пометить пакет (
packet-mark) - пометить маршрут (
routing-mark) → 💡 ключ для policy-based routing
- пометить соединение (
-
Срабатывает до маршрутизации → можно “перенаправить” решение
3. NAT (Chain srcnat, dstnat)
- Source NAT (
masquerade,src-nat) — в postrouting - Destination NAT (
dst-nat) — в prerouting
4. Routing Decision
-
После применения Mangle (и установки routing mark, если есть), пакет маршрутизируется по соответствующей таблице:
- если есть mark —
routing-table=xxx - если нет — по
main
- если есть mark —
Структура маршрутизации в RouterOS
1. Пакет приходит на интерфейс
2. ➜ Pre-routing: Mangle → routing-mark
3. ➜ Routing decision: таблица маршрутов
4. ➜ NAT (если srcnat или dstnat)
5. ➜ Post-routing: shaping или еще одна модуляция
6. ➜ Output интерфейс
Расширения
| Механизм | Описание |
|---|---|
| Policy-Based Routing | На основе правил (например, IP + порт) можно перенаправить в другую таблицу |
| ECMP | Equal-Cost Multi-Path — балансировка по нескольким маршрутам |
| Recursive routing | Один маршрут ссылается на другой (как и в Cisco) |
| Failover | Настраивается через check-gateway и distance |
| VRF | Поддержка изоляции маршрутов между интерфейсами |
Сравнение с Cisco-style маршрутизацией
| Компонент Cisco | Аналог в MikroTik |
|---|---|
ip route | /ip route |
route-map, policy | /ip firewall mangle + routing-mark |
CEF / FIB | Встроен в kernel, неявный |
VRF | /ip vrf |
NAT | /ip firewall nat |
Access-lists | /ip firewall filter |
Вывод
Микротик работает как stateful-пакетная фабрика, в которой:
- Pre-routing отвечает за решения маршрутизации (через Mangle),
- Routing — центральный этап, где выбирается next-hop,
- Post-routing — для финальной модификации и NAT.