Forum Discussion

bgray1234's avatar
bgray1234
Icon for Nimbostratus rankNimbostratus
Sep 16, 2013

switching pools in irule without using oneconnect profile

is there a way to have an irule change pools with a switch without using the oneconnect profile.

 

example

 

switch when HTTP_REQUEST { switch -glob [HTTP::uri] { "/s/" { pool pool1 } "/my/" { pool pool2 } "/" { pool pool3 } default { pool pool3 } } }

 

When not using oneconnect profile the connection from the clients have pool stickyness.

 

4 Replies

  • Inside your HTTP_REQUEST event use the command LB::detach. This will remove the stickyness and allow your iRule to select a destination per HTTP request. The reason it is sticky is the pool selection is normally only performed once at the start of the TCP connection. Subsequent pool commands will have no effect unless you tell the F5 to detach the connection from the server side using the command given. When you are using oneconnect the server side is always detached.

     

    See the following solution ID's which describe this behaviour

     

    sol9800

     

    sol7964

     

  • What´s wrong about OneConnect? Connection pooling can be turned off by applying a 32bit mask.

     

    You can also turn off KeepAlive connection on your webservers. This is the "old school" approach ...

     

  • How about using a modified OneConnect profile with a 32bit mask? So connection pooling will be applied to connections from the same source IP only.

     

    In the bottomline OneConnect does 3 things:

     

    • connection pooling (multiplexing depending on the configured mask),
    • content switching (as you want it) and
    • bi-directional KeepAlive conversion (http 'connect' header) to support the peer specific communication method
  • Thanks for the information about oneconnect. We will test with the 32bit mask to see the results.