I asked this on NET-SNMP mailing list:


But unfortunatelly I haven't got any answer up to now.

I need to forward SNMP requests (not traps) from the outside world down to a number of nodes in a subnetwork.

Those nodes aren't directly reachable from the outside, but, instead, they are seen as a single network address (IP) and have different table instances in their OID's. The request is catch by a single node (a "proxy") that knows about the subnetwork configuration and is ought to repass it accordingly.

Is it possible to configure snmpd.conf so that snmpd can forward requests without having to implement a custom agent that checks the index, repacks the PDU's and manually sync's it to the target nodes?

NOTE: My MIB has several tables, all of them indexed by the same index and I need to be able to forward all of the requests based on the given index.

Really thanks.

  • Can you give an example of a snmp-request that comes in, what you expect to forward and how to send back the answer? – Nils Feb 1 '12 at 21:37
  • Using the snippet given in net-snmp forum, I could issue a GET on elementFeature1 for node 3 with OID The agent must forward the request internally after retrieving the internal node IP address (using a getNodeIP( 3 ) function that is available on the "gateway" node). The request is sent from outside to the gateway on IP, and forwarded to the node on in the masked network. Is this what you expected as an example? – j4x Feb 1 '12 at 22:32
  • I think I understand that you do not want to modify the SNMP-request - just "forward" it. How should the gateway know what the supposed target-node is (where does that information come from - seen from the gateways point of view)? – Nils Feb 2 '12 at 21:30
  • The target node is located from a local function, getNodeIP( node_index ), in my example. The gateway node knows about the internal IPs and can get this information based on the OID index sent. This gateway must keep the topology invisible to the outside, answering as a single device with multiple "features". – j4x Feb 2 '12 at 22:35

I am starting to think that ipvsadm might be used for your purposes.

Look at the LVS-NAT approach. Basically you are "load-balancing" the incoming requests (on port snmp/udp) to your nodes. The answer back will go back through the LB, which will send it to the "right" client again.

What I am still missing is how the load-balancer can choose which node to target for the incoming request.

  • I don't know either how I should translate the index sent in an SNMP OID using another server that is not SNMP. I am starting to think that I'll not be able to hide from receiving a request through a custom SNMPd agent and manually forwarding it to the target node (building a new PDU). I'll think a bit more on choices like yours, anyway. Thanks! – j4x Feb 2 '12 at 22:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.