Forum Discussion

Martin_Kaiser_1's avatar
Martin_Kaiser_1
Icon for Nimbostratus rankNimbostratus
Jun 14, 2012

Monitor receive disable and persistence

The customer wants to control disabling of specific nodes. We have therefore implemented a "receive disable string" in the monitoring definition, enabling him to put "offline" into a static monitoring page, making the BigIP set the according pool member to "disabled".

Now the customer complains about persistent connections still being directed to the disabled node (which is obviously right).

 

 

 

I thought about an iRule like this:

 

 

 

when LB_SELECTED {

 

if { [LB::status pool poolname member [LB::server addr] port [LB::server port]] eq "session_disabled" } {

 

LB::reselect

 

}

 

}

 

 

 

 

But I'm unsure whether the LB::reselect will work for persistent connections and select a non-disabled pool member.

 

Any hints / comments on this?

 

 

 

Many thanks in advance.

 

  • Hi Michael,

     

     

    thanks for your reply and sorry for my late feedback!

     

    I'm aware of how monitoring works, but the customer is a bit difficult and insists on not changing the monitoring as it is today, thus we need to solve this using an irule.

     

    As I already suspected, the LB::reselect command does indeed run into the same issue, meaning it will look for a persistence entry and then make the load balancing decision based on that (which is exactly what we do not want).

     

     

     

    I will give this one a try:

     

     

     

    when LB_SELECTED {

     

    if { [LB::status pool poolname member [LB::server addr] port [LB::server port]] eq "session_disabled" } {

     

    persist none

     

    LB::reselect

     

    }

     

    }

     

     

     

    Greetings

     

    Martin