Forum Discussion

Rlohman_77883's avatar
Rlohman_77883
Historic F5 Account
Oct 06, 2009

Behavior of LB::select and LB::reselect

Hey all,

 

 

Got a question for the smarter folks:

 

 

Within the HTTP_REQUEST event if an iRule, issuing the command stream:

 

pool $poolName member $memberAddr

 

catch "LB::select" result

 

catch "LB::status $result"

 

 

The LB::select statement always selects the last member in the pool with that IP address, regardless of whether the pool member is "down" or "session_disabled".

 

 

To get the LB::select command to select a different member in the list, the IP address cannot be provided.

 

 

Is it a known problem?

 

Is there a workaround?

 

 

 

As an example:

 

 

pool example_pool_name {

 

member 1.1.1.1:25135

 

member 1.1.1.1:25136 session diasble

 

member 1.1.1.1:25137 down

 

member 1.1.1.2:25135

 

member 1.1.1.2:25136 down

 

member 1.1.1.2:25137 session disable

 

}

 

 

when HTTP_REQUEST {

 

set poolName "example_pool_name"

 

set mbrAdr "1.1.1.1"

 

 

catch "pool $poolName member $mbrAddr" result

 

log local0. "pool $poolName member $mbrAddr > $result"

 

 

catch "LB::select" result

 

log local0. "LB::select > $result"

 

 

catch "LB::status $result" result

 

log local0. "LB::select > $result"

 

}

 

 

The member 1.1.1.1:25137 will always be returned.

 

 

Change the pool command to:

 

catch "pool $poolName" result

 

and then 1.1.1.1:25135 or 1.1.1.2:25135 will be selected.

 

 

Multiple series ofthe commands always results in same behavior.

 

 

Is this the intended behavior?

 

 

If so, how ever get 1.1.1.1:25135 to be selected without ever having 1.1.1.2.25135 being selected?

 

 

 

Regards,

 

 

Russ

 

No RepliesBe the first to reply