Ограничение диапазона значений snmp не реализовано при выполнении snmp walk

Я выполнил обход SNMP для MIB ресурсов хоста.

Для получения более подробной информации о MIB ресурсов хоста, пожалуйста, обратитесь к этому

https://www.netscantools.com/snmp-host-resources-mib-analysis.html

Прогулка по snmp выполняется с помощью команды

snmpwalk -v 2c -c <community_string> <ip_address> 1.3.6.1.2.1.25.2.3

Здесь значение hrStorageRam

HOST-RESOURCES-MIB::hrStorageType.1 = OID: HOST-RESOURCES-TYPES::hrStorageRam

дал значение размера

HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 2677943624 с единицей распределения 1024 байта

При просмотре страницы RFC для этого MIB https://tools.ietf.org/html/rfc2790

Мы видим, что hrStorageType имеет тип Intger32 и имеет ограничение диапазона от -2147483648 до 2147483647.

Но почему проход по SNMP дает результат больше, чем это ограничение.

Хотел проверить, следует ли обход SNMP этому правилу RFC2790 или нет.


person rozi    schedule 10.12.2020    source источник
comment
snmpwalk возможно, не стоит проверять значение, возвращаемое агентами SNMP. В любом случае, неправильный результат дал агент SNMP, с которым вы тестировали, а не сам snmpwalk.   -  person Lex Li    schedule 10.12.2020
comment
@LexLi не является прогулкой по snmp, поддерживаемой netsnmp, и когда я просматривал там документацию, было значение ограничения для Integer32, как указано в RFC, у меня возникла ошибка значения ограничения в pysnmp по этой причине, и я не очень уверен, как действовать дальше Проблема в том, аналогично этому google.com/ есть ли у вас какие-либо комментарии по этому поводу?   -  person rozi    schedule 11.12.2020
comment
Вы тот, кто должен решать, подтверждать значение или нет. Если вы действительно хотите это проверить, то вы должны сделать больше, чем просто операцию SNMP WALK (которая представляет собой набор операций GET NEXT или GET BULK), но также потребовать, чтобы синтаксический анализатор документов MIB загружал все необходимые документы и извлекал ограничения. Вот почему pysnmp сообщает об ошибках (по мере их проверки), а некоторые другие инструменты — нет.   -  person Lex Li    schedule 11.12.2020


Ответы (1)


Правильный ответ: это зависит от того, какой SNMPWALK и какую версию вы используете. Везде есть баги.

Во-первых, агент должен возвращать правильное значение. Так что, если это не так, это ошибка.

Но даже если это не так, поскольку в SNMP предполагается, что устройства являются простыми, а приложение управления должно быть интеллектуальным и обрабатывать его правильно.

Во всяком случае, мне потребовалось 5 минут, чтобы проверить это с помощью MIMIC Simulator и версии NET-SNMP.

% snmpwalk -V
NET-SNMP version: 5.8

и он ведет себя правильно (например, с вашим точным значением):

% snmpwalk -v2c -c public 10.0.0.8 .1.3.6.1.2.1.25.2.3.1.5
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 0
HOST-RESOURCES-MIB::hrStorageSize.2 = INTEGER: 1150404
HOST-RESOURCES-MIB::hrStorageSize.3 = INTEGER: -1617023672
HOST-RESOURCES-MIB::hrStorageSize.4 = INTEGER: 7483
                                                                  
person Gambit Support    schedule 11.12.2020