Forum Discussion

Netgus_312724's avatar
Netgus_312724
Icon for Nimbostratus rankNimbostratus
Mar 06, 2017

My load balancer don't balance...!

Hello all,

I'm beginner with F5 LTM, but I know well other solution...

I decided to discover this solution by following the tutorials of F5. For the moment nothing complicated since the configuration is very simple, but with the Round Robin, it does not seem to work properly.

My configuration -[Internet] -[Router with PAT] -[VIP of BigIP - SELF_IP_OUTSIDE] -[VIP of BigIP - SELF_IP_INSIDE] -[Three Web server :80 gateway SELF_IP_INSIDE]

I have defined: - 3 nodes - 1 pool - 1 Virtual server with Default Persistence Profile by default

When I test with the cURL command:

curl -s "http://bigip.local.com?[1-100]"
This is always the same server which answer me. Normally, for me, I must see a load balance between my 3 server because I don't defined a persistence profile. Right!

Sys::Version
Main Package
  Product     BIG-IP
  Version     12.1.2
  Build       0.0.249
  Edition     Final
  Date        Wed Nov 30 16:04:00 PST 2016

Thank you for your help.

Best regards.

5 Replies

  • Silly question but are you sure that you are going through the Big-IP? Try resetting the stats (Virtual Server stats and Pool stats) and then re-run your curl commands. Then look at the stats again to make sure that they are increasing. Could be something as silly as your local host file having a hostname that points to one server instead of the Big-IP.

     

  • If you don't have any persistence then it should work. Also, do you have your load balancing algorithm set as Round Robin or something else?

     

  • Now as you have showed us the configuration, I still don't see any issue at all. Just for the curiosity, why you need nodes when you can achieve the same using Pool and pool members. I implement hundreds of changes every month but I never created a node in my life, I do everything using VIP -> Pool -> Pool members, that's it.

     

  • You are seeing expected behavior. With your configuration BIG-IP is making one load balancing decision for the TCP connection not for every HTTP request. If you wish to load balance each http request to different pool members you must implement a OneConnect profile as explained here:

     

    K7208: Overview of the OneConnect profile.

     

    The relevant portion of the article is this:

     

    Content Switching

    When a OneConnect profile is enabled for an HTTP virtual server, and an HTTP client sends multiple requests within a single connection, the BIG-IP system is able to process each HTTP request individually. The BIG-IP system sends the HTTP requests to different destination servers as determined by the load balancing method. Without a OneConnect profile enabled for the virtual server, the BIG-IP system performs load-balancing only once for each TCP connection.

     

    1. in one sentence, you wrote "1 Virtual server with Default Persistence Profile by default", in another one, you wrote "I don't defined a persistence profile"... Which one is correct? Sounds to me as if an persistence was configured which would explain the behaviour.

       

    2. try using curl with --no-keepalives, otherwise it might make use of http session keepalive and issue many http requests over the same tcp connection (which will not get re-balanced by default unless oneconnect is configured).