SNMP обычно передается по UDP, поэтому на самом деле нет «соединения», и технически говоря, порт источника не имеет значения. Вы можете просто отправлять дейтаграммы (например, прерывания) без привязки к порту.
Однако даже при работе по UDP SNMP предполагает двустороннюю связь. Если вы ожидаете ответа (что делает клиент, если он отправляет запрос SNMP Get или Set), единственное место, которое другой конец знает, чтобы отправить его, - это то, откуда пришел запрос, то есть исходная комбинация IP / порт. В пакете SNMP отсутствует информация, предоставляющая какую-либо альтернативную информацию «обратного адреса».
Итак, чтобы получить ответ на предсказуемый порт, вы отправите датаграмму запроса из bound сокета. Обычно клиент запускает свой собственный прослушивающий «сервер» на порту 162, отправляет запросы оттуда, , а затем он также может получать ответы там . В противном случае вы не увидите ответы. Это также позволяет нам устанавливать простые правила брандмауэра (хотя вы часто можете обходиться без правил брандмауэра для обратного пути из-за пробивки отверстий *).
Это также верно для сервера, который отправляет прерывания и сообщает об известном стандартном предсказуемом порту не только для того, чтобы вы могли надежно настроить приемник прерываний и брандмауэры, но и для того, чтобы ответные ответы можно было отправлять обратно. на известный стандартный предсказуемый порт, который вы слушаете.
tl; dr: Вы можете отправлять запросы с произвольного порта, если хотите, но это не очень полезно.
* Моя реализация SNMP казалась ошибочной, когда клиент / получатель видел только прерывания, генерируемые в течение ~ 15 минут после того, как он в последний раз выдал какой-то пакет запроса. Последующие ловушки, казалось, полностью отсутствовали. После большой отладки на стороне сервера выяснилось, что мы забыли открыть правильный порт на входящем брандмауэре для клиента и случайно использовали дырокол, который имеет ограничение по времени. : D
Что касается того, почему Wireshark видит трафик от ненастроенного клиента SNMP, то либо ваш клиент SNMP действительно настроен на отправку запросов, либо вы неверно интерпретируете результаты. Wireshark не изобретает трафик. Без более полного представления о вашей сетевой настройке, настройке программного обеспечения и тех пакетах, которые вы видите, мы можем только догадываться о точной причине вашей путаницы.