Как меня озадачил мой домашний роутер от Mikrotik, и я его уговорил
Философское, выручавшее неоднократно: в IT не бывает чудес. Бывают незнание, непонимание или невнимательность.
TL;DR: во избежание сюрпризов отключайте STP на бридже, если не планируете пользоваться этой технологией.
Полигон
Роутером в моей домашней сети трудится RB951G-2HnD от Mikrotik. Вот нравятся мне их железки. Имел с ними дело по работе, получил в своё время сертификат. Заодно прикупил простенького труженника домой. Однако в описываемой ситуации загрешил я на него далеко не сразу.
Ситуация
Захотелось мне пощупать руками и мозгом технологию LoRa. Заказал ESP32 SX1276 Lora Development Board, ждать недели три. В качестве гейта купил wAP LR8 kit от того же Mikrotik. Получил, подключил, пытаюсь прицепиться. Winbox, Neighbors, ага, вижу по MAC, пытаюсь логиниться - облом, timeout. Отключаю-подключаю питание, удаётся зайти. Проверяю, получил ли IP по DHCP (умница, получил), включаю Lora-карточку, выхожу. И всё, зайти обратно не получается. Никак. Ни по MAC, ни по IP. Ни winbox, ни ssh, ни telnet, ни http, ни https. На краткий миг роутер появляется в Neighbors winbox-а. Зайти не позволяет. При этом всякий раз при перезагрузке успешно получает IP от роутера. Его MAC видят и роутер и рабочий комп. Не пускает. Кто ты, лошадь страшная?
Хождение по глюкам
Сканю порты. Ни одного открытого! Чёрт, он даже не пингуется!
Вспоминаю, что включал Lora-карточку. Может, он бракованый, и ему перестало хватать питания? Разбираю, отцепляю карточку. Не то. Сбрасываю догим удержаним кнопки, пытаюсь прицепиться netinstall-ом. Не даёт.
Бегаю из комнаты в комнату. Сбрасываю. Пытаюсь подключиться. Пытаюсь думать. Грешу на свич, подключаю один Mikrotik к другому напрямую. Задалбываюсь бегать из комнаты в комнату. Не работает. Откладываю до завтра.
На завтра первым делом решаю устранить суету. А то роутер и свич в одной комнате, рабочий комп - в другой, второго свича нет, зато есть сетевушка USB-Ethernet. Цепляю сетевушку к компу, wAP к сетевушке, и, о чудо, успешно логинюсь в железку winbox-ом.
Гвоздями приколачиваю сетевому интерфейсу IP из домашней сети за пределами пула DHCP, маршрут в мир и пару DNS. Возвращаю Lora-карточку. Всё работает. Несколько раз для очистки совести дёргаю питание. Работает. Обновляю RouterOS до 6.49.12 забросом внутрь железяки соответсвующего npk. Работает!
Возвращаю wAP в домашнюю сеть, и получаю ПОЧТИ такое же отказное поведение. Почти, потому что после перезагрузки эта железяка успевает ответить на два пинга, после чего уходит в отказ.
Caramba! Я уже видел подобное поведение! Полугодом раньше подключал в домашнюю сетку новый комп, и он ровно так же получал IP, пару раз пинговался, и переставал понимать сеть. Комп стоял рядом с роутером, и ситуация закрылась перетыканием пачкорда в другой порт, и смутным ощущением, что творится какая-то хрень.
Решение
То есть затор кроется в роутере? Да, но где именно? Запускаю бесконечный пинг на железяку, захожу на роутер. Размышляю. В прошлый раз помогла смена порта. Порты собраны в бридж. Посмотрим его настройки.
General. Ничего подозрительного.
STP. Protocol mode: MSTP.
Стоооп! Зачем? Каким местом думал, когда включал? Мама, мы дома, это домашняя сеть, а не провайдинг из весёлых нулевых. Ползание по чердакам с витухой осталось далеко в прошлом, зачем STP? Отключаю.
И через пару секунд начинает пинговаться wAP. Успешно логинюсь. Проблема закрыта.
Вывод
Нашли фишечку-настроечку? Поиграли? Не нужна? Закапывайте Отключайте.