Ай да mikrotik, а да сукин сын.

Ну ребята, таки mikrotik меня удивил. Нда, я давно так не удивлялся. Такое ощущение, как будто съел кучу васаби и тебе сразу прочистило все дыхательные пути.

Итак: есть как бы роутер на микротик, у него два интерфейса:

  1. eth1 192.168.0.100
  2. eth2 192.168.1.100

Маршрут по умолчанию через eth1 на другой роутер.
И микротик и роутер двумя интерфейсами подключены к обеим сетям: 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 адрес из списка и маршрут будет удален. Но если его не удалить руками, то да — пишем фильтр.

One thought on “Ай да mikrotik, а да сукин сын.

  1. Может я что-то не понимаю, но по-моему в это правиле нет логики.
    Смотрим. Это правило применяется к цепочке 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."

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *