Протокол SNMP в POSIX-операционных системах.

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение Olej » 16 янв 2013, 02:33

SimpleUser писал(а): Начало одного из файлов:
...
похоже на какой-то скрипт для сборки. Половина файлов с "+" примерно такие, есть и из 1-2 строк.
Это я не знаю.
Это вы разбирайтесь, что за файлы и на что оно "похоже" ;-)

SimpleUser
Писатель
Сообщения: 69
Зарегистрирован: 02 авг 2012, 14:22
Откуда: Москва
Контактная информация:

Re: Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение SimpleUser » 16 янв 2013, 15:13

В snmpd.conf есть следующие строки по поводу снятия ограничения доступа:
snmpd.conf.png
snmpd.conf.png (51.15 КБ) 7648 просмотров
Вот интересно что имеется ввиду под "своим собственным COMMUNITY"? Я должен создать себе какое-то community, отличное от public? Не представляю насколько это возможно. Или может опция com2sec создаёт это community c произвольным именем?
Также непонятно по имени своей сети NETWORK. Не сталкивался с именами сетей. В какой команде его искать(ifconfig, ip)? Что его задаёт?

P.S. Извиняюсь если не посмотрел дальше, вопросы возникают по ходу изучения вашего материала и копания в Линуксе. Обязательно изучу.
Последний раз редактировалось SimpleUser 16 янв 2013, 16:31, всего редактировалось 2 раза.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение Olej » 16 янв 2013, 16:11

SimpleUser писал(а):В snmpd.conf есть следующие строки по поводу снятия ограничения доступа:
Там их много больше.
Вот ещё:

Код: Выделить всё

view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1
view    systemview    included   .1.3.6.1.4.1.8072.2
SimpleUser писал(а): Вот интересно что имеется ввиду под "своим собственным COMMUNITY"? Я должен создать себе какое-то community, отличное от public? Не представляю насколько это возможно. Или может опция com2sec создаёт это community c произвольным именем?
Именно создать с произвольным именем ... или расширить права public (но расширять права public или private не рекомендуют - они общеизвестные).
SimpleUser писал(а): Также непонятно по имени своей сети NETWORK. Не сталкивался с именами сетей. В какой команде его искать(ifconfig, ip)? Что его задаёт?
NETWORK - это IP подсети, например 192.168.2.0/24

В том тексте с примерами, что я для вас писал и поместил - есть работающие .conf, с изменениями, дополнениями и т.д. - нужно только взять и посмотреть! Вот минимальный фрагмент оттуда:

Код: Выделить всё

##       sec.name  source          community
com2sec local     localhost        olej
com2sec mynetwork 192.168.1.0/24   olej

##     group.name sec.model  sec.name
group MyRWGroup  v1        local
group MyRWGroup  v2c       local
group MyROGroup  v1        mynetwork
group MyROGroup  v2c       mynetwork

##           incl/excl subtree                          mask
view all    included  .1                               ff.ff.ff

##               context sec.model sec.level prefix  read   write  notif
access MyROGroup ""      any       noauth    exact    all    none   none
access MyRWGroup ""      any       noauth    exact    all    all    all
Там очень намудрёное конфигурирование доступа (и оно оправдано!).
Но разбирайтесь с ним сами - это не дело форума обсуждать вопросы техдокументации.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение Olej » 16 янв 2013, 18:36

SimpleUser писал(а):Во всей группе udp, впрочем, тоже все oid группы почему-то не инициализированы. То же касается и других групп дерева snmp, а группа at(1.3.6.1.2.1.3), в oid которой(mib atNetAddress) я хотел найти ip-адрес сетевого интерфейса, вообще больше не существует:
nummibs.png
Неужели кроме группы system никакие oid не установлены? А я могу их установить программно и какой-либо утилитой?
И ещё ... забыл.
Вовсе не все (или далеко не все) OID, которые вы вычитаете в каких-то MIB-файлах - существуют реально в теле программы агента (snmpd в простейшем случае). Т.е. они просто не существуют, не поддерживаются.

MIB-файлы + утилита snmptranslate имеют дело только с описаниями OID. Утилита snmptranslate всего лишь читает MIB-файлы - она ничего не знает вообще о реально существующих агентах SNMP, вы можете её запускать в отсутствие демона snmpd - она так же тупо прочитает вам MIB-файлы, подсуньте ей свои фиктивные MIB-файлы - она прочитает их, подмените в этих файлах международно определённые OID (чего делать нельзя!) - она тупо прочитает и это. Это делается только для удобства чтения OID человеком.

Утилиты snmpget, snmwalk, snmpset (ну и snmtrap и snmpinfo) - напротив, посылают запрос к реально работающему SNMP-агенту, они не знают ни о каких MIB-переменных, работают только с числовыми OID. Если SNMP-агент не запущен (служба snmpd не стартовала), то они получат ошибку по тайм-ауту:

Код: Выделить всё

bash-4.2$ snmpget -v2c localhost -cpublic .1.3.6.1.2.1.7.1.0
Timeout: No Response from localhost.

Но если SNMP-агент не обслуживает OID (он его не знает, в его теле нет кода обработки для этого OID), то он и возвращает этот ответ:

Код: Выделить всё

bash-4.2$ snmpget -v2c localhost -cpublic .1.3.6.1.2.1.7.1.0
UDP-MIB::udpInDatagrams.0 = No Such Object available on this agent at this OID
SimpleUser писал(а):А я могу их установить программно и какой-либо утилитой?
Нет, конечно! ;-)
Как вы могли бы присвоить значение переменной в программе, в которой такой переменной не существует?
Существуют только те OID, которые скомпилированы в код текущего выполняющегося SNMP-агента (иначе они просто не размещены в физической памяти ... как можно изменить то, чего нет в памяти?).
Хотите другие OID - перекомпилируйте агента. ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение Olej » 16 янв 2013, 18:44

Olej писал(а):
SimpleUser писал(а):А я могу их установить программно и какой-либо утилитой?
Нет, конечно! ;-)
Как вы могли бы присвоить значение переменной в программе, в которой такой переменной не существует?
Существуют только те OID, которые скомпилированы в код текущего выполняющегося SNMP-агента.
Хотите другие OID - перекомпилируйте агента. ;-)
Как узнать какие OID реально существуют (поддерживаются текущим агентом SNMP, физически размещены в его памяти)?
Вот так:

Код: Выделить всё

bash-4.2$ snmpwalk -v2c localhost -cpublic .1.3.6.1.2
SNMPv2-MIB::sysDescr.0 = STRING: Linux notebook 3.5.2-1.fc17.i686.PAE #1 SMP Wed Aug 15 16:30:14 UTC 2012 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2580) 0:00:25.80
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: notebook
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (39) 0:00:00.39
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance
SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering.
SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (39) 0:00:00.39
SNMPv2-MIB::sysORUpTime.10 = Timeticks: (39) 0:00:00.39
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (1323832) 3:40:38.32
HOST-RESOURCES-MIB::hrSystemUptime.0 = No more variables left in this MIB View (It is past the end of the MIB tree)

SimpleUser
Писатель
Сообщения: 69
Зарегистрирован: 02 авг 2012, 14:22
Откуда: Москва
Контактная информация:

Re: Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение SimpleUser » 12 фев 2013, 17:06

Добрый день Olej, coбрал по вашим указаниям свой субагент, правда на запрос сurrentValue из cli_snmp он выдаёт мусор(( Хотел разобраться в своей конфигурации snmp, и сразу ждал неприятный сюрприз:

Код: Выделить всё

#snmpd -f -Le -d
error on subcontainer 'ia_addr' insert(-1)
Дальше зависает, и примерно каждые 30 сек. в терминал и лог выдаёт ту же строчку

Код: Выделить всё

error on subcontainer 'ia_addr' insert(-1)
Помогает только Ctrl-Z, snmpd при этом остаётся запущенным, но на любой запрос получаю:
Timeout:No Response from loсalhost

Помогает только перезапуск snmpd без параметров -- начинает штатно работать.
Долго гуглил, разброс ответов от "запретить трансляцию IPv6 адресов в конфиге ifconfig" до копания в различных snmp-конфигах(всё время разных :-o ). Вообще насколько сушествена эта неполадка?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение Olej » 12 фев 2013, 17:14

SimpleUser писал(а):Вообще насколько сушествена эта неполадка?
Не знаю, такого не видел.

SimpleUser
Писатель
Сообщения: 69
Зарегистрирован: 02 авг 2012, 14:22
Откуда: Москва
Контактная информация:

Re: Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение SimpleUser » 13 фев 2013, 23:11

Не даёт покоя snmpd.conf, вот в этом месте можно ли ещё какие-нибудь community указать, кроме public и private?
snmpd.conf.png
snmpd.conf.png (51.15 КБ) 7589 просмотров
И надо ли ещё где их регистрировать/прописывать? По поиску "snmp" нашлось ещё с десяток различных конфиг-файлов неясного назначения, вроде EXAMPLE.conf в директории net-snmp-5.7.1, непонятно для какого файла он example . А зачем нужен почти пустой snmp.conf? Есть ли ещё какие-нибудь общеизвестные конфиг-файлы snmp кроме snmpd.conf, snmpdtrap.conf?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение Olej » 14 фев 2013, 02:09

SimpleUser писал(а):Не даёт покоя snmpd.conf, вот в этом месте можно ли ещё какие-нибудь community указать, кроме public и private?

Можно. Любое. И много разных. На то оно в конфиге и есть (в примерах, которые я вам прикреплял, всё это есть).
SimpleUser писал(а): И надо ли ещё где их регистрировать/прописывать?
snmpd.conf достаточно.
SimpleUser писал(а):А зачем нужен почти пустой snmp.conf? Есть ли ещё какие-нибудь общеизвестные конфиг-файлы snmp кроме snmpd.conf, snmpdtrap.conf?
Этих вам достаточно.
Всё есть в документации, в огромном описании:

Код: Выделить всё

bash-4.2$ man snmpd.conf
SNMPD.CONF(5)                             Net-SNMP                            SNMPD.CONF(5)

NAME
       snmpd.conf - configuration file for the Net-SNMP SNMP agent
...
SEE ALSO
       snmpconf(1), snmpusm(1), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, netsnmp_config_api(3).
+ ещё вам 7 man-ов перечисленных в конце...

Не буду же я вам в форуме пересказывать на пальцах то, что всё написано в документации?
Читайте.

SimpleUser
Писатель
Сообщения: 69
Зарегистрирован: 02 авг 2012, 14:22
Откуда: Москва
Контактная информация:

Протокол SNMP в POSIX-операционных системах.

Непрочитанное сообщение SimpleUser » 15 фев 2013, 15:33

SimpleUser писал(а):Добрый день Olej, coбрал по вашим указаниям свой субагент, правда на запрос сurrentValue из cli_snmp он выдаёт мусор(( Хотел разобраться в своей конфигурации snmp, и сразу ждал неприятный сюрприз:

Код: Выделить всё

#snmpd -f -Le -d
error on subcontainer 'ia_addr' insert(-1)
Дальше зависает, и примерно каждые 30 сек. в терминал и лог выдаёт ту же строчку

Код: Выделить всё

error on subcontainer 'ia_addr' insert(-1)
Помогает только Ctrl-Z, snmpd при этом остаётся запущенным, но на любой запрос получаю:
Timeout:No Response from loсalhost

Помогает только перезапуск snmpd без параметров -- начинает штатно работать.
Долго гуглил, разброс ответов от "запретить трансляцию IPv6 адресов в конфиге ifconfig" до копания в различных snmp-конфигах(всё время разных :-o ). Вообще насколько сушествена эта неполадка?
Понял, что это слишком оптимистичное заявление по поводу штатной работы snmpd. Залезал в лог, оказалось это его постоянная ошибка:
snmpd.log02-13.png
snmpd.log02-13.png (40.41 КБ) 7580 просмотров
Но на запросы отвечает, только лог со временем сильно разбухает.
Строка 58 в snmpd.conf это:

Код: Выделить всё

view    systemview    included   .1.3.6.1.4.1.8072.2
Это тем более удивительно, поскольку:
Изображение

Строка 92:

Код: Выделить всё

view all    included  .1                               ff.ff.ff
Интересно чем ему такая маска не нравится?
Вложения
ExamplesSnmp.png
(10.59 КБ) 6027 скачиваний

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей