- •Засоби аналізу та управління мережами методичні вказівки
- •1.1Основи роботи з PySnmp
- •1.2Керування архітектурою snmp
- •1.2.1PySnmp архітектура
- •1.3Стандартні snmp додатки (Синхронні додатки)
- •1.3.1Генератор синхронних команд
- •1.3.2Синхронний оригінатор повідомлень
- •1.4Стандартні snmp додатки (Асинхронні додатки)
- •1.4.1Асинхронний генератор команд
- •1.4.2Асинхронний оригінатор повідомлення
- •1.4.3Конфігурація безпеки
- •1.4.4Конфігурація транспортування
- •1.5.1Managed Objects імена і значення
- •1.5.2Managed Objects значення
- •1.6.1Модель даних для керованих об'єктів
- •1.7Приклад PySnmp скриптів
- •1.8NativeApi для стандартних додатків snmPv3
- •1.9Низький рівень api для операцій протоколу snmPv1/v2c
- •1.10Подальший розвиток
- •2.1Встановлення
- •2.2Використання
- •2.3Структура
- •3.1Основні особливості модуля:
- •3.2Елементи модуля
- •3.3Переваги і недоліки
- •4.1Особливості
- •4.2Опис “NetSnmp” модуля
- •4.3Використання Net-snmp і iPython
- •4.3.1Встановлення та налаштування Net-snmp
- •4.3.2Написання коду
- •4.4Переваги і недоліки
- •Засоби аналізу та управління мережами методичні вказівки
4.2Опис “NetSnmp” модуля
Надає повний набір функцій, для всіх версій SNMP (SNMPv3, SNMPv2c,
SNMPv1) клієнтів API. 'NetSNMP' модуль покладаєтья на
Net-SNMP інструментарій бібліотеки.
Підтримувані платформи:
Linux 2.x
Інші UNIX / POSIX варіанти (неперевірені)
MSWindows (неперевірені)
Опис роботи:
Основні операції SNMP протоколу, передбачених цим
Модулем здійснюютьсячерез об'єктно-орієнтований інтерфейс для модульності і простоти використання.
Основний клас netsnmp.Session який інкапсулює стійкі аспектіи зв'язку між керівництвом додатків і керованим агентом. Цей клас включає 'GET', 'GetNext', 'GetBulk', 'SET' та інші виклики методів.
Опис поля, які можуть бути визначені при створенні екземпляра
netsnmp.Session виконується наступним чином:
netsnmp.Session (<tag> = <value>, ...)
DestHos t– за умовчанням "локальний", імя комп'ютера або IPAddr з SNMP агента
Version–за умовчанням '3 ', [1, 2 (екв-2с), 3]
RemotePort – за умовчанням '161 ', дають можливість віддаленого порту UDP для перевизначення
Timeout – за замовчуванням '500000 ', мікро-секунд між спробами
Retries – за умовчанням '3 ', спроби до відмови
RetryNoSuch – за умовчанням 0 ", якщо включена NoSuch помилки в 'GET' блоках PDU,то UNDEF будуть повернуті для всіх varbinds NoSuch, коли встановленийв '0 'ця функція відключена і отримання запитів не працюватиме при будь-яких помилках NoSuch (стосується тільки v1)
UseLongNames – встановлено в не нульове має <tags> для ’GetNext’ методу
UseSprintValue – встановлено в не нульове значення, повертає значення
для 'Get' й 'GetNext' методів відформатований за бібліотеками
sprint_value функції. Це призводить до певних типів даних,які
повертаються в неканонічних форматах
UseEnums – встановлено в ненульове, повертає цілі значення, які конвертуються в перерахуванні ідентифікаторів якщо це можливо
Ці значення також будуть прийнятним, коли подається «Набір» операцій
UseNumeric – встановлено в ненульове значення,повертає <tags>,який повертається з 'GET' запиту
Установка UseLongNames значення для сесії рекомендується.
BestGuess – ця установка контролює як парситься<tags>.
ErrorStr – тільки для читання, проводить до повідомлення про помилку.
ErrorNum – тільки для читання, зберігає snmp_err чи статус останнього запиту
ErrorInd – тільки для читання, проводить при необхідності snmp_err_index
SNMPv1/SNMPv2c варіанти:
Режим доступу – за умовчанням "public",
SNMPv3 Опції:
SecName – за умовчанням 'initial', ім'я безпеки (v3)
SecLevel – за умовчанням 'noAuthNoPriv', рівень безпеки [noAuthNoPriv,
authNoPriv, AuthPriv] (v3)
ContextEngineId – <SecEngineId> замовчуванням, контекст engineID, буде
досліджуватись якщо не він не ввійде в комплект (v3)
Context – за умовчанням'', ім'я контексту (v3)
SNMPv3 з TLS або DTLS варіантами:
OurIdentity – ім'я файлу для місцевого X.509 сертифіката для нашої ідентичності.
Запустити NET-SNMP-CERT для створення і управління сертифікатами.
TheirIdentity – ім'я файлу для місцевого X.509 сертифіката для використання їх ідентичності.
TrustCert – довірений сертифікат, який використовується для перевірки
сертифікатів. Як правило CA сертифікат.
TheirHostname – ім'я хоста.Або "TheirIdentity"або довірений сертифікат плюс ім'я хоста, необхіднодля перевірки автентичності сервера.
SNMPv3 з USM опції безпеки:
SecEngineId – <none> замовчуванням, безпека engineID,
AuthProto – за умовчанням 'MD5', протокол аутентифікації [MD5, SHA] (v3)
AuthPass – <none> замовчуванням, аутентифікація пароля
PrivProto – за умовчанням "DES", протокол конфіденційності [DES] (v3)
PrivPass – за умовчанням <none>, недоторканність фраз (v3)
Приватні поля:
sess_ptr – внутрішнє поле, використовується для кешування структури створеної сесії
Mетоди:
get (<netsnmp.VarList Object>)
повинні бути представлені SNMP GET netsnmp.VarList об'єкти,
повертає кортеж значень для кожного VarBind в списку
GetNext (<netsnmp.VarList Object>)
повинні бути забезпечені SNMP GETNEXT, netsnmp.VarList об'єкти.
Повертає отримане значення, список змінних переданих в якості аргументів
оновлюються, щоб отримати список наступного лексикографічного
VarBind об'єкта.
Повертає кортеж значень для кожногоVarBind в списку.
set (<netsnmp.VarListObject>)
Повинні бути забезпечені SNMPSET, об'єкт netsnmp.VarList
Значення в усіх Varbinds повинні бути в канонічному форматі (тобто добре відомі формат), щоб забезпечити однозначний переклад SNMPMIB значеннь даних.
Повертає true в разі успіху або None у разі помилки.
GetBulk (<non-repeaters>, <max-repeaters>, <netsnmp.VarList Object>)
Повинні бути забезпечені SNMP GETBULK, netsnmp.VarList об'єкти
наступного примірник вибирається для перших
N Varbinds в списку, як це визначено <non-repeaters>.
Для решти Varbinds, наступні M лексик витягуються з решти Varbinds, де M<max-repeaters>.
walk (<netsnmp.VarListObject>)
Виконує декілька запитів GETNEXT для того, щоб повернути кортеж значень витягнутих з MIB
Прийнятні формати змінних:
netsnmp.VarList: – являє собою список VarBind об'єктsd, щоб отримати або встановити.
приймає аргументи і невизначену кількість Varbinds,або кортежів, які будуть перетворені в Varbinds.
netsnmp.Varbind: – являє собою єдиний об'єкт MIB для отримання або установки реалізовані як Python [<tag>, <iid>, <val>, <type>].
<tag> – однієї з наступних форм:
1) лист ідентифікатор (наприклад, «sysDescr ') має бути унікальний для практичних цілей
2) повний ідентифікатор (наприклад, '. Iso.org.dod.internet.mgmt.mib-2.system.sysDescr')
3) повний, десятковий, числовий OID
(Наприклад, ".1.3.6.1.2.1.1.1)
<iid> – десятковий, ідентифікатор екземпляра. Для скалярних об'єктів MIB використовувати '0 '
<val> – SNMP значення даних, отриманих з, або створюваних
до MIB агентів. Формат набору для операцій <val> повинен бути канонічним для забезпечення однозначного перекладу.
Канонічні форми:
OBJECTID => десятковий (наприклад, .1.3.6.1.2.1.1.1)
OCTETSTR => скалярні октети,
INTEGER=> десяткове цілечисло(або перерахування),
NETADDR => десяткове,
IPADDR => десяткове,
COUNTER=> десяткове ціле число без знаку,
COUNTER64 => десяткове ціле число без знаку,
GAUGE, => десяткове ціле число без знаку,
UINTEGER => десяткове ціле число без знаку,
TICKS, => десяткове ціле число без знаку,
OPAQUE =>скалярні октети,
NULL => скалярне що не містять нічого,
<type> – SNMP типу даних ,це полевикористовується для ‘Get’ й ‘GetNext’ операцій. Удеяких випадках програмісту потрібно заповнити це полепри переході до 'set'операції. Цеполя не обовязково надавати, коли атрибут<tag> вже описаний вMIB. Для ‘set’, якщо числове OID використовується і об'єкт не знаходиться в MIB,<type> поле повинно подаватися
‘NetSNMP’ Python змінні і функції:
netsnmp.verbose – за умовчанням 0 ",контролює попередження / інформування при виході themodule
0 => вихід,
1 => дозволяє попередження / інформування
$ SNMP :: налагодження - за замовчуванням 0 ", контролює вихідний рівень налагодження
в SNMP модуля і libsnmp
1 => дозволяє SNMP ::verbose
2 => 1 рівеньплюсsnmp_set_do_debugging,
3 => 2рівеньплюс snmp_set_dump_packet
$ SNMP :: dump_packet - за умовчанням 0 ", встановіть [без] нуля для самостійного встановлення
snmp_set_dump_packet ()
Експортовані функції ‘NetSNMP’ пакету :
snmpget (<Varbind/VarList>, <session args>)
Бере аргументи з netsnmp.Session з відповідного методу netsnmp.Session. Повертає кортеж зVarBind значень.
snmpgetnext (<Varbind/VarList>, <session args>)
Бере аргументи з netsnmp.Session з відповідного методу netsnmp.Session. Повертає кортеж зVarBind значення
snmpgetbulk (nonrepeaters, maxrepetitions, <VarList>, <session args>)
Бере аргументи з netsnmp.з відповідного методу netsnmp.Session. Повертає кортеж з VarBind значення, і оновленими VarList
snmpset (<Varbind/VarList>, <session args>)
Бере аргументи з netsnmp.Session з відповідного методу netsnmp.Session. Повертає True в разі успіху, в іншому випадку False.
snmpwalk (<Varbind/VarList>, <session args>))
Бере аргументи з netsnmp.Session з відповідного VarBind або VarList, з яких операції 'walk' почнеться. Повертає кортеж значень, витягнутих з MIB
Переданий VarList буде оновлюватися, щоб утримувати повний набір VarBinds створений за результатами операції 'walk'.
