Forum Discussion

Jon_Strabala_46's avatar
Jon_Strabala_46
Icon for Nimbostratus rankNimbostratus
Jul 31, 2012

How can I send UDP or TCP messages to a virtual server and inspect and drop every packet

How can I send 20 (or 300) UDP or TCP messages a second into to a dedicated virtual server and have iRULES inspect and drop every packet.

 

 

Basically I have a stream of information like the follwoing:

 

 

 

USER0001=WXYZ,TIME=20120730451210

 

USER0001=NULL,TIME=20120730451210

 

USER0076=ABCD,TIME=20120730451210

 

USER0003=EFGU,TIME=20120730451211

 

USER0004=RTYK,TIME=20120730451211

 

USER0076=NULL,TIME=20120730451211

 

 

 

 

I want to jam it into the F5 efficiently (TCP or UDP) and then look at / inspect the data and update a global or session "table" data structure (https://devcentral.f5.com/wiki/irules.table.ashx) with the current state for use by other iRULES and virtual servers.

 

 

 

I don't need to connect to anything real on the other side of the F5 (just need to get information into the F5) what would the preferred method to set up something like this be.

 

 

 

I am on version 10.2.0 ( I am trying to upgrade to V 11.20 but that might be several weeks out)

 

 

 

I can write the stream in any fashion even in binary and I can send it to the F5 in any fashion TCP or UDP. But I do want to avoid HTTP.

 

 

 

Thanks in Advance

 

  • Hi Jon,

     

     

    You could use a UDP VS with a custom UDP profile that has Datagram LB enabled. Every packet that is sent to the virtual server should then trigger CLIENT_ACCEPTED where you can access the payload using UDP::payload. Here are a couple of related links:

     

     

    https://devcentral.f5.com/wiki/iRules.udp__payload.ashx

     

    https://devcentral.f5.com/wiki/iRules.CLIENT_ACCEPTED.ashx

     

     

    Aaron