SNMP v2 trap - how to spoof the source address?

Hi folks,

Consider the following:

Routers send their syslog messages to a FreeBSD syslog server which runs a parsing script to detect BGP up/down events.  On detection of such events, the script generates a BGP trap (using Net-SNMP tools) towards Netcool probe.

[Router]----syslog---->[syslog server]----trap---->[Netcool probe]

Now the problem is that the trap contains the source address of the syslog server.  However, the Netcool system needs to know the source of the original message (the router) for assurance purposes.  

We considered an SNMP v1 trap and setting the agent address to that of the router, but the BGP v1 MIB does not contain the required bgpPeerRemoteAddr varbind.  So we must use v2 traps.

Is there a way to spoof the source address of an SNMP v2 trap?

Regards
Dennis
denstaAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

bgoeringCommented:
Is there a way? Yes -- but not with anything I am aware of out of the box. It will likely require some sockets programing. Take a look at http://www.enderunix.org/docs/en/rawipspoof/ for a discussion of how to do that.

Good Luck
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
bgoeringCommented:
One thing to consider is that it may be easier to send the trap straight from the router. Cisco I know supports snmp traps for bgp state change events. See http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a0080094a05.shtml for how to configure.

I would expect most major router vendors to support something similar - and there is no reason the router couldn't send both the syslog to your freebsd system and the traps to your Netcool.
0
denstaAuthor Commented:
Thanks @bgoering for the response.

I was hoping that there would be an OOTB tool similar to "trapgen" (ncomtech) for BSD that allows you to set the sender IP.  I understand the HP NNM snmpnotify allows you to do this but requires NNM licenses and libraries.  Sockets programming is not something we want to get into if at all possible.  

The problem with Cisco routers is that they don't support sending traps for IPv6 BGP state change events (IPv4 is okay).  Cisco have indicated this feature won't be available for 2-3 years, hence the need for this syslog-based workaround.

There is the option of deploying a Netcool syslog probe, but our project wants something quick and dirty initially to meet operationao requirements, with a view to deploying a syslog probe longer term.

0
IT Degree with Certifications Included

Aspire to become a network administrator, network security analyst, or computer and information systems manager? Make the most of your experience as an IT professional by earning your B.S. in Network Operations and Security.

bgoeringCommented:
ncomtech trapgen has a linux product that should run ok on FreeBSD if you enable the linux compatibility features. Have you looked into that?
0
denstaAuthor Commented:
no I haven't but I'll run it past the project team.  worth a shot - thanks!
0
denstaAuthor Commented:
well that didn't work :(  

the sender ip in the trapgen command is only valid for SNMP v1 (this wasn't clear in the README)

so back to square one - we may have to consider adding a varbind to the SNMP v1 trap with the peer's remote address or alternatively add a varbind to the SNMPv2 trap with the router's address.

either will require rework on the NC side which we were trying to avoid but at this stage i can't see a way around this.
0
bgoeringCommented:
Yes, if by NC you mean netcat that should work. Create scripts using "nc -u -s x.x.x.x" to send your snmpv2 trap data

Take a look at http://www.foromsn.com/Version_Imprimible.php?Id=240940 for more info on spoofing with netcat. Might be easier than the sockets programming I first proposed!

Good Luck
0
denstaAuthor Commented:
ha ha, i meant NetCool!  But now I have another tool to consider - thanks!
0
bgoeringCommented:
Well the "NC" rang a bell with me that you could indeed spoof source IP with netcat and get it there with loose source routing (-g option) send arbitrary information via TCP or UDP. I see no reason the arbitrary information couldn't be a properly formatted UDP packet containing your trap.

Good Luck
0
mikebernhardtCommented:
Netcool has a syslog probe that basically listens to the syslog on your syslog server and forwards everything to Netcool, without the syslog server's info. I don't manage it, but we do that here at my workplace.
0
denstaAuthor Commented:
yea syslog probe is our longer term solution for this. but it requires licensing and prof services engagement which all requires time we don't have. We need something "quick and dirty" in place this week!
0
mikebernhardtCommented:
You can also write a Netcool script that parses the syslog input from that server and strips off the source before displaying it- the real source is already in the messgae, as you know.
0
denstaAuthor Commented:
thanks
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Network Operations

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.