Forum Discussion

BK1's avatar
BK1
Icon for Cirrus rankCirrus
May 29, 2020

Point request of one client to same pool member everytime

Hello,

 

I have 3 different host who will send request to same Virtual Server on same port. Behind virtual server, there are 3 pool members. I have requirement like whenever request comes from Client 1, request should be send to Pool member 1. And same for other 2, like client 2 request to pool member 2 etc.. And this is not specific to particular time/session. At any point of time, requests should get forward in above manner.

 

I can directly send clients request to directly respective pool members without F5, but these source host are in sync with each other and I can define only one destination server over there so F5 came into picture.

 

I checked host type of persistence which may help here. But I am not exactly sure. Need your suggestions and inputs to achieve this requirement.

4 Replies

  • I think, iRule would be more efficient for your use case. You can create separate pool for each pool member. e.g. consider Pool1, Pool2 and Pool3.

     

    And use below iRule,

     

    when CLIENT_ACCEPTED {

     

     if { [IP::addr [IP::client_addr] equals Client1-IP] } {

        pool Pool1

     }

     

     else if { [IP::addr [IP::client_addr] equals Client2-IP] } {

        pool Pool2

     }

    else if { [IP::addr [IP::client_addr] equals Client3-IP] } {

        pool Pool3

     }

     }

     

    You need to put IP addresses of client in place of Client1-IP, Client2-IP etc. This way request from client1 will get forwarded to Pool1 (which include server1) and same way for other clients.

     

    Hope it works!

    Mayur

     

     

  • Looks good, I will try it out. Just one query, what will happen at http_request as event given in above iRule will get triggered at client_accepted event. thanks​

  • Hello,

     

    For TCP connections, above event triggers when the three-way handshake successfully completes that too for Standard type of VS. For FastL4 type, event will get triggered on the initial sync.

    For UDP connections, event triggers at each segment in UDP stream events.

     

    Hope it helps!

    Mayur