문제 배경
SNMP Trap V3 버전 경보 데이터를 로컬로 보내는 것을 테스트했을 때 프로그램에서 다음 오류를 보고했습니다.
org.snmp4j.MessageException: Cannot assign requested address: Datagram send failed
at org.snmp4j.MessageDispatcherImpl.sendPdu(MessageDispatcherImpl.java:514)
at org.snmp4j.Snmp.sendMessage(Snmp.java:1005)
at org.snmp4j.Snmp.send(Snmp.java:885)
at org.snmp4j.Snmp.send(Snmp.java:878)
at org.snmp4j.Snmp.send(Snmp.java:843)
at mirale.luna.snmp.trap.SnmpSendTrapV3.sendPDU(SnmpSendTrapV3.java:80)
at mirale.luna.snmp.trap.SnmpSendTrapV3.main(SnmpSendTrapV3.java:88)
문제 원인
트랩 수신자 주소 설정시 IP가 0.0.0.0 으로 설정되어 오류가 발생했습니다!
Address targetAddress = GenericAddress.parse("udp:0.0.0.0/162");
해결책
Trap 알람을 보내고 받기 위한 로컬 테스트이므로 수신자 IP를 0.0.0.0에서 127.0.0.1로 변경하면 됩니다.
수정 후:
Address targetAddress = GenericAddress.parse("udp:127.0.0.1/162");
SNMP Trap V3 경보 데이터가 성공적으로 전송될 수 있습니다.