Кейс
Как найти MikroTik с macOS без IP: MNDP, LLDP и MAC-Telnet
Находим MikroTik в локальном L2-сегменте через MNDP или LLDP и подключаемся к RouterOS по MAC-адресу — без Winbox, Wine и заранее известного IP.
MAC-Telnet работает на канальном уровне: адрес устройству не нужен, достаточно быть с ним в одном сегменте.
$ mactelnet -lSearching for MikroTik devices…64:D1:54:78:2E:68 gw.homenet$ mactelnet 64:D1:54:78:2E:68Login: adminConnected to gw.homenet[admin@gw.homenet] > На выезде часто бывает так: физический линк до роутера уже есть, а его IP неизвестен или недоступен из текущей подсети. Для MikroTik это не тупик — устройство можно найти и открыть консоль на канальном уровне, по MAC-адресу.
Winbox под Wine для этого не нужен. На macOS достаточно консольного клиента MAC-Telnet. А если кроме входа нужно понять, что именно подключено к порту, пригодится стандартный LLDP.
Перед началом
MAC-Telnet работает только внутри одного L2-домена: между компьютером и роутером не должно быть маршрутизатора, а коммутатор, VLAN или Wi-Fi-точка должны пропускать широковещательный трафик. Надёжнее всего подключаться кабелем к management-сегменту.
Важно: MAC-Telnet — инструмент первичной настройки и аварийного доступа, а не
замена SSH или VPN. Используйте его только в доверенной сети. На RouterOS доступ
следует ограничить нужными интерфейсами через
/tool mac-server allowed-interface-list.
Устанавливаем MAC-Telnet
В 2018 году клиент устанавливался одной командой Homebrew. Сейчас формулы
mactelnet в Homebrew Core нет, поэтому актуальный способ для macOS — собрать
клиент из исходников по инструкции проекта:
brew install gettext autoconf automake libtool openssl pkg-config
git clone https://github.com/haakonnessjoen/MAC-Telnet.git
cd MAC-Telnet
export GETTEXT_PATH="$(brew --prefix gettext)"
export OPENSSL_PATH="$(brew --prefix openssl)"
export PATH="${GETTEXT_PATH}/bin:${OPENSSL_PATH}/bin:${PATH}"
export LDFLAGS="-L${GETTEXT_PATH}/lib"
export CPPFLAGS="-I${GETTEXT_PATH}/include -I${OPENSSL_PATH}/include"
export CRYPTO_CFLAGS="-I${OPENSSL_PATH}/include"
export CRYPTO_LIBS="-L${OPENSSL_PATH}/lib ${OPENSSL_PATH}/lib/libcrypto.3.dylib"
./autogen.sh
make
sudo make install
Перед сборкой стоит свериться с разделом Mac OS X в актуальном README проекта: зависимости могут измениться.
Быстрый путь: находим роутер через MNDP
В MAC-Telnet уже встроен поиск соседей по фирменному MikroTik Neighbor Discovery Protocol. Отдельный LLDP-клиент для обычного подключения не требуется:
mactelnet -l
Команда покажет доступные устройства RouterOS в локальном L2-сегменте. Подключиться можно по найденному MAC или имени устройства:
mactelnet 64:d1:54:78:2e:68
# или
mactelnet gw.homenet
Клиент запросит логин и пароль и откроет обычную консоль RouterOS. Ни одного IP-адреса заранее знать не нужно.
Для RouterOS старше 6.43 используется современная EC-SRP-аутентификация. Если нужно подключиться к действительно старому устройству, как RouterOS 6.42 из исходной заметки, клиент поддерживает совместимый режим:
mactelnet -o 64:d1:54:78:2e:68
Когда нужен LLDP
MNDP быстрее приводит к консоли, но привязан к MikroTik. LLDP — стандартный протокол обнаружения соседей и полезен для диагностики смешанной сети. MikroTik может передать через него:
- MAC и имя устройства;
- модель и версию RouterOS;
- имя соседнего порта;
- management-IP и возможности устройства.
Установим актуальный lldpd из Homebrew:
brew install lldpd
sudo lldpd
sudo lldpcli show neighbors
Современный lldpd по умолчанию работает в режиме rx-and-tx. Если список пуст,
сначала проверьте правильный интерфейс и VLAN. Затем можно явно включить приём и
передачу на нужном порту — например, на проводном en0:
sudo lldpcli configure ports en0 lldp status rx-and-tx
sudo lldpcli update
sudo lldpcli show neighbors
В нашем случае сосед ответил так:
Interface: en0, via: LLDP
Chassis:
ChassisID: mac 64:d1:54:78:2e:68
SysName: gw.homenet
SysDescr: MikroTik RouterOS 6.42rc15 RB952Ui-5ac2nD
MgmtIP: 172.31.184.65
Port:
PortID: ifname br0
TTL: 120
Теперь видно не только адрес для MAC-Telnet, но и модель, версию RouterOS, порт и management-IP. Это удобно при обследовании объекта: ещё до входа в устройство понятно, что находится на другом конце кабеля.
Если сосед не находится
Проверяйте по порядку:
- Mac и MikroTik находятся в одном VLAN и одном L2-домене.
- Выбран проводной интерфейс, через который действительно подключён роутер.
- На RouterOS нужный интерфейс входит в
discover-interface-list. - MAC-Telnet разрешён на этом интерфейсе через
allowed-interface-list. - Коммутатор или точка доступа не фильтруют LLDP и широковещательные кадры.
Итог
Для быстрого входа достаточно двух команд: mactelnet -l, затем
mactelnet <имя или MAC>. LLDP добавляет диагностику и помогает в смешанных сетях,
где одного MNDP мало.
Связка не заменяет нормальный management-доступ через SSH или VPN, но хорошо закрывает момент первичной настройки и аварийную ситуацию, когда линк уже есть, а IP ещё нет.