Ну ребята, таки mikrotik меня удивил. Нда, я давно так не удивлялся. Такое ощущение, как будто съел кучу васаби и тебе сразу прочистило все дыхательные пути.
Итак: есть как бы роутер на микротик, у него два интерфейса:
Маршрут по умолчанию через eth1 на другой роутер.Итак: есть как бы роутер на микротик, у него два интерфейса:
- eth1 192.168.0.100
- eth2 192.168.1.100
И микротик и роутер двумя интерфейсами подключены к обеим сетям: 192.168.0.0/24 и 192.168.1.0/24
Причем у микротика eth2 - это было временное подключение, только на стадии первичной конфигурации, так как рабочая станция с которой он первоначально конфигурился была в сети 1.0.
А теперь вопрос: если на микротике из интерфейса eth2 вытащить шнурок, сможете ли вы с машины, находящейся в сети 192.168.1.0/24 попасть на 192.168.0.100?
Или немного другой вариант вопроса: можете ли вы, находясь на микротике попасть в сетку 192.168.1.0/24 согласно его маршрута по умолчанию?
Ответ простой - нет!
Как оказалось, у RouterOS есть забавная фишка. У нее маршруты к сетям, подключенным к интерфейсу, при отключении линка из таблицы маршрутизации автоматически не удаляются! О как! В Linux удаляются (кстати все маршруты проходящие через этот интерфейс), в Windows удаляются, а в RouterOS нет!
И вот, три дня я нем мог понять, почему с упорством маньяка RouterOS пытается отсылать пакеты в интерфейс, на котором нет линка?
Слава богу служба поддержки Микротика работает отлично и они меня просветлили (именно просветлили, прямо таки карму почистили).
Для того, что бы интерфейс начал работать в привычном, например для меня, режиме. Нужно добавить небольшой фильтр.
[admin@MikroTik] > /routing filter print
Flags: X - disabled
0 chain=connected-in prefix=192.168.1.0/24 scope=200 invert-match=no
action=reject set-bgp-prepend-path=""
Принцип работы этого фильтра: если есть лик, значение scope=10, если линк down - то scope=200.
Немного поработав с mikrotik девайсами я догадываюсь почему у них так устроено :) но все равно - это было очень неожиданно.
Небольшой апдейт. Достаточно удалить ip адрес из списка и маршрут будет удален. Но если его не удалить руками, то да - пишем фильтр.
Может я что-то не понимаю, но по-моему в это правиле нет логики.
ОтветитьУдалитьСмотрим. Это правило применяется к цепочке connected-in - для всех подключенных маршрутов,
с prefix=192.168.1.0/24 - т.е. если есть маршрут содержит префикс 192.168.1.0/24 и у которого
scope=200, invert-match=no (без инвертирования условий), action=reject. Смотрим, что такое reject - отклоняет маршрутизируемую информацию содержащую значение префикса. Для входящего фильтра "отклонять" значит, что информация об этом маршруте сохраняется в памяти, но маршрут не становится активным. Для исходящего фильтра это тоже самое, что и "отбросить".
Ну и в конце вообще совершенно непонятное set-bgp-prepend-path="", относящееся к динамической маршрутизации.
Т.е. правило должно применяться к работающему нединамическому маршруту с префиксом 192.168.1.0/24 со scope=200 - этот маршрут становится неактивным
Принцип действия совсем не такой как описано автором статьи - "Принцип работы этого фильтра: если есть лик, значение scope=10, если линк down - то scope=200."