Я понимаю, зачем может быть удобно иметь простой способ выделять определённые интерфейсы и делать для них отдельную маршрутизацию. Практически как отдельные роутеры. Или чтобы какие-то сервисы на роутере были доступны только в определённых зонах. Всё это нормально. Но тогда у меня та же проблема, что и у тебя. При такой чёткой изоляции скорее всего понадобится отдельная конфигурация файрвола для каждого. А нет — есть только один общий файрвол для всех. И ещё хуже — нет лёгкого способа фильтровать по используемому VRF. Я не до конца продумал, но с первого взгляда ожидал параметр типа vrf=, чтобы удобно разделять трафик. Но, если я не слепну, этого нет. Похоже, что у Linux тоже такого нет, значит, возможно, его предполагается использовать иначе. И да, есть главное отличие: в Linux для каждого VRF есть отдельный интерфейс, с которым можно работать. Если хочешь, например, принимать трафик из определённого VRF (не важно, с какого именно интерфейса) — это работает. У RouterOS такие интерфейсы тоже есть, но скрытые, и с ними нельзя взаимодействовать. Вот это и ограничение. Но даже если бы эти интерфейсы VRF были доступны (полная копия с Linux), это всё равно не решило бы всё, потому что в некоторых цепочках всё равно нельзя было бы точно сопоставить интерфейс внутри VRF. Сейчас MikroTik начал менять то, как файрвол видит интерфейсы, и если они доведут это до конца (также для output/postrouting и списков интерфейсов), появится возможность делать то, что нельзя в Linux. Круто. Но мне интересно, почему Linux организован так, как есть, и стоит ли это менять. Может ли это обернуться проблемами? Например, как я смогу отличить первый проход в prerouting от второго? В Linux и старом RouterOS был первый in-interface= и второй in-interface=. А теперь я вижу in-interface= для обоих. Что если я захочу увеличить TTL на один для всего, что приходит с реального интерфейса? Я не проверял, но в свежем RouterOS скорее всего TTL увеличится на два — по одному за каждый проход. Не очень. P.S. Я, наверное, слишком зациклен на интерфейсах. Можно было бы обойтись доступностью routing mark. Но мне всё равно кажется, что было бы лучше дать нам VRF-интерфейсы, как в Linux. Это решило бы ряд вопросов. И поскольку Linux делают умные люди, я уверен, что у них есть какой-то план (пусть я пока его не полностью понимаю), и если они эти интерфейсы добавили — значит, это хорошее решение.