Forum Discussion

Darek_H_152835's avatar
Darek_H_152835
Icon for Nimbostratus rankNimbostratus
Aug 11, 2014

Cookie persistance problem - v11.5.0 HF3

Hi all, i have defined cookie persistence, attached it to VIP as Default persistence Profile (with OneConnect Profile enabled). Ten i have created iRule to read how the cookies are processed and if the nodes are selected correctly. log local0. "debug: Client [IP::client_addr]:[TCP::client_port] -> [HTTP::host][HTTP::uri]; sessionId=[HTTP::cookie "sessionId"] host=[LB::server name]"

 

At the beginning it works ok, but after some time it looks like the node is changing (there are 2 nodes in the pool). So for example, at the beginning the logs say that node A has been chosen but after some time the same cookie has been redirected to node B and back to node A. And so on. What worst, after some longer time the [LB::server name] parameter is returning 0 instead of some host IP, and forwards the request to both nodes. Any clue where to look for the error ? Am i debugging it correctly ? Am i missing something ? Many thanks for any help with this

 

7 Replies

  • What timeout is specified for sessionId? Is there a backup persistence profile configured?

     

  • Also, what is the source mask on your oneconnect profile?

     

  • Ok timeout on sessionID is 7200 sec. No there is no backup persistence profile configured. OneConnect profile source mask 255.255.255.255

     

  • Are you looking at the persistence records in the GUI?

     

  • what cookie method (in cookie persistence profile) are you using? is it cookie insert?

     

    is sessionId cookie name (in cookie persistence profile setting)?

     

  • I'm using hash cookie. Yes the sessionID is cookie name and it's managed by the app.

     

  • At the beginning it works ok, but after some time it looks like the node is changing (there are 2 nodes in the pool). So for example, at the beginning the logs say that node A has been chosen but after some time the same cookie has been redirected to node B and back to node A.

     

    did it impact user traffic? or was it just about log?

     

    where did you log [LB::server name]? was it in HTTP_REQUEST? can you try to log [IP::server_addr]:[TCP::server_port] in HTTP_RESPONSE instead?

     

    you may have to store [HTTP::host], [HTTP::uri] and [HTTP::cookie sessionId] in variables in HTTP_REQUEST and log them in HTTP_RESPONSE.