Как MikroTik видит соседей. Обновление Neighbor discovery в RouterOS 6.38
Служба обнаружения соседних маршрутизаторов и совместимого оборудования в RouterOS присутствует давно. К сожалению, над схемой функционирования «Neighbor Discovery» товарищи админы задумываются редко. Там вроде как будто всё просто, но просто не настолько как кажется.
Давайте разберемся, как работает Neighbor Discovery в MikroTik.
Neighbor Discovery в RouterOS до 6.38 содержит в себе два пути объявления и получения информации работающие на разных уровнях модели OSI: на уровне L4 работает транспорт UDP, на уровне L2 информацию принимает и передает протокол семейства MNDP/VDP/CDP. Полученная из обеих источников информация объединяется и отображается в списке обнаруженных соседей »/ip neighbors». Вот так выглядит Neighbor Discovery в текущем релизе:
Таким образом, простым запретом отправки UDP-пакетов на порт 5678, информацию о маршрутизаторе скрыть невозможно. Нужно либо полностью отключать службу Neighbors на интерфейсе командой /ip neighbor discovery set ether1-gateway discover=no, либо фильтровать исходящий L2 трафик на предмет MNDP-пакетов с помощью bridge filters. Например, вот так:
Сейчас готовится к релизу новая версия RouterOS 6.38, и в ней наконец-то случилось то, о чём так долго говорили большевики просили админы многих стран. В 6.38 наконец-то добавлена хорошая плюшка в виде поддержки открытого протокола LLDP. Это еще немного расширяет возможности оборудования в части мониторигна состояния L2 соединения. Теперь в списке соседей можно будет видеть любое LLDP-совместимое оборудование, при условии, что на нем тоже включена поддержка объявления LLDP. Например, теперь мой тестовый маршрутизатор отлично «видит» соседний свитч HP v1905–24
Информации пока принимается и передается немного, но для мониторинга наличия/отсутствия видимости по L2 достаточно. Отмечу, что поддержка LLDP не заменила другие протоколы, а добавлена к списку поддерживаемых в MikroTik Discovery и начиная со 6.38 она будет выглядеть вот так:
В официальной WiKi MikroTik уже добавлены сведения об информации принимаемой и передаваемой RouterOS посредством LLDP.
RouterOS accepts and processes:
Ну, что ж, ждём официального релиза и внимательно наблюдаем за тестовыми аппаратами — на то и статус у 6.38 пока еще «rc».
Наглядной иллюстрацией служат неудачные попытки скрыть информацию о своём маршрутизаторе MikroTik, при этом получать инфу о маршрутизаторах соседей внутри broadcast-домена провайдера. Так сказать, подглядывать за соседями по провайдерскому свитчу. Обычно это выглядит как запрет фаерволом отправки широковещательных пакетов объявления службы discovery UDP 255.255.255.255:5678. Вбив запрещающее правило в конфиг фаервола, некоторые считают, что полностью скрыли свой маршрутизатор от видимости соседями. Но это не так.
Давайте разберемся, как работает Neighbor Discovery в MikroTik.
Neighbor Discovery в RouterOS до 6.38 содержит в себе два пути объявления и получения информации работающие на разных уровнях модели OSI: на уровне L4 работает транспорт UDP, на уровне L2 информацию принимает и передает протокол семейства MNDP/VDP/CDP. Полученная из обеих источников информация объединяется и отображается в списке обнаруженных соседей »/ip neighbors». Вот так выглядит Neighbor Discovery в текущем релизе:
Таким образом, простым запретом отправки 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/FF:FF:FF:FF:FF:FF out-interface=ether1-gateway.
Сейчас готовится к релизу новая версия RouterOS 6.38, и в ней наконец-то случилось то, о чём так долго говорили большевики просили админы многих стран. В 6.38 наконец-то добавлена хорошая плюшка в виде поддержки открытого протокола LLDP. Это еще немного расширяет возможности оборудования в части мониторигна состояния L2 соединения. Теперь в списке соседей можно будет видеть любое LLDP-совместимое оборудование, при условии, что на нем тоже включена поддержка объявления LLDP. Например, теперь мой тестовый маршрутизатор отлично «видит» соседний свитч HP v1905–24
Не забываем включить LLDP на свиче HP v1905–24
Информации пока принимается и передается немного, но для мониторинга наличия/отсутствия видимости по L2 достаточно. Отмечу, что поддержка LLDP не заменила другие протоколы, а добавлена к списку поддерживаемых в MikroTik Discovery и начиная со 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».