Малоизвестная фича найденная на просторах интернета.
Допустим есть
интернет1 10.10.0.2/28 шлюз 10.10.0.1 метка inet1 порт ether1
интернет2 10.10.0.3/28 шлюз 10.10.0.1 метка inet2 порт ether2
Локалка1 192.168.0.0/24 шлюз 192.168.0.1 метка inet1 порт ether3
Локалка2 192.168.1.0/24 шлюз 192.168.1.1 метка inet2 порт ether4
Задача заставить ether3 ломиться только через ether1, а ether4 только через ether2.
Мы уже настроили интерфейсы, айпишники, и маркировку через манглы, осталось только занатить и отроутить.
И так идем классическим вариантом.
Натим нулевую сеть
/ip firewall nat add chain=srcnat action=masquerade out-interface=ether1 src-address=192.168.0.0/24
Тут не важно по метке или по интерфейсу, по интерфейсу нагляднее.
Добавляем роутинг
/ip route add gateway=10.10.0.1 routing-mark=inet1
В интерфейсе видим, что наша запись эстеблишед через ether1 .. что нам и нужно проверяем интернет - бежит.
Делаем все тоже самое для первой сетки.
/ip firewall nat add chain=srcnat action=masquerade out-interface=ether2 src-address=192.168.1.0/24
/ip route add gateway=10.10.0.1 routing-mark=inet2
Что видим? Наша новая запись роутинга эстеблишна для ether2 , что нам и нужно, но при этом и первая запись роутинга тоже через ether2.
Другими словами микротик нас в независимости от меток, пошлет на ether2, но в этом случае нулевая сеть у нас перестанет ходить в интернет.
Другими словами единственное что нужно в этом случае явно указать микротику - это при какой метке какой интерфейс задействовать с каким шлюзом, что мы и делаем прописывая
роутингитаким образом
/ip route add gateway=10.10.0.1%ether1 routing-mark=inet1
/ip route add gateway=10.10.0.1%ether2 routing-mark=inet2
Теперь микротик знает, что трафик с меткой интернета 1 должен пойти через шлюз 10.10.0.1 по интерфейсу 1, а трафик с меткой интернета 2 должен пойти через ТОТЖЕ шлюз, но по интерфейсу 2.
Это частный случай, т.к. как правило у людей разные провайдеры и разные шлюзы, а когда шлюзы разные микротик сам все правильно эстеблишит.