Lab 2: Load Balancing, Monitoring and Persistence

Objectives:

  • Configure and review the Ratio load balancing method
  • Build and test priority groups
  • Build a content monitor that looks for a receive string
  • Build and review simple (source IP) persistence and cookie persistence

Ratio Load Balancing

  1. Go to Local Traffic>Pools and select www_pool and then Members from the top bar or you could click on the Members link in the Pool List screen.
../../_images/image69.png
  1. Note: When we created the pool, we performed all our configuration on one page, but when we modify a pool the Resource information is under the Members tab
  1. Under Load Balancing section
    1. Change the Load Balancing Method to Ratio (Member)
    2. As you look at the drop down menu, notice most load balancing methods have two options, (Node) or (Member). You should know the difference between the two.
../../_images/image25.png
  1. Don’t forget the Update button
  2. Then under Current Members
    1. Select the first member in the pool 10.1.20.11:80.
    2. Under the Configuration section
      1. Change the Ratio of the member to 3
../../_images/image26.png
  1. Select the Update button
  1. Verification
    1. Check the pool statics by selecting Statistics in the top bar, if you are still in Local Traffic> Pools or by going to Statistics>Module Statistics>Local Traffic and selecting Pool from Statistics Type.
    2. Reset the statistics for your www_pool pool by checking the boxes next to the pool members and hitting the Reset button
      1. Browse to your www_vs (10.1.10.100) virtual server
      2. Refresh the browser screen several times (use “<ctrl>” F5)
      3. Select the Refresh button on the Statistics screen
      4. How many Total connections has each member taken?
      5. Is the ratio of connections correct between the members?
    3. Now go back and put the pool back to Round Robin Load Balancing Method
      1. Reset the statistics
      2. Refresh the virtual server page several times
      3. Refresh the statistics
      4. Does the ratio setting have any impact now?

Priority Groups Lab

Let’s look at priority groups. In this scenario we will treat the .13 server as if it was is in a disaster recovery site that can be reached over a backhaul. To maintain at least two members in the pool for redundancy and load sharing, our customer would like to use it during maintenance periods or if one of the two other pool members fails.

  1. Go to Local Traffic>Pools>www_pool
    1. Select the Members tab.
      1. Set the Load Balancing Method back to Round Robin
      2. Set the Priority Group Activation to Less than … 2 Available Members.
../../_images/image27.png
  1. Don’t forget the Update button
  2. Select the pool members 10.1.20.11 and 10.1.20.12 and set their Priority Group to 2.
    1. This will allow you to change the priority on that particular member.
../../_images/image28.png
  1. Review your settings and let’s see how load balancing reacts now.
    1. Select the Statistics tab.
    2. Reset the pool statistics.
    3. Browse to your virtual server and refresh several times.
    4. Refresh you statistics.
    5. Are all members taking connections?
    6. Which member isn’t taking connections?
  2. Let’s simulate a maintenance window, or an outage, by disabling a pool member in the highest priority group. As this will drop the number of active members below 2, this should cause the low priority group to be activated.
  3. Select the member in the Priority Group 2 and Disable that pool member.
    1. Select the Disable button
../../_images/image29.png
  1. The status indicator now goes to black, indicating the member has been disabled
  1. Once again, select Statistics, reset the pool statistics, browse to the virtual server and see which pool members are taking hits now.

Tip

Once you are done testing re-enable your disabled pool member.

Monitor Labs

Objective:

  • Build a default monitor for nodes
  • Build a content monitor for your pool

Default Monitors

  1. Go to Local Traffic>Nodes, note the Status.
    1. Notice there are Nodes in this table even though we never specifically configured them under the Node portion of the GUI. Each time a unique IP address is placed in a pool, by default, a corresponding node entry is added and assigned the default monitor (if any).
    2. Select the Default Monitor tab.
../../_images/image30.png
  1. Notice we have several options, for nodes you want a generic monitor, so we will choose icmp.
  2. Select icmp from the Available box and hit the arrows button pointing to the left to place it in the Active box.
  3. Click on the Update button to finalize your changes.
  1. Select Node List or Statistics from the top tab.

    1. What is the Status of the Nodes?
  2. Select Statistics>Module Statistics>Local Traffic

    1. What is the Status of your Nodes, Pool and Virtual Server?

Content Monitors

The default monitor simply tells us the IP address is accessible, but we really don’t know the status of the particular application the node supports. We are now going to create a monitor to specifically test the application we are interested in. We are going to basic contnet check of our web site to determine it the servers are responding properly.

  1. Browse to http://10.1.10.100. A number of content items you could use to check the site status. You could check for text on this page. You could view the source code and check for a text string not normally visible to the user. You can also look in the HTTP header information being returned.
  2. We will be looking for the HTTP status “200 OK” in the HTTP header information as our receive string to determine availability.
  3. Select Local Traffic>Monitor on the side-bar and select the plus (+) sign or the Create
../../_images/image32.png
  1. Now we can create a monitor to check the content of our web page to ensure things are running properly.
    1. Name: www_test
    2. Type: HTTP
../../_images/image33.png
  1. Once you have selected your parent (Type) monitor, you can access the Configuration section

    1. Send String: Enter the command to retrieve the page you want GET /index.php HTTP/1.0\r\n\r\n
    2. In the Receive String box put “200 OK” (no quotes)
    Monitor configuration

Note

The receive string is not case sensitive.

  1. Click Finish and you will be taken back to Local Traffic>Monitors
../../_images/image35.png
  1. Where is your new Monitor?
    1. Hint: Check the lower right hand corner of the Monitors list, here you can go to the next page or view all Monitors
    2. You can change the number of records displayed per page in System>Preferences
  2. Go to Local Traffic>Pools>www_pool and choose Properties from the top bar.
    1. Remove the http monitor from the Active box.
    2. Select the www_test monitor from the Available monitor’s window in the Configuration section and move it to the Active window.
../../_images/image36.png
  1. Hit Update to apply the change.

    1. Select Statistics from the tabs.
    2. What is the status of the pool and its members?
  2. Go to Local Traffic>Virtual Servers, what is the status of your

    virtual server?

    1. Browse to your www_vs virtual server. Which members are taking traffic?
    2. Just for fun reverse the monitor. Now when 200 OK is returned it indicates the server is not responding successfully. You can see where this would be useful if you were looking for a 404 (bad page) response. Once completed, please go back and undo your changes to the monitor.

Persistence Labs

In this lab we will configure a couple types of persistence and view their behavior. For persistence, profiles will have to be created and attached to our virtual server.

Lab Requirements:

  • Prior to beginning the lab verify your www_pool has been set to the following parameters:
    • Load Balancing Method: Round Robin
    • Priority Group Activation: Disable
      • The members Ratio and Priority Group mean nothing since we aren’t using Ratio load balancing and Priority Groups are disabled.
    • Hit Update
    • Hit your virtual server several times, you should see all 3 servers respond.

Simple (Source Address) Persistence

  1. Go to Local Traffic>Profiles and select the Persistence tab.
    1. From the Persistence Profiles screen select the Create button.
../../_images/image37.png
  1. At the New Persistence Profile screen enter:
    1. Name: my-src-persist
    2. Persistence Type: Source Address Affinity
../../_images/image38.png
  1. This will add the Configuration section to the General Properties section.
    1. Note the parent profile.
  2. In the Configuration section, set the
    1. Timeout: 60 seconds
    2. Prefix Length: None
      1. This is the default, and is a /32 prefix (255.255.255.255 mask).
      2. Each new IP address will create a new persistence record.

Hint

You can’t change the settings until you have checked the Custom box. Hey, I didn’t write the GUI, but actually this is very useful in knowing which configuration items were modified from the default.

iii. Click the Finished button.
  1. You have just created your first custom Profile.
    1. Note the check box for your new custom profile isn’t grayed out and can be selected to allow you to delete the profile if desired.
  2. Now let’s attach our new profile to the virtual server.
    1. Go to Local Traffic>Virtual Server and ….
      1. Select www_vs and the Resources tab or ….
      2. Take the shortcut directly to the Resources of the virtual server. (Can you find it?)

Note

When we created the Virtual Server everything was on a single page, we find when we return to modify the Virtual Server the Properties and Resources are on different pages.

g. Set the Default Persistence Profile to my-src-persist.
../../_images/image39.png
  1. Don’t forget to Update before leaving the page. (Be careful, someday I will quit telling you that.)
  1. Testing Source Address Affinity
    1. At this point you may want to open a second browser window to the management GUI.
    2. For one management window go to Statistics>Module Statistic>Local Traffic
    3. Select Persistence Records for the Statistics Type menu
../../_images/image40.png
  1. At this point you will see that Persistence Records statistics display has been disabled in version 12.1. A TMSH database command is required to activate it.

    1. SSH to you BIG-IP.
    2. At the prompt enter: tmsh
    3. At the TMSH prompt enter the command in the Persistence Value GUI.

    TMSH

    modify sys db ui.statistics.modulestatistics.localtraffic.persistencerecords value true

Tab completion will make this a little easier

  1. Now, in this window you can watch you persistence records. You may want to set Auto Refresh to 20 seconds.
../../_images/image41.png
  1. In your other management GUI window go to www_pool and clear the member statistics.
    1. Open a browser session to your virtual server and refresh several times.
    2. How many members are taking traffic?
    3. Check your Persists Records window, are the any persistence records?
      1. If you are not Auto Refreshing, don’t forget to hit Refresh
    4. Refresh your web page prior to the Age column reaching 60. What happens?