Forum Discussion

cyber_18706's avatar
cyber_18706
Icon for Nimbostratus rankNimbostratus
Jul 31, 2009

Persistence URGENT

Hi all,

 

 

I would like to make persistence based on a paramater called "x-nokia-gid".

 

 

Here is my irule that seems not to work (i find this parameter on 2 different hosts behind the load balancer) :

 

 

when HTTP_REQUEST {

 

set xnokiagidgly [HTTP::header "x-nokia-gid"]

 

set xcallinggly [HTTP::header "x-up-calling-line-id"]

 

if { $xnokiagidgly equals "" }

 

{

 

log local0. "xnokiagid vide : $xnokiagidgly"

 

persist none

 

pool pool-gly-as

 

}

 

else {

 

set keygly [list $xnokiagidgly any]

 

persist uie $keygly 600

 

}

 

}

 

 

Could you help me please ?

5 Replies

  • Do clients connect to multiple virtual servers? If not, and you're using only this rule, I don't think you need to add 'any' to the persist command.

     

     

    If you add logging to each condition and reproduce the issue, what do you see in the logs? Can you also check the 'b persist all show all' output as you test? This will show the persistence records LTM holds.

     

     

    You can use also log the persistence record found for the token using 'persist lookup uie $token' in the rule. And it might help to log [LB::server] in LB_SELECTED and [IP::server_addr]:[TCP::server_port] in SERVER_CONNECTED.

     

     

    Aaron

     

  • the client make a request to the VIP then behind the vip the request is sent to the two servers. The goal is that if it has started on a server, it doesn't change.

     

     

     

  • PERSISTENT CONNECTIONS

     

    | Mode universal Value 33611111111 any

     

    | virtual 10.163.192.229:webcache node 10.163.192.233:any age 98sec

     

    | slot/tmm 1/1

     

    | Mode universal Value 33609183529 any

     

    | virtual 10.163.192.229:webcache node 10.163.192.236:any age 237sec

     

    | slot/tmm 1/1

     

    | Mode universal Value 33609183649 any

     

    | virtual 10.163.192.229:webcache node 10.163.192.236:any age 3sec

     

    | slot/tmm 1/1

     

    | Mode universal Value 33609183649 any

     

    | virtual 10.163.192.229:webcache node 10.163.192.236:any age 0sec

     

    | slot/tmm 1/0
  • Ah, that's helpful. So you're on a platform and version which supports CMP. CMP and persistence don't work so well in current versions. And there is a bug whereby CMP isn't automatically disabled on virtual servers which use persistence (with an exception of cookie insert). See these solutions for details:

     

     

    SOL7751: Overview of Clustered Multi-Processing (https://support.f5.com/kb/en-us/solutions/public/7000/700/sol7751.html - Click here).

     

     

    If a virtual server references any of the following BIG-IP system features, CMP is disabled for that virtual server and handled by TMM0 only:

     

    ...

     

    - A persistence profile or iRule using a method other than cookie persistence

     

     

    SOL9268: The BIG-IP system does not update a virtual server's CMP status

     

    https://support.f5.com/kb/en-us/solutions/public/9000/200/sol9268.html

     

     

    The best solution might be to disable CMP for the virtual server you want to use UIE persistence with.

     

     

    Aaron
  • So you have a Viprion then. I don't have much experience with the platform. If you find out any more on this could you reply here?

     

     

    Thanks,

     

    Aaron