Invalid protocol version 5

Привет!
При попытке запиндюрить на Москиту сторонний девайс, получаю следующее в логах:
694882575: New connection from 192.168.10.28 on port 1883.
1694882575: Invalid protocol version 5 in CONNECT from 192.168.10.28.
1694882575: Socket error on client , disconnecting.
1694882635: New connection from 192.168.10.28 on port 1883.
1694882635: Invalid protocol version 5 in CONNECT from 192.168.10.28.
1694882635: Socket error on client , disconnecting.
Что это было? И как жить с этим?

К сожалению мало информации, и я не понял что конкретно вы делаете, что ожидаете получить и что получаете. Опишите вашу проблему подробнее по инструкции. И я постараюсь помочь.

Имеем:

#### Batch No

7.2.1B 577

#### DTS Version

#### HW Revision

7.2.1

#### Manufacturing Date

2022-02-10 11:11:05+00:00

#### Release name

wb-2207

#### Release suite

stable

#### Short SN

AW4DLQBM

#### Temperature Grade

industrial

И BAS-IP AV-01MD - вызывная панель.
Подключены по сети Ethernet, рассвичеванной, в одном VLan, связность есть, потерь нет, задержки на уровне погрешности. Фильтрации трафика внутри влана нет.

Первый, согласно документации, содержит в себе MQTT брокер. Вторая, согласно документации, умеет лезть на указанный брокер с логином = серийный номер и там пастись на топиках, которые указаны в документации к панели.

Указав в настройках панели WB в качестве брокера, я ожидаю увидеть с помощью MQTT-эксплорера некое взаимодействие упомянутых субстанций. Справедливости ради надо отметить, что с этим экземпляром WB по MQTT успешно взаимодействуют два сервера Zoneminder и некоторое количество китайского железа.

В действительности же никакой взаимности не происходит. Вызывная панель (показания Wireshark) честно ломится на брокер, пытаясь сообщить свой серийный номер, модель, статус и ещё много интересного (с ёё точки зрения). В брокере же ничего, относящегося к данному подписчику не происходит. Горестное рассматривание логов Москиты показывает картину, с которой я начал. То есть якобы Москиту не устраивает версия протокола…

Воспроизвести безусловно можно. Это прям каждый раз происходит. Могу пропилить вам канал к вайрену (на нем же можно посмотреть в TCPDUMP), могу прислать панель с яндекс-доставкой.

Вот. Доклад закончил.

Да, весьма похоже. Все, что до этого подключал к контроллру (и всяческие tasmota, и nspanel и просто HA) - оно работало.
На всякий случай, в релизах ПО 2304 и новее - вторая, актуальная версия mosquitto. Советую, для проверки, сделать стенд, поставив на виртуалку брокер, так: MQTT в контроллерах Wiren Board — Wiren Board
и попробовать подключиться к нему. Видел пару ишью года 19-20 про некорректную обработку 5 протокола в старой.
Если на стенде заработает - просто обновить ПО контроллера до актуального, 2307.

1 Like

Да, видел на гитхабе тему 20го года. Спасибо, ща попробую на другом брокере. Отпишусь.

У, шаман… Так и есть. Актуальный Москито всё принял.
Придётся обновляться :frowning:

1 Like

Зам вождя по прочим вопросам, да! :innocent:

1 Like

а нет… не решен… версия Москиты теперь актуальная, а вот дела пошли ещё хуже… Теперь устройство, которое лезет с логином и паролем посылается в даль. Хотя на такой же Моските вне Вайрена всё норм, оно принимается и создаёт нужный топик. Конфиги Москиты боюсь терзать, чтоб не развалить весь Вайрен вообще…

mosquitto_sub с тем же логином и паролем - для проверки.

В общем, тупо без пароля - Ок.
А вот если пароль не нужен, но устройство -таки лезет со своим пользователем - “не авторизовано, идите в Ж…”

… а раньше прокатывало!
и не все устройства умеют лезть без пользователя…

Вот. Хочу, как раньше…

В mosquitto 2+ изменен ACL - так что если устройство передает авторизацию - нужно его создать, в любом случае, даже если для соответствующего listner указано

allow_anonymous true

Решилось переносом прослушиваемых портов в mosquitto.conf
Как только утаскиваю в 10listeners.conf начинается неприятие внешних подключений не смотря на allow_anonymous true. Наверное, надо подробно заучивать мануал по mosquitto…

Довольно интересно, но - содержимое конфигов из conf.d точно просто инклюдится.

Осознаю, но такова жизнь :slight_smile:

В общем, при переезде стихов про листенеров в mosquitto.conf, полегчало с ACL. Тут задача принимать устройства, которые ломятся с логином из своего серийника, а потом устраивать с ними пляски по авторизации через jwt. Ну и естественно, не хотелось бы начинать с того, чтобы прописывать в acl серийный номер…
Вообще, раз уж всё прям через ГУЙ, то и управление Москитто надо в туда внести наверное… Это предохранит от лишнего рукосуйства как минимум :slight_smile:

Оно есть в планах, но в очереди. Где-то в конце очереди… Два года назад и сеть из веб-интерфейса не управлялась, а год назад - и модем только из консоли настраивался.
В общем на днях столкнлся с контроллером на ПО трехлетней давности, получил впечатление. Когда ежедневно используешь - изменений и не ощущаешь. :slight_smile:

1 Like

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.