Re: A manager using a single socket and multiple agents?

Craig Small <[email protected]>
Newsgroups gmane.network.net-snmp.devel
Message-ID <CALy8Cw6B5G+rDfqw3qsF0a-BotR8RfYijHWX++2nxUHUTz=hOQ@mail.gmail.com>
Actually the snmplibrary already has a way of binding the ports.

In my $HOME/.snmp/snmp.conf I just add this:

[asyncapp]
#doDebugging 1
clientaddr 10.0.0.1:12345
clientaddrUsesPort yes

asyncapp is the name of my program. I have bound outbound connections with
a source port of 12345 on interface 127.0.0.1 (for testing)
10.0.0.1 is the local IP address of the computer that's sending the request.

Wireshark shows this:
User Datagram Protocol, Src Port: 12345, Dst Port: 161







On Thu, 7 Jan 2021 at 15:03, Ed Fair <[email protected]> wrote:

> Craig,
>
> The tutorials don't mention subsessions or traditional vs single session
> use, but the header/c files do (and that's all they do - mention them).
> I'm just curious what these abstractions are for since they seem, on the
> surface, related to my needs.
>
> As an exercise, I've tried but so far been unable to create a
> session/socket which uses a specific port - no errors, but no pdus/packets
> transmitted.  And anyway, I don't care if the port selected is random, my
> goal is to use *the same* port to query multiple agents.  I don't care how
> it's done, as long as the end result is "all outbound UDP use same SRC
> port".
>
>
> On Wed, Jan 6, 2021, 5:28 AM Craig Small <[email protected]> wrote:
>
>> On Wed, 6 Jan 2021 at 10:01, Ed Fair <[email protected]> wrote:
>>
>>> Thanks for the reply.  The Simple_Async_Application in your link uses
>>> one session/socket/SRC port per agent.  I've compiled and run this sample
>>> successfully, but I haven't been able to modify it to use a single
>>> session/socket/SRC port.
>>>
>> It might need to be something more low-level as reusing sockets
>> (therefore the ports) is generally a bad idea.
>>
>> The netsnmp_session has an attribute of local_port. If this is set to
>> zero (the default) then it picks it randomly. I'd try setting that and see
>> what happens. A quick look in the snmplib source code shows it is used for
>> creating the transport.
>>
>> I understand "don't hammer agents" but I don't understand your "one query
>>> per agent" limit - is this a limitation of the API?
>>>
>> Not at all, a lot of agents are terrible and do stupid things like have
>> exclusive locks on important components of the system. I've killed many
>> devices (the remote agents, not my code) by being too enthusiastic about
>> querying them.
>>
>>
>>> I'm new to this API, I might be missing key concepts... but I am
>>> confused by the "traditional vs single" distinction, and I'm curious what
>>> "subsessions" are.
>>>
>> Are either of those mentioned in the tutorial? They could mean multiple
>> things but was trying to find the context of what you are asking here.
>>
>>  - Craig
>>
>

_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.