Москва+7 (495) 103-4-103
Заказать звонок
  • Заказать звонок
  • Отложить 0 шт.
  • Сравнить 0 шт.
 15 Окт 2016    MikroTik, Практика и программирование

Служба обнаружения соседних маршрутизаторов и совместимого оборудования в RouterOS присутствует давно. К сожалению, над схемой функционирования “Neighbor Discovery” товарищи админы задумываются редко. Там вроде как будто всё просто, но просто не настолько как кажется.

Наглядной иллюстрацией служат неудачные попытки скрыть информацию о своём маршрутизаторе MikroTik, при этом получать инфу о маршрутизаторах соседей внутри broadcast-домена провайдера. Так сказать, подглядывать за соседями по провайдерскому свитчу. Обычно это выглядит как запрет фаерволом отправки широковещательных пакетов объявления службы discovery UDP 255.255.255.255:5678. Вбив запрещающее правило в конфиг фаервола, некоторые считают, что полностью скрыли свой маршрутизатор от видимости соседями. Но это не так.

Обновление Neighbor discovery в RouterOS 6.38

Давайте разберемся, как работает Neighbor Discovery в MikroTik. Neighbor Discovery в RouterOS до 6.38 содержит в себе два пути объявления и получения информации работающие на разных уровнях модели OSI: на уровне L4 работает транспорт UDP, на уровне L2 информацию принимает и передает протокол семейства MNDP/VDP/CDP. Полученная из обеих источников информация объединяется и отображается в списке обнаруженных соседей “/ip neighbors”. Вот так выглядит Neighbor Discovery в текущем релизе:

Обновление Neighbor discovery в RouterOS 6.38

Таким образом, простым запретом отправки UDP-пакетов на порт 5678, информацию о маршрутизаторе скрыть невозможно. Нужно либо полностью отключать службу Neighbors на интерфейсе командой /ip neighbor discovery set ether1-gateway discover=no, либо фильтровать исходящий L2 трафик на предмет MNDP-пакетов с помощью bridge filters. Например, вот так:

 /interface bridge filter add action=drop chain=output disabled=no dst-mac-address=01:00:0C:CC:CC:CC/

Сейчас готовится к релизу новая версия RouterOS 6.38, и в ней наконец-то случилось то, о чём так долго говорили большевики просили админы многих стран. В 6.38 наконец-то добавлена хорошая плюшка в виде поддержки открытого протокола LLDP. Это еще немного расширяет возможности оборудования в части мониторигна состояния L2 соединения. Теперь в списке соседей можно будет видеть любое LLDP-совместимое оборудование, при условии, что на нем тоже включена поддержка объявления LLDP. Например, теперь мой тестовый маршрутизатор отлично «видит» соседний свитч HP v1905-24

Обновление Neighbor discovery в RouterOS 6.38

Не забываем включить LLDP на свиче HP v1905-24:

Обновление Neighbor discovery в RouterOS 6.38

Информации пока принимается и передается немного, но для мониторинга наличия/отсутствия видимости по L2 достаточно. Отмечу, что поддержка LLDP не заменила другие протоколы, а добавлена к списку поддерживаемых в MikroTik Discovery и начиная со 6.38 она будет выглядеть вот так:

 Обновление Neighbor discovery в RouterOS 6.38

В официальной WiKi MikroTik уже добавлены сведения об информации принимаемой и передаваемой RouterOS посредством LLDP.

RouterOS sends out:

Chassis subtype (MAC)

  • Port subtype (interface name)
  • TTL
  • System name (system identity)
  • Sys description ({platform} RouterOS {osvers} {boardName})
  • All IP addresses on configured on the port


RouterOS accepts and processes:

  • identity (LLDP_TYPE_SYS_NAME)
  • interfaceName (depending on the priority, if one is empty checks the next: LLDP_TYPE_CHASSIS_ID, LLDP_TYPE_PORT_ID, LLDP_TYPE_PORT_DESC)
  • ip4 (first entry of IPv4 LLDP_TYPE_MANAGEMENT_ADDR)
  • ip6 (first entry of IPv6 LLDP_TYPE_MANAGEMENT_ADDR)
  • TTL (LLDP_TYPE_TTL)
  • MAC (Source — 6-11 byte)

Ну, что ж, ждём официального релиза и внимательно наблюдаем за тестовыми аппаратами – на то и статус у 6.38 пока еще «rc».

©https://habrahabr.ru/post/312236/