Forum Discussion

Michael_-_PSI_1's avatar
Michael_-_PSI_1
Icon for Nimbostratus rankNimbostratus
Feb 11, 2015

Persistence not honored with iRule on session hash

This is my first post, so I apologize if I miss something.

 

We're using a BIG-IP 11.4.1 Build 637.0 Hotfix HF3 to route HTTPS traffic from a central data center IP to our application pool. Load balancing is occurring via an iRule based (see below). For the most part, persistence is maintained, but occasionally a different pool member gets routed to. This causes an undesired result in our application. We've had a case open with support but haven't gotten resolution to this thus far. We've tried the following:

 

Route based on sourceIP - overloaded single pool member because traffic was coming single IP.

 

Tried using LB::detach based on KB article from support: https://support.f5.com/kb/en-us/solutions/public/7000/900/sol7964.html This actually caused the undesired effect in the application to occur more frequently.

 

Here is our iRule:

 

when HTTP_RESPONSE { set SessionHash [HTTP::header "X-IntegrationServer-Session-Hash"] if { $SessionHash != "" }{ persist add uie $SessionHash 21600 } } when HTTP_REQUEST { set cli [IP::remote_addr]:[TCP::remote_port] set SessionHash [HTTP::header "X-IntegrationServer-Session-Hash"] if { $SessionHash != "" } { persist uie $SessionHash 21600 } }

 

Any and all help is appreciated. Thanks, Michael C.

 

2 Replies

  • Try to capture a fiddler session and full tcpdump, both client side and server side, of a session where persistence broke. then analyse the cookie exchanges to find out where it broke.

     

  • Hi Michael,

     

    are you using OneConnect (to be assigned to the virtual server via profile).

     

    In case of clientside connection pooling (i.e. applied by proxies) multiple clients may share a single keep-alive connection.

     

    Without OneConnect the virtual server does not de-multiplex the incoming requests and persistence is just applied based on the very first request after the connection was opened.

     

    Thanks, Stephan