Forum Discussion

D_T's avatar
D_T
Icon for Cirrus rankCirrus
Apr 22, 2020

iRule to Use Existing Cookie for Persistence Routing

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.

7 Replies

    • D_T's avatar
      D_T
      Icon for Cirrus rankCirrus

      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
        }
      }
      • PeteWhite's avatar
        PeteWhite
        Icon for Employee rankEmployee
        Is the cookie content different for each of those requests? I’d tend to do this only on request