James_Wrubel_48
Jun 27, 2009Nimbostratus
forware only http payload to pool
Hi all,
I've got a requirement to tunnel a TCP-based application over HTTP. We control the data the client sends, so I had intended to put the node and port in custom http headers and the data that the application should process in the HTTP payload. From what I can tell, if I do the redirection in an HTTP profile the data passed to the remote application will still be wrapped as HTTP; I can remove the headers but that's about it. What I would like to do is forward the HTTP payload as TCP payload. From a strategy perspective I'm evaluating the following options:
1) Use only a TCP profile and set up my own iRule string processing on the TCP payload to replicate the HTTP profile commands. Years of programming have taught me that if you are writing code someone else has already built, you're wasting your time, so I'd prefer to avoid this though I figure I could get it to work.
2) Use the HTTP::disable command in some way to disable HTTP processing. From testing it appears that forwarding even after the HTTP::disable command still sends the full HTTP data, and HTTP::disable discard sets up the handshake but sends no data to the server. Could I use a split command on the full payload including HTTP headers after the HTTP profile is disabled and send the data that way? I'm having trouble getting that syntax correct if it's even possible.
3) Use the virtual command to forward the traffic to a VIP without an HTTP profile after I've done some basic processing. This might work in conjunction with the above two and make it easier to find the split points I'd need.
Any thoughts on the above? Has anyone ever implemented variants on these, and are any of the options clearly better or worse than others?
Jim