Постоянные ошибки SNMP

Здравствуйте.
Получаю от роутера Mikrotik по SNMP два значения (температуру и напряжение). Все работает нормально, но достаточно часто появляются ошибки:

ERROR: failed to poll snmp_192.168.12.254_public:voltage: Request ID mismatch

Снял debug лог от wb-mqtt-snmp и отснифил трафик. Судя по всему, проблемы на самом деле нет, и в запросе и в ответе Request ID одинаковый, а wb-mqtt-snmp иногда не правильно интерпретирует request_id.
Обратил внимание, что когда возникает ошибка значения Request ID отличаются таким образом:

FFA0CB0AB0
A0CB0AB0

Вот кусок лога и трафик, время в файлах не совпадает (в логе 10:16:54, в дампе 10:15:44)
snmp.pcapng (38,9 КБ)
snmp.log (17,9 КБ)

Добрый день.
Тут думаю, дело в том что где-то используется знаковая переменная.

Jul 04 10:16:54 wirenboard-A2UXTTRD wb-mqtt-snmp[8233]: 2024/07/04 10:16:54 [DEBUG] packet.go:128 (github.com/wirenboard/gosnmp.Unmarshal) Parsed Request ID: -1597306192
Jul 04 10:16:54 wirenboard-A2UXTTRD wb-mqtt-snmp[8233]: 2024/07/04 10:16:54 [DEBUG] packet.go:153 (github.com/wirenboard/gosnmp.Unmarshal) Request ID: 2697661104 Error: 0 Error Index: 0

Парсится как отрицательное значение.
А какая версия wb-mqtt-snmp?

1.2.8

Актуальный, оформлю багу.

Исправление доступно в тестинге, wb-mqtt-snmp 1.3.0.

1 лайк

Здравствуйте.
Сейчас стоит wb-mqtt-snmp 1.3.3, но ошибки все равно есть:

wb-mqtt-snmp[4282]: ERROR: failed to poll snmp_192.168.12.254_public:temperature: Request ID mismatch: 1031241699 != 151864998
wb-mqtt-snmp[4282]: ERROR: failed to poll snmp_192.168.12.254_public:voltage: Request ID mismatch: 151864998 != 1031241699

snmp.log (48,5 КБ)

Добрый день.
Тут я ошибок не вижу. Рекомендую сделать дамп трафика и проверить, если ответ действительно преходит не с тем номером - то дело не в нашем сервисе.

В том-то и дело, что запросы-ответы с одинаковым ID

Sep 18 10:32:33 wirenboard-ASRVOJ5N wb-mqtt-snmp[1369675]: ERROR: failed to poll snmp_192.168.12.254_public:temperature: Request ID mismatch: 404145419 != 1057311699
Sep 18 10:32:33 wirenboard-ASRVOJ5N wb-mqtt-snmp[1369675]: ERROR: failed to poll snmp_192.168.12.254_public:voltage: Request ID mismatch: 1057311699 != 404145419

smtp.pcap (5,5 КБ)

Какой микротик? Как настроен конфиг wb-mqtt-snmp?
Попробую воспроизвести, поскольку пока не удается получить такие же ошибки.

RB4011iGS+ fw7.13.4
Но, в целом, какая разница, если видно, что в пакетах все хорошо?
Почему wb-mqtt-snmp в дебаг-лог не отдает запись в момент запроса с указанным ID? Или я чего-то не вижу? Я вижу только сообщения с ID принятого ответа.

{
    "debug": false,
    "devices": [
        {
            "address": "192.168.12.254",
            "name": "CoreGW",
            "community": "public",
            "oid_prefix": "SNMPv2-MIB",
            "channels": [
                {
                    "name": "temperature",
                    "oid": ".1.3.6.1.4.1.14988.1.1.3.100.1.3.14",
                    "poll_interval": 10000
                },
                {
                    "name": "voltage",
                    "oid": ".1.3.6.1.4.1.14988.1.1.3.100.1.3.13",
                    "poll_interval": 10000,
                    "scale": 0.1
                }
            ]
        }
    ]
}