невозможно получить ответ от порта snmp - PullRequest
0 голосов
/ 02 июля 2010

Iam использует snmp для доступа к данным удаленной системы. Но согласно требованию iam кодирует данные запроса snmp в формат пакета OAMPDU и отправляет их в удаленную систему. Удаленная система принимает пакет OAMPDU, декодирует его и отправляет запрос snmp snmp агент через UDP-сокет, который привязан к порту 161. но я не могу получить ответ от snmp agent.i создал сокет udp, который привязан к порту 161 для получения ответа.

если я использую любой другой свободный номер порта, кроме 161, для приема snmp агент не отправляет ответ на этот порт.

Может кто-нибудь подсказать, пожалуйста, как преодолеть эту проблему.

Можем ли мы настроить разные порты для tx, rx ???

Как мы узнаем, на какой порт snmp отправляет ответ ???

1 Ответ

2 голосов
/ 02 июля 2010

Каждый пакет UDP имеет порт источника и порт назначения.Менеджер SNMP отправляет запрос SNMP с использованием любого порта источника и порта назначения 161. Агент ответит на порт источника на диспетчере.Например:

Manager                                    Agent

source port: <random number>
dest port: 161
content: what is your sysUpTime 
                                           source port: 161
                                           destination port: <same random number>
                                           content: sysUpTime is 42 seconds

Ответы поступают на порт random number, а не на порт 161. Поэтому менеджер, прослушивающий порт 161, вряд ли получит много ответов.Вместо того чтобы прослушивать порт 161, прослушивайте тот же сокет, который вы использовали для отправки запроса.Этот сокет запомнит исходный порт, который он выбрал для отправки.

PS Когда вы используете SNMP для запроса, SNMP manager - это UDP client, а SNMP agent - это UDP server.

...