22-Apr-2020 16:55
Is it possible to use an iRule to create persistent connections to pool members based on an existing application layer cookie? Meaning if the cookie exists, send the connection to one pool member persistently based on that cookie. If it doesn't, send to a default pool member. The reason for this would be persistent connection based on source IP will not work as the source IP is a proxy which lives in front of this pool and that IP doesn't change.
Thank you.
23-Apr-2020 07:23
Yes - universal persistence. https://support.f5.com/csp/article/K7392 gives you examples
01-May-2020 16:49
Thank you! This does seem to do the trick. What I am noticing is traffic is only going to one pool member consistently though. The virtual server is set for the new Universal Profile created for this and pointing to the new iRule. The pool members are both set to round-robin and 1:1 in priority group. The UIE profile iRule looks like this:
when HTTP_RESPONSE {
if { [HTTP::cookie exists "THECOOKIE"] } {
persist add uie [HTTP::cookie "THECOOKIE"]
pool po-serverpoolqa-https
}
}
when HTTP_REQUEST {
if { [HTTP::cookie exists "THECOOKIE"] } {
persist uie [HTTP::cookie "THECOOKIE"]
pool po-serverpoolqa-https
}
}
02-May-2020 04:08
02-May-2020 09:35
Each client would have the cookie with a different value. That value would not change during their session.
03-May-2020 14:46
I am trying to route users who have a cookie reflecting their useraccount as a value for example, consistently to a pool member but spread across those pool members for load balancing purposes. As they are going through a single proxy (with fail-over), using source_ip routing for example will not work.
03-May-2020 23:48
04-May-2020 11:11
I did attempt using cookie persistence with method Cookie Hash, mirror persistence, and the same session was scattered across the pool members.