Dynamic Rules: Web Server Balancing

Overview

Dynamic rules allow bandwidth management of a group of computers whose
IP addresses are not known in advance. This tutorial explains how to
use this feature to distribute web server bandwidth between all remote
users who may connect to it.

Note: Dynamic rules are only available in Bandwidth Controller Enterprise
Edition. See the product feature comparison for
more information.

Introduction

A common issue for web servers is that a small group of clients can use up
most of the upstream bandwidth, leaving little for other users who are connected.
For intranet services it is usually possible to create a rule for each local
user who will connect to the resource, but for web server operators this is
impractical as the address of each user is effectively random.

The solution is to use dynamic rules which give network administrators the
ability to filter connections without knowing their IP address in advance. Dynamic
rules achieve this functionality by identifying the streams and creating a
new virtual rule for each unique IP address that connects to the server.

The following steps show how to configure Bandwidth Controller to distribute
available bandwidth evenly amongst a group of web server clients. It uses
a single rule to perform the bandwidth load balancing.

Step 1: Creating a New Rule

Click the Add Rule Wizard button on the toolbar along the top of the main
manager window to bring up the wizard.

Click Next to go to the Classification page.

Step 2: Choosing the Traffic Direction

This example distributes the download speed for clients. From the web server's
perspective, this means limiting the upstream or upload direction. Click the
Direction field and choose Upload. The rule will now process all
traffic travelling from the web server to the clients (client download).

Step 3: Selecting HTTP Classification

To limit just HTTP traffic, click the Change button on the right of the
Local Endpoint field. This will bring up the Local Endpoint Properties.

Leave the Address section set to All computers and select the
Port field at the bottom of the window. Enter in 80 to make
the rule process only HTTP traffic coming from the web server, leaving all
other traffic untouched.

Click Ok to save the endpoint settings, then click Next twice
to go to the Advanced Processing page.

Step 4: Enabling Dynamic Queueing

Uncheck Use separate queue for each local user to disable dynamic
queueing for LAN clients, and check Use separate queue for each remote site
to turn on dynamic queueing for external users.

Click Next twice to complete the rule creation.

Bandwidth Distribution

Note that in the above diagram the Scale Factor is set to 1. This
means any connection that is filtered by this rule will be given an equal share
of bandwidth. Each time a new user connects to the web server, the distribution
will be updated.

For example, if there are 3 users connected then each will receive 33% of available
upstream bandwidth. When another user connects the allocation is changed to
25% each (100% divided by 4 users).

Dynamic rules also allow for users who are not using their full allocation that they
are given. For example, if 3 users are connected but one of them is using only 10%
of the upstream bandwidth rather than 33%, then the other two users will share
the remaining 90% (i.e. 45% each). Likewise, if a user is connected to the server
but not currently downloading anything, they will not be counted and the other two
computers will receive a full 50% each.

Conclusion

Dynamic rules give web server operators a simple way of sharing bandwidth between
clients. But they are useful for more than just the scenario outlined in this
tutorial, they also provide batch rule creation functionality by preventing the
need to create a separate rule for each user on the network.

Use dynamic rules whenever possible to help save time and manage complexity
for your network environment. Dynamic queueing is set by default for local
users which means that any rule you create that has an address range or
address group for the local endpoint will benefit from this feature.