Using a Load Balancer

Overview

In active/active mode, you have the option of using an external load balancer with a cluster. If you do use a load balancer, all the nodes actively handle user requests sent by the load balancer or round-robin DNS. The load balancer hosts the cluster VIP and routes user requests to a node defined in its cluster group based on source-IP routing. If a node goes off line, the load balancer adjusts the load on the active nodes. Users do not need to sign in again, however some session information entered a few seconds before the active machine went off-line, such as cookies and passwords, may not have been synchronized on the current device, in which case users may need to sign in to back-end Web servers again.

The cluster itself does not perform any automatic fail-over or load-balancing operations, but it does synchronize state data (system, user, and log data) among cluster members. When an off-line device comes back online, the load balancer adjusts the load again to distribute it among all active members. This mode provides increased throughput and performance during peak load but does not increase scalability beyond the total number of licensed users.

The system synchronizes state data on all nodes if you add or delete the host entry on the Network Settings pages. If you add or delete the host entry using the Clustering tab for a cluster member, the state data affects only the node and the system does not synchronize the data across the entire cluster.

The system hosts an HTML page that provides service status for each node in a cluster. External load balancers can check this resource to determine how to effectively distribute the load among all the cluster nodes.

  illustrates an active/active cluster configuration in which the devices have enabled external ports.

This active/active cluster configuration is deployed behind an external load balancer. You can deploy a cluster pair or multi-unit cluster in active/active mode. User requests are directed to the cluster VIP defined on the load balancer, which routes them to the appropriate machine.

 

Requirements and Limitations

When choosing and configuring a load balancer for your cluster, we recommend that you ensure the load balancer:

Supports IPsec

Listens for traffic on multiple ports

Can be configured to manage traffic using assigned source and destination IP addresses (not destination port)

Configuring a Load Balancer

The load balancer is configured externally.

Health Checking a Server from a Load Balancer

Purpose

The system hosts an HTML page that provides service status for each node in a cluster. External load balancers can check this resource to determine how to effectively distribute the load among all the cluster nodes.

Action

To perform the Layer 7 health check for a node:

In a browser-Enter the URL: https://Pulse Connect Secure Controller-Hostname/dana-na/ /healthcheck.cgi?status=SBR

This returns the Steel Belted Radius (SBR) status (SBR_AVAILABLE), either HTTP Status 200 OK or 500 Internal Error. If SBR_AVAILABLE is 0, the SBR is down. If SBR_AVAILBLE is 1, then SBR is up and performing transactions.

https://Pulse Connect Secure Controller-Hostname/dana-na/healthcheck/healthcheck.cgi?status=all

This returns either HTTP Status 200 OK or 500 Internal Error. If this returns HTTP Status 200 OK, the following additional parameters are shown:

Parameter Name

Value

Description

CPU-UTILIZATION

0-100

Specifies the CPU utilization percentage (0-100).

SWAP-UTILIZATION

integer

Specifies the swap utilization percentage of the device (0-100).

DISK-UTILIZATION

integer

Specifies the used disk space percentage (0-100).

SSL-CONNECTION-COUNT

integer

Specifies the total number of SSL connections.

USER-COUNT

integer

Specifies the total number of licensed users logged in to the device. This does not include any MAC address users or Radius users.

MAX-LICENSED-USERS-REACHED

boolean

Specifies the maximum number of licensed users reached.

VPN-TUNNEL-COUNT

integer

Specifies the number of concurrent Ivanti IPSec, Network Connect and IKEv2 tunnels.

PLATFORM-LIMIT

integer

Specifies the maximum user limit on PSA hardware.

MAXIMUM-LICENSE-COUNT

integer

Specifies the maximum licenses installed directly on the PSA hardware or licenses fetched from the license server.

CLUSTER-NAME

String

Specifies the name given to the cluster. The name must be unique across the network.

The following example performs the Layer 7 health check from an external load balancer:

GET /dana-na/healthcheck/healthcheck.cgi?status=all HTTP/1.1\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; MS-RTC LM 8; .NET4.0E)\r\nHost: localhost\r\n\r\n\r\n

The concept of receive string is used by health check. The receive string is configured on the load balancer to decide whether or not to mark a node as active or inactive. It is a regular expression that checks for a value present in the response. For example, Ivanti Connect Secure sends a page to the load balancer that has USER-COUNT=25 indicating that the number of active licensed users on that device is 25.

A receive string of USER-COUNT\=([0-9]|[0-9][1-9]|100); means check if USER-COUNT is between 0 and 100. In this example, 25 is between 0 and 100 and the load balancer marks the device as active and considers it for load balancing. Suppose more users log in to the device and it now sends USER-COUNT=150 to the load balancer. This value is now out of the range and the load balancer marks that device as inactive and stop sending traffic to it. Active sessions will continue to pass through the device however.