Информационный агент SNMP - PullRequest
1 голос
/ 06 июня 2011

У меня есть несколько вопросов:

В моей системе (например, Windows) есть много агентов расширения DLL, подключенных к службе snmp

Когда приходит запрос к службе snmp "Snmp.exe", он отправляет запрос всем агентам или только одному?

Как узнать, кто из них может ответить на запрос?

Спасибо

Ответы [ 2 ]

1 голос
/ 08 июня 2011

@ Уэс в порядке.Вот только дополнение.Как описано в « Как добавить агент расширения SNMP в реестр NT », расширение DLL можно найти в записях реестра, указанных в:

Windows Server NT4 для WindowsServer 2003 R2 (Workstatio, W2K, XP):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameter\ExtensionAgents

Начиная с Windows 2008 (Vista):

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SNMP\Parameters\ExtensionAgents

Каждая библиотека DLL предоставляет SnmpExtensionInit функцию, которая сообщает поддерживаемый вид как OID.

BOOL WINAPI SnmpExtensionInit (DWORD dwTimeZeroReference,
                               HANDLE *hPollForTrapEvent,
                               AsnObjectIdentifier *supportedView);

Я пишу программу-обертку, которая просто загружает DLL и вызывает функцию только для того, чтобы сообщить ответ, вы можете загрузить и попробовать slxSNMPInfo , если хотите.Извините, сайт на французском, но строки в файлах EXE на английском.

enter image description here

1 голос
/ 06 июня 2011

Основная задача агента - обрабатывать регистрации для SNMP, и каждая DLL регистрирует информацию, которую она может обслуживать.Информация в SNMP регистрируется в древовидной структуре, представленной OID.Агент достаточно умен, чтобы знать, какая DLL (или субагент) может обработать запрос на основе запрашиваемого входящего OID.

Вы можете рассмотреть чтение RFC2741 , которое описывает "АгентX "протокол.Хотя речь идет о протоколе, а не о DLL, основной принцип его работы должен быть довольно похожим.

...