[SNMP4J] Problems with sending SNMP traps to IP addres that is not localhost (127.0.0.1)
Ivan Mladenović
piffta at gmail.com
Tue Jan 19 14:24:22 CET 2010
I'm trying to send snmp V2 trap from my java code. Everything works fine
when both (manager and agent) are on localhost,
but if I try to send a trap to manager that is on another machine, I don't
receive any traps. If I use some other program
for generating traps (for example "SNMP trap stormer" from AdventNet
simulation toolkit 7) I don't have this issue.
Here is my code:
void confgure() throws UnknownHostException, IOException {
// Create the Manager address
UdpAddress managerUdpAddress = new
UdpAddress(InetAddress.getByName(managerHost), managerPort);
// works fine when manager host="127.0.0.1"
// Create the Agent address
UdpAddress agentUdpAddress = new
UdpAddress(InetAddress.getByName(agentHost), agentPort);
// Create the Community Target using the manager address
ctarget = new CommunityTarget(managerUdpAddress, new
OctetString(community));
ctarget.setCommunity(new OctetString(community));
ctarget.setRetries(retries);
ctarget.setTimeout(timeout);
// Create the Transport Mapping using the agent address
ctransport = new DefaultUdpTransportMapping(agentUdpAddress);
// Create the session object
snmp = new Snmp(ctransport);
}
....
sending trap:
public void sendV2Trap(String trapOid, String message) throws Exception {
long sysUpTime = (System.currentTimeMillis() / 10) - startTime;
sysUpTime = sysUpTime % MAX_SYSUPTIME;
// Set SNMP version as V2
ctarget.setVersion(SnmpConstants.version2c);
// Create trap with time ticks, the trap OID and the message
PDU trapPdu = new PDU();
trapPdu.add(new VariableBinding(new OID(SYS_UP_TIME), new
TimeTicks(sysUpTime)));
trapPdu.add(new VariableBinding(new OID(SNMP_TRAP_OID), new
OID(trapOid)));
trapPdu.add(new VariableBinding(new OID(trapOid), new
OctetString(message.getBytes())));
// Send trap
snmp.notify(trapPdu, ctarget);
}
P.S. To view received traps, I use Trap Receiver (
http://www.trapreceiver.com/)
More information about the SNMP4J
mailing list