Learn F5 Technologies, Get Answers & Share Community Solutions Join DevCentral

Filter by:
  • Solution
  • Technology
Answers

Affinity | session persistence

I'm looking for a solution to the mega-proxy issue, IOW, if several clients are connecting via the same source IP and all get passed to the same node.

Is there a method of using the full tcp socket (source IP + source tcp port) to make affinity decisions? Or some other mechanism to distribute each client (sourcing from the same IP) to be treated separately and sent to next available node as per the pool's algorithm vs. all on the same host (which is bad)?

Any help is appreciated. Thank you.

-b

0
Rate this Question

Answers to this Question

placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
What protocol is the traffic?

If it's HTTP traffic, the ideal solution is to use cookie insert persistence. This allows you to persist based on individual browser sessions. If it's another protocol, you could try a similar approach of inserting a token in the response that the individual client would include in subsequent requests and then persist on that token. If that's not possible, I think you're stuck with considering all clients who connect from mega-proxy subnets as a single client. You could configure the load balancing algorithm to least connections to try to alleviate the clumping, but it wouldn't necessarily solve the problem.

Aaron
0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
Hmm, I'll have to investigate what is required to insert a token. This is a problem we've seen with open source load balancing products (software) that I thought, according to my recollection, was handled much more elequently in hardware.

Any experience with Oracle and Jinitiator with regards to session persistence?

-b
0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
It is handled much more eloquently with LTM for HTTP traffic . It's just a few button clicks in the GUI.

Are you trying to load balance the front end HTTP(S) connections? If so it should be pretty straightforward to configure HTTP cookie insert persistence. The manuals on AskF5 detail how to add an HTTP profile and a cookie insert persistence profile to the HTTP(S) VIP. If the client is using HTTPS you'll also need to import the server cert and add a client SSL profile. This gives you per browser session level persistence.

If I'm missing something in your scenario, could you provide more detail?

Thanks,
Aaron
0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
Well, here's a point that I'm not real clear on so please excuse my ignorance. The sessions I'm mostly concerned with are Oracle jinitiator sessions (Oracle Web Forms), I believe this is done via a plugin or activeX control depending on the flavor of browser. The traffic is TCP, I believe it's http, but I'm not sure if the code for the forms is using cookies. The other traffic is apache/tomcat - pretty strightforward there I would assume.

-b
0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
Where do I find documentation on the cookie insert mechanism? I have a similar situation and would like to read up in some more detail on how cookie insert works, as well as having a reference to provide my F5 admin.
Thanks!
0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
b: It looks like jinitiator traffic can be tcp/ip sockets, http, or https. It'll be fairly important to figure out what the traffic type is before we try and figure out what your persistence options are. HTTP/S will leave you the most options for sure.

dj: check on ask.f5.com for all of the details (manuals, solutions, etc.) on the cookie persistence mechanism used by BigIP.

-Matt
0